主成分分析(Principal Component Analysis, PCA) 是一种经典的线性降维方法,目标是从高维数据中提取出最重要的成分。给定 d 维数据,PCA 找到一组新的正交基,使得数据在新基上的投影尽可能保留原始信息(方差最大),同时不同维度之间的协方差为零。
问题设定
设原始数据集 D={x1,x2,…,xm},其中 xi∈Rd。目标是找到一个线性变换 f:Rd→Rk(k≪d),使得:
- 变换后的各个维度线性无关(linearly independent)——这些维度就是主成分(principal component)。
- 更强的要求:任意两个不同主成分之间的协方差(covariance) 为 0,即主成分之间不相关(uncorrelated)。
注意:协方差为零意味着不相关,这比统计独立性更弱。对于高斯分布(Gaussian distribution),不相关等价于独立;对于一般分布则不然。如果需要真正的统计独立性,应使用独立成分分析(Independent Component Analysis, ICA)。
最大方差视角
将数据中心化:令 xˉ=m1∑i=1mxi,令 x~i=xi−xˉ。
第一个主成分的方向 w1 是使投影后方差最大的单位向量:
w1=argmax∥w∥=1m1∑i=1m(w⊤x~i)2=argmax∥w∥=1w⊤Cw
其中 C=m1∑i=1mx~ix~i⊤ 是数据的协方差矩阵(covariance matrix)。
由 Lagrange 乘子法可知,w1 是 C 的最大特征值(eigenvalue) 对应的特征向量(eigenvector)。
逐步选取主成分
PCA 从第一个主成分开始依次计算,保证每个新主成分与之前的所有主成分正交:
- 第 k 个主成分 wk:在与 w1,…,wk−1 正交的子空间中,选取使投影方差最大的方向。
- 结论:wk 恰好是 C 的第 k 大特征值对应的特征向量。
这一结论成立的关键在于:实对称矩阵(real symmetric matrix) 的特征向量天然两两正交(谱定理),因此按特征值从大到小依次取特征向量,自动满足正交约束。
协方差为零的保证
设投影矩阵 W=[w1,…,wk],投影后的数据为 zi=W⊤x~i。投影后的协方差矩阵为:
Cz=W⊤CW=diag(λ1,…,λk)
由于 wj 是 C 的特征向量,W⊤CW 退化为对角矩阵——不同主成分之间的协方差确实为零。每个主成分保留的方差恰好等于对应的特征值 λk。
算法步骤
- 中心化:x~i=xi−xˉ
- 计算协方差矩阵:C=m1X~⊤X~,其中 X~∈Rm×d 为中心化后的数据矩阵
- 特征分解(或对 X~ 做 SVD)
- 取前 k 个特征向量:对应最大的 k 个特征值
- 投影:zi=W⊤x~i
实践中常用奇异值分解(Singular Value Decomposition, SVD) 代替直接特征分解,原因是 SVD 数值更稳定,且不需要显式构造 d×d 的协方差矩阵(当 d 很大时这很重要)。
直觉:二元高斯分布
以平面上的二元高斯分布(bivariate Gaussian) 为例:数据点在二维平面上形成一个椭圆形的散布。第一主成分就是椭圆长轴的方向——数据沿这个方向”展得最开”(方差最大)。第二主成分是短轴方向,与长轴正交。如果只保留第一主成分,相当于把椭圆投影到长轴上的一条直线,丢掉的是短轴方向的少量信息。
更一般地,k 个主成分保留的信息量可以用解释方差比(explained variance ratio) 衡量:
ratio=∑j=1dλj∑j=1kλj
当这个比值接近 1 时,说明前 k 个主成分已经捕获了数据的绝大部分变异。
Comments