人有时候走着走着,放不下的东西太多,就会迷失自己。其实回归初心,换一个角度去看待问题,一切就变得豁然开朗了。
PCA的思想是把过度关联在一起事务视为“噪声”,认为它们干扰试听,并占据不必要的运算空间,故有“去关联”这一操作。而这种“去关联”又是站在“有关联”的角度上解决问题的。
找到原本的关联规律,“俯视”这个规律,一切就清晰可见了。
空间分散的点,换个角度,可以用一个平面穿过它们。
俯视点到平面的投影,我们实际上得到压缩后的最大信息量数据
“去关联”,是最后达成的目的;寻找以及压缩内在关联,是实质操作。
注意,PCA的目的是得到一些无关联的新特征,但是这些“无关联”的新特征实际上是线性“融合有关联”的旧特征
类似与上一个3D图例,下图二维平面中的点实际上是沿着一条轴,散落其周围
而我们的目的,就是找到这个轴的方向,同时也是最佳数据投影/压缩方向
回忆PCA(中)所阐述的算法步骤:
1. 计算出代表了变量之家关联的协方差矩阵
2. 找出这个矩阵最重要的本征向量(较大本征值对应的本征向量)
3. 两两正交的本征向量(主成分)构成新的坐标系。
4. 原数据在新坐标平面/直线下投影为降维后的点。
而我们知道,本征向量对应的本征值的大小,决定了在其本征向量维度对整个协方差矩阵的贡献,我们是不是可以理解为,寻找这个矩阵的较重要本征向量,这就是在寻找最大关联的方向?
下图是一个比较理想的例子,两个维度特征呈严格正比关系,所有的点经过坐标旋转后都落在主成分上。
主成分其实就是代表了两个特征关系——y=ax——直线方向。
若情况不是这样呢?
有些点不在这条直线上,而是散落在这条直线的周围,那这条直线的方向依然是主成分方向,只不过问题从“点落在主成分上”转变为“点投影在主成分方向上”
可以观察得出:
1)最佳投影方向,实际上就是使数据点经过投影后最分散的方向。反过来,我们要寻找最佳投影方向,就是使旋转坐标后使数据点最分散。
2)数据点的分散程度是由数据点的方差来决定的,方差越大,点越分散。
问题转化为,寻找一个坐标变换,使得变换后数据点的方差大,协方差小(关联小)
而在协方差矩阵中,包含了方差以及协方差:对角线上的元素是某个特征方差值;非对角线上的是两两特征间的协方差值。
问题再次转化为,寻找一种正交变换,使变换后的协方差矩阵,对角线上值最大,非对角线上元素为0——矩阵对角化
协方差矩阵对角化的直接结果,就是对角线上的值就是本征值,找的就是最大或较大的本征值。
而这个/些本征值对应的本征向量组成的矩阵就是我们要最终寻找的正交变换矩阵
以上是通俗地解释了PCA(中)——算法操作步骤里,为什么协方差矩阵最大本征值对应的本征向量可以“抽取”出数据的主成分,即最佳投影方向。
我们已经知道:从几何意义上说,PCA的目的是寻找新的坐标系,使数据点降维后“去关联”,增加数据点之间的分散程度;从代数意义上说,PCA的目的是寻找正交矩阵P,使原数据点A,经过变换后
B在每个正交轴pi方向上投影
方差最大。即
回忆上式就是求二次型极值问题
其中
为样本矩阵A的协方差矩阵Cov(A)
回忆PCA(下)求解二次型极值问题,最终为求解二次型矩阵最大本征值问题。分解出的本征向量又是图形最大拉伸的方向,也是最佳投影方向。
二次型矩阵对应现在的协方差矩阵(都为对称矩阵),求解协方差矩阵Cov(A)的主要本征向量,得到数据投影(降维)后最分散的方向,就是解决问题的关键。
至此为止,我们将PCA从直觉感悟到理性分析,梳理了一遍。
本人学识浅薄,加上融入了自己的一些理解,有疏漏之处,请各位同好谅解并指正