老饼讲解:一步一步上手学习
PCA主成分分析主要用来去除变量之间的线性冗余信息,使得它们变为独立变量,在机器学习中几乎无处不在,因为什么项目、什么数据都可以用它来搞一搞,本节先来看看PCA是什么。
本节先来看看PCA是什么,以及它的数学表述。
PCA简单来说,就是通过旋转坐标轴,来使得变量之间相互独立,如下:

如图所示,如果按原有坐标,那和是具有强烈的相关性的,但是如果旋转坐标轴后,以作为坐标轴,那么样本就相互独立了。
事实上,还可以换一个视角来看PCA,就是对样本进行旋转,使样本旋转后维维相互独立,如下:

不管是旋转坐标轴,还是旋转样本,都是一样的道理,而且在数学上最终推导得到的模型表示都是一样的,但旋转样本的推导更加简单一些,所以我们这里就不妨用旋转样本来理解好了。
下面我们来看看PCA的数学表述,首先,PCA是保角保长地旋转样本,而保角保长旋转变换,在代数中就是一个标准正交矩阵A,所以呢,PCA的数学表述如下:
其中,是标准正交矩阵,则是的均值中心,是旋转后的坐标
且要求:
其中,代表对角矩阵
这公式应该很形象,就是先对进行中心化,再进行保角保长的旋转,同时,要求旋转后,维维之间相互独立,所以也就是要求,也就是Y的协方差矩阵为对角矩阵。
其实PCA不进行中心化处理也是可以的,但一般都会加入中心化处理。
接下来再来看看PCA相关的一些名词:主成分、主成分系数、主成分贡献。
PCA就是对样本进行旋转,使得旋转后维维互不相关,忽略掉中心化,它的表示为:
更详细的形式则是:
那么, 旋转后得到的,两两之间协方差为0,但各自仍然会有各自的方差。一般来说,PCA在求解时,会调整系数的排列,使得的方差最大、的方差次大,...,如此类推,也就是按方差从大到小排列。好了,就分别称为第一主成分、第二主成分、...、第n主成分,也就是方差最大的就是第一主成分,其次是第二主成分...如下所示:

对应地,第一主成分的系数就称为第一主成分系数,第二主成分的系数就称为第二主成分系数,如此类推。
好了,知道了主成分,就可以来说主成分贡献了,这是个好东西!要了解什么是主成分贡献,就要先了解主成分的方差的意义,如下:

如图所示,样本旋转后,维维互不相关,那么,方差越大的维,就代表该维所包含的信息越多。
刚开始学时,我很纠结,为什么主成分的方差越大,它所包含的信息就越多,后来极端点去想就理解它了,假设样本在某维上方差为0,也就是所有样本在该维上都是一样的,那这个变量(也就是这一维)就没什么意义了。所以,方差越大,代表该维包含的信息越多。
好了,知道主成分的方差可以用来衡量它包含样本信息的"量",那么将所有主成分的方差进行归一化,就是主成分的贡献了,假设某个主成分的贡献为65%,就代表着它包含了样本65%的信息。
好了,上面铺垫了那么多,其实都还没说实际中怎么使用PCA,通过这一小节,我们具体知道PCA怎么用了。
在实际使用中,PCA一般有两个用途,一个是用来分析变量,另一个是对变量降维。
一般来说,我们有一堆建模变量,这时候往往就要看下变量去掉信息冗余后到底是个什么情况了。
首先,我们要先对变量进行PCA转换,然后计算出主成分贡献,以及累计贡献,也就是计算出下表:

如图所示,先获得主成分的方差,然后方差占比就是主成分贡献,再计算累计贡献就可以了。
从上表可以看到,X中70%的信息由表示,而剩下信息基本由表示,因此,X虽然有5个变量,但实际信息只有3个变量,说明 X中存在较多的信息冗余。
主成分降维也是建模中常用的方法,还是上面的例子,如下:

从表中可以看到,只需要取前3个主成分时,主成分总贡献就已经达到了95%,因此,可以忽略掉其它次要的主成分,只取前3个主成分来代表原来的样本数据就可以了,变量过多易引起模型过拟合,通过PCA降维后再进行建模,模型效果往往会得到改善。
主成分分析,就是将变量进行线性转换,使得转换后得到的主成分之间两两独立,可以说主成分分析就是去除原始变量之间的信息冗余,使得信息更加纯粹。它主要有两个作用,一个是用来分析原始数据中的信息构成,另一个是用来对变量进行降维。使用时先将X转换为主成分,然后统计出每个主成分的累计贡献,再进行分析或降维就可以了。
评论