JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

从 SVD 到 PCA:找到数据真正在意的方向

第一卷教会你 SVD 与谱定理。这里我们兑现它们:PCA 不过是把谱定理用在协方差矩阵上,它告诉你哪几个方向承载了几乎全部方差。

接续第一卷的终点

在第一卷里你证明了每个实对称矩阵都有一组特征向量构成的标准正交基——这就是谱定理——并且认识了任意矩阵的奇异值分解 A = U Sigma V^T,即奇异值分解。第二卷就是对一个问题的长篇回答:那又如何? 这第一条主线展示这同样两个事实如何解决数据、图与时间上的真实问题。

先想象一团数据点:矩阵 X 的每一行是一次观测,每一列是一个特征。这团点的几何形状——它朝哪个方向伸展、在哪里很薄——本质上就是一个伪装起来的特征值问题。

协方差矩阵承载着形状

先把数据中心化,使每个特征均值为零,再构造协方差矩阵 C = (1/(n-1)) X^T X。C 是对称且半正定的,所以谱定理适用:C = Q Lambda Q^T,特征向量标准正交、特征值非负。每个特征值就是数据沿其对应特征向量方向上的方差。

PCA 一步一步来

  1. 对 X 的每一列做中心化(减去其均值)。
  2. 计算 SVD X = U Sigma V^T(或对 C = X^T X / (n-1) 做特征分解)。
  3. V 的各列就是主方向,按方差从大到小排列。
  4. 做投影:保留前 k 个方向,Z = X V_k,把 n 个特征压缩到 k 个。
# 2-D toy: data stretched along the line y = x
X = [[ 2.1,  1.9],
     [-1.0, -1.2],
     [ 0.3,  0.1],
     [-1.4, -0.8]]
# after centering, X^T X is roughly
#   C = [ 1.9 , 1.7 ;
#         1.7 , 1.6 ]
# eigenvalues: lambda_1 ~ 3.4  (big),  lambda_2 ~ 0.1  (tiny)
# top eigenvector v1 ~ (0.72, 0.69)  -> the y = x direction
# 96% of the variance lives along v1, so 1 number per point suffices
紧贴 y = x 的点云塌缩到一条有意义的轴。

为什么这与第一卷的最小二乘是同一件事

前 k 个主方向在最小二乘意义下给出 X 的最佳秩-k 低秩逼近——这就是 Eckart–Young 定理,也正是为什么 PCA、推荐系统词嵌入暗地里是同一招:用一个低秩矩阵逼近一个大矩阵,其因子是可解释的方向。