机器学习系列-主成分分析
PCA
降维
一些机器学习算法在处理高维数据时,性能会出现明显下降,这就是所谓的“维度灾难”,为此人们开始对算法进行改进。与此同时,对降维的需求催生了降维算法,比如本文要介绍的主成分分析(Principal Component Analysis,PCA)。
在开始本文的主要内容之前,我想先举一个关于降维的例子:
有5个点,坐标如下表所示:
id | x | y |
---|---|---|
1 | 5.0 | 1.4 |
2 | 5.0 | 2.3 |
3 | 5.0 | 5.6 |
4 | 4.9 | 7.8 |
5 | 5.0 | 11.1 |
将他们画在图中:
虽然是二维空间中的点,但是这些点的横坐标几乎都是5,只有第4个点的横坐标稍稍有些“不合群”,我们不妨将这0.1(5-4.9)的偏差作为噪声略去,这样所有的点横坐标都相同了。
现在我们从坐标的角度去分析这些点的差异性,就会发现,分析横坐标是没有任何意义的,因为所有的点横坐标都相等。忽略了横坐标,分析这些二维空间上点等同于分析一维数轴上的点,过程简单了许多。这就是一个降维的过程。
主成分分析(PCA)
上述的降维方法其实是将二维的点全部投影到y轴上,但这样有个问题,这种投影方式不能将不同的数据的差异性体现出来(有些文档也称为变异性)。而PCA要做的就是将数据沿方差最大方向投影,数据更易于区分。详细的说就是,所选取的第一个维要尽可能多的捕获数据的差异性,第二个维与前面的维正交,使得与第一个维一起变化的程度最小,并尽可能多的捕获剩余的差异性,然后继续下去。接下来我们详细介绍PCA的原理。
概率论中通过计算数据的协方差矩阵
给定一个
换言之,
两个属性的协方差度量两个属性一起变化的程度。如果
性相同),则协方差就是该属性的方差。如果数据矩阵
前面说过,PCA有一个目标,就是使不同属性之间协同变化的程度最小,在这里体现为要将协方差矩阵对角化,并且对角线上的元素按照从大到小排列。
设原始数据矩阵
现在目标变成了寻找一个矩阵
协方差矩阵
实对称矩阵不同特征值对应的特征向量必然正交。
设特征向量
λ 重数为r ,则必然存在r 个线性无关的特征向量对应于λ ,因此可以将这r 个特征向量单位正交化。
由上面两条可知,一个
则对协方差矩阵
到这里,我们发现我们已经找到了需要的矩阵
主成分分析的优缺点
主成分分析的优点
- 以方差衡量信息的无监督学习,不受样本标签限制。
- 各主成分之间正交,可消除原始数据成分间的相互影响。
- 可减少指标选择的工作量。
- 有一定的降噪效果。
主成分分析的缺点
- 主成分解释其含义往往具有一定的模糊性。
- 贡献率小的主成分往往可能含有对样本差异的重要信息。
- PCA降维属于有损压缩,降维后的数据不如原始数据完整。