PCA 的目标确实是找到一个投影方向,使数据在该方向上的方差最大化。但为什么第一步必须要计算协方差矩阵?

答案在于:计算“任意倾斜方向上的投影方差”,在数学上必须依赖协方差矩阵。



1. 数学推导:投影后的“方差”展开后就是协方差矩阵

假设我们对数据矩阵 ( 行样本, 个特征)做过零均值化处理(每列均值为 0)。

我们想找到一个单位方向向量 (满足 ),把所有数据点投影到这个方向上:

  • 样本点 在方向 上的投影值为标量:
  • 所有样本点投影后的新方差表达式为:

观察括号内部的表达式:,这恰恰就是原始特征的协方差矩阵!

关键点:目标是最大化投影方差 。由此可见,投影后的方差大小直接由 决定。不先算出协方差矩阵 ,就无法建立投影方差的数学表达式。

3. PCA 的双重目标:方差最大化 + 信息去重

PCA 的要求不仅仅是“方差最大”,还要求找出的多个主成分之间互不相关:

  1. 第一主成分:投影方差最大;
  2. 第二主成分:与第一主成分正交(协方差为 0),且满足剩余方差最大。

在矩阵运算中,对协方差矩阵进行特征值分解(Eigenvalue Decomposition)正好完美满足这两个需求:

  • 特征向量(Eigenvectors):指示了新的正交坐标轴方向,使得数据投影到新轴后,新特征之间的协方差全部变成 0(消除了冗余信息);
  • 特征值(Eigenvalues):其数值大小直接等于数据在该特征向量方向上的投影方差大小。

总结

计算协方差矩阵并不是偏离了“方差最大化”的目标,而是实现该目标的必经之路。它把各个维度的个体离散度(方差)与维度间的协同变化(协方差)统一封装在一起,使我们能通过线性代数(特征分解或 SVD)一次性求出那个方差最大的投影方向。