前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >抓住主要信息,线性降维的技术——PCA

抓住主要信息,线性降维的技术——PCA

作者头像
CDA数据分析师
发布2021-12-27 17:19:47
4870
发布2021-12-27 17:19:47
举报
文章被收录于专栏:CDA数据分析师CDA数据分析师

CDA数据分析师 出品

作者:CDA教研组

编辑:JYD

随着通信技术、计算能力、数据采集等领域的发展成熟,企业积累了大量的数据,这里的“大量”体现在数据的条数多,海量的数据,同时也体现在维度、字段上的多;面对大量字段,数据分析师在建立模型时,除了会面临字段理解上的困难(数量多,内容多),若不事先预处理就把全部特征纳入模型,那只会“垃圾进垃圾出”,除了给模型增加复杂度,带来过拟合的风险,其他作用微乎其微;

可见,并不是信息越多越好,维度越多,确实可能带来更多的信息,但是在实际商业应用建模时,首先问一下自己:这些信息都是对我们的建模分析、需求有用的信息吗,有没有噪点?这些信息全都是不相关的吗,其中有无变量是共线的,若共线,那这样的信息就是多余的,因为他们都在表达同一个信息,同一个意思。

好在,数据科学是有些处理维度过大的方法的,一般来说,降维的手段有两种,一种是特征筛选,通过统计分析里的方法(如方差阈值化、卡方检验、方差分析、T检验等)从众多的特征里选择其中的一些拿来使用,其他特征丢掉;另外一种降维技术是通过转换的方式,不是纯粹的挑选,是通过转换的技术得到新的特征,理解起来往往没那么容易,降维的技术也有很多,如LDA、PCA,本文会介绍PCA,即主成分分析。

要说明一个算法,首先要知道其简单定义,即该技术是什么?

所谓主成分分析,其思想是用少数不相关的变量来代替相关的变量,并且要求能够保留数据中大部分的信息,这些线性无关的变量就叫主成分。

那么上面的这句话,我们需要解决几个问题:第一个问题,是怎么用少的变量来代替相关变量,由少数变量代替多数变量,那维度确实是在变少(降维);第二个问题,保留大部分信息好理解,因为虽然是降维,但是不希望损失很多信息,比如我们是生活在三维空间,但是看我们的自拍照(二维),我们还是可以知道那是我们自己(主要信息),那这个信息怎么去量化呢?怎么说是保存了大部分信息?我们带着这两个问题去看看PCA是怎么实现数据降维的。

为了能够以图形可视化展现PCA是怎么进行降维的,现在假设数据只有两个维度(方便画图),即这些数据能够画在x轴和y轴两个维度,图1是这些数据放在直角坐标下的展现情况。

(图1)

图1我们可以看到数据有斜向上的趋势,这放在散点图里可以解释说明两个变量x1和y1之间有线性关系(即两个维度是有相关性的,满足PCA的第一个条件),这是二维上的数据,现在降维(肯定是降到一维),二维是个面,降到一维说明数据全都集中在一条直线上(一维),那怎么找这条直线呢?

这条直线一定会有这样的特点:即原二维数据的点投影到这直线上尽可能分散,这样才能保证尽可能多的点到这条直线上,即保留的信息尽量最大,为什么不是紧凑呢?若是紧凑那有些点可能是重合的,那无疑有些点损失了,这些信息没有体现在一维上,而这条直线就是图1所画的红色直线,想象一下,这里的点所组成的椭圆形图像是不是可以抓住主要特征将其看成一条斜上的直线,而这条红色直线能够解释的数据变动、差异最多,所以叫第一主成分;

既然有第一主成分,那第二主成分呢,也就是次之能够解释数据的信息的直线,与第一主成分垂直即可(才能保证不相关),即图1上的蓝色直线,这里直线箭头的方向并不重要,若是箭头大致朝向跟原来的直角坐标轴保持一致的话,那也有的教材会直接理解为,数据保持不动,将原来的直角坐标旋转到所画的红色和蓝色的线上重合,这样x轴的就是能够最大化解释数据的变异,即第一主成分,y轴就是第二主成分。那能找出第三主成分吗,即我能找出第三条直线,跟其他两条互相垂直,在这里是没有的,因为只有两个维度,实际上,原数据有多少个维度,那么就有几个主成分。

那么这里的演示能够从数学的角度找到证据吗,好在可以以线性代数向量的视角去解释。

