PCA 是统计学中常用的一种数据降维方法,作为一种线性的降维方法,与矩阵的 SVD 分解有密切的联系。
数据与中心化
考虑 个特征, 个样本组成的数据组成的矩阵 ,我们希望将其从 个特征降维到 个特征。
通常需要对数据进行中心化处理,也就是每一列减去该列的均值,得到
下面主要考虑对 的操作。
基于 SVD 的降维与重构
直接对 进行 SVD 分解可得(不妨设 )
其中 递减排序,正交矩阵 , 的列向量相互单位正交。
直接截取前 个奇异值,得到矩阵 的低秩近似
这里 。定义低维数据: 个样本, 个新特征
那么数据的降维(有损压缩)和重构(低秩近似)过程如下
协方差矩阵的解释
除了直接的低秩近似解释,统计学更喜欢从协方差矩阵的角度进行解释,这也是一种等价的算法。首先,计算 个特征的协方差矩阵
利用 的奇异值分解可以得到 的特征分解
因此
这表明对于线性变换后的新数据 ,对应的协方差矩阵是对角阵,亦即 个新特征相互解耦。
基于这种线性变换进行数据降维,只保留变换后的前 个占据主导的新特征(主成分),得到降维后的数据: 个样本, 个新特征
近似原本的 个特征
主成分数量与计算
关于如何选取 ,在统计中,把协方差矩阵 的特征值序列(对应 的奇异值平方序列)关于索引的柱状统计图称为碎石图(Scree Plot),通过绘制碎石图来分析保留多少个主成分。
在实际计算中, PCA 并不需要进行完整的 SVD 分解或者特征分解,只需要先 的奇异值序列 ,然后进一步计算前 个奇异值所对应的右奇异向量组 。
这等价于计算协方差矩阵 的前 个特征值以及对应的(单位正交的)特征向量组 。
如果对 进行 SVD 分解,计算量约 ,如果选择计算 的特征系统,计算量约为 ,因此两种算法可能适合不同规模的场景。