PCA 主成分分析

PCA 是统计学中常用的一种数据降维方法,作为一种线性的降维方法,与矩阵的 SVD 分解有密切的联系。

数据与中心化

考虑 个特征, 个样本组成的数据组成的矩阵 ,我们希望将其从 个特征降维到 个特征。

通常需要对数据进行中心化处理,也就是每一列减去该列的均值,得到

下面主要考虑对 的操作。

基于 SVD 的降维与重构

直接对 进行 SVD 分解可得(不妨设

其中 递减排序,正交矩阵 的列向量相互单位正交。 直接截取前 个奇异值,得到矩阵 的低秩近似

这里 。定义低维数据: 个样本, 个新特征

那么数据的降维(有损压缩)和重构(低秩近似)过程如下

协方差矩阵的解释

除了直接的低秩近似解释,统计学更喜欢从协方差矩阵的角度进行解释,这也是一种等价的算法。首先,计算 个特征的协方差矩阵

利用 的奇异值分解可以得到 的特征分解

因此

这表明对于线性变换后的新数据 ,对应的协方差矩阵是对角阵,亦即 个新特征相互解耦。 基于这种线性变换进行数据降维,只保留变换后的前 个占据主导的新特征(主成分),得到降维后的数据: 个样本, 个新特征

近似原本的 个特征

主成分数量与计算

关于如何选取 ,在统计中,把协方差矩阵 的特征值序列(对应 的奇异值平方序列)关于索引的柱状统计图称为碎石图(Scree Plot),通过绘制碎石图来分析保留多少个主成分。

在实际计算中, PCA 并不需要进行完整的 SVD 分解或者特征分解,只需要先 的奇异值序列 ,然后进一步计算前 个奇异值所对应的右奇异向量组 。 这等价于计算协方差矩阵 的前 个特征值以及对应的(单位正交的)特征向量组 。 如果对 进行 SVD 分解,计算量约 ,如果选择计算 的特征系统,计算量约为 ,因此两种算法可能适合不同规模的场景。