为了解释这个问题,首先回顾一下线性代数里向量的相关知识。

(图2)

如图2,B向量B(2,2)在A向量A(3,1)的投影d等于|B|cos(α),而这个值是向量A和B的内积(2*3+2*1=8),8是新坐标轴下的坐标,现在新的坐标轴不再是x和y轴了,是向量A(3,1)所在的轴,以矩阵的形式表示:

,也就是说(8,0)是在新的坐标轴

下的投影,原来的二维数据被降到了一维;那么这条合适的向量(新的坐标轴)是怎么确定的呢?

PCA思想其中有条是让信息得到最大化的保存,以现在二维数据为例,投影到一维上的直线上,这些直线(新的坐标体系)下的点应该是尽量分散的,而描述数据的离散情况统计学里有一个指标是方差,即方差越大,波动越大,影响越大,那么这个维度的数据就越重要(很大的影响),于是基于这个思想,那么n个m维度数据点在u方向上的方差公式,即样本点投影在u上的方差:

,其中S=

是原始变量的协方差矩阵,u是所求参数,为了便于求解,这里设置让数据的均值等于0,这里有读者会纠结样本点自由度应该是N-1的问题,其实样本大的时候,是可以直接使用1/N的;

也就是说,现在的问题转换成求在满足最大方差的情况下的u是多少,根据拉格朗日乘子法,将

作为约束,求目标函数

的极值。对

对u进行求导,让导函数等于0,可以得到:

,该公式就是线性代数里的矩阵特征值分解,线性代数其中用一条定理:

A为n*n的矩阵,x为非零向量,若存在数

使得

成立,那么称

为A的特征值,x称为对应与

的特征向量。

那么在这里u是协方差矩阵S的特征向量,即所要求的主成分,

是矩阵S的特征向量u的特征值,正好是对应投影方向上数据的方差。

那么在这里u是协方差矩阵S的特征向量,即所要求的主成分,

是矩阵S的特征向量u的特征值,正好是对应投影方向上数据的方差。

那怎么就达到了降维的效果了呢?根据矩阵特征值分解的性质,可以得到m对特征值和特征向量(原始数据有多少维度,就有多少主成分,就多少个线性组合),为了达到降维的效果,需要丢弃掉变异较小即方差小的主成分,即只保留前k个比较大的特征值所对应的特征向量;下面两个条件帮助更好的去选择多个主成分:

  • 保留前k个主成分累积能解释数据80%以上的变异
  • 最后一个主成分对应的

不小于1

具体来说,以这两个条件为参考的情况下,当你的需求是用主成分进行变量压缩时,可以保留较少的数量的主成分,如果是在做多元回归或者多变量模型时,为了在预测模型中避免特征之间的共线性,可以考虑保留较多的主成分,尽量保留信息。

作为一个以线性代数为基础的线性降维技术,PCA除了是很多算法的基础外,也有很多的场景应用。

综合打分:就是比较与平时简单的加总方法的一个优化,如员工绩效的汇总和排名,比较适合用主成分分析来得出一个综合打分,因为实际情况下每个员工的每个维度下的权重是不一样的,不同的主成分下的方差会给与不同的权重,让打分更合合理。

去除数据中的噪音:就如我开文所说,信息不是越多越好,里面可能有噪音,这项应用最典型的就是用主成分来对图像进行降噪识别图像。

变量压缩:面对较多的变量时,全部纳入模型可能会带来过拟合的问题,所以PCA在多元回归或聚类分析里常用来做变量压缩,达到降维的目的,当然如果在做多元回归时,原始变量之间不相关,则不需要做主成分分析(也不满足主成分的条件:用少数不相关的线性组合来表示多数线性相关的变量)。

为了更好的描述数据:能用较少的内容来描述清楚一件事那肯定是优于复杂冗杂的方法,如知名的波士顿矩阵,只用市场占有率和市场增长率两个维度来对产品在市场行情进行描述,这种两个维度除了便于描述,也便于进行可视化展现。

要强调的是,在用协方差矩阵计算时,要对原始变量先进行标准化,因为不同变量的量纲可能不统一,主成分分析对不同的量纲非常敏感,因为不同的量纲,也意味着方差的大小悬殊,变异巨大,而主成分分析又是依靠最大化方差来解释信息的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CDA数据分析师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档