Skip to content

PCA 主成分分析 (Principal Component Analysis)

核心思想

PCA 是一种线性降维方法。它寻找数据方差最大的方向(主成分),将高维数据投影到低维子空间中,在最大化保留信息的前提下压缩维度。

最大投影方差推导

中心化

XRN×d 已中心化(即 ixi=0)。

投影到单位向量

将数据投影到方向 uu=1),投影后方差为:

Var(Xu)=1Ni=1N(xiTu)2=uT(1NXTX)u=uTSu

其中 S=1NXTX协方差矩阵

约束优化

最大化投影方差:

maxuuTSus.t.uTu=1

使用拉格朗日乘子法:

L(u,λ)=uTSuλ(uTu1)Lu=2Su2λu=0Su=λu

这正是特征值问题uS 的特征向量,λ 是对应特征值。

最大方差 = 最大特征值对应的特征向量方向。

多个主成分

k 个主成分为第 k 大特征值对应的特征向量。前 q 个主成分张成的子空间可解释的方差比例:

解释方差比=k=1qλkk=1dλk

SVD 与 PCA 的关系

对中心化数据 X 做奇异值分解 X=UΣVT,则:

S=1NXTX=1NVΣ2VT

V 的列即为主成分方向,σk2N 为对应特征值。SVD 在数值上比直接计算 XTX 更稳定。

代码对应

bash
python -m pipelines.dimensionality.pca