主成分分析 PCA
主成分分析是最常用的无监督降维方法。它的迷人之处在于一个”殊途同归”:你可以从两个完全不同的目标出发——“投影后方差最大”或”重建误差最小”——最后却落到同一个数学对象上:协方差矩阵的特征向量。这种”不同入口、同一出口”的结构,是线性代数在机器学习里最漂亮的现身之一。
一、降维要保住什么
高维数据往往是”虚胖”的:很多维度彼此相关,真正的信息挤在少数几个方向上。降维就是把数据投影到一个低维子空间,同时尽量少丢信息。
PCA 的判断标准是方差:数据在某个方向上铺得越开(方差越大),这个方向携带的区分信息就越多;反过来,方差很小的方向上点都挤成一团,往往是噪声,可以丢。所以 PCA 要找的,是数据”最舒展”的那几个方向。
这件事有两种等价的说法,下面分别推。
二、视角一:最大化投影方差
数据 每点 维,先找一个单位方向 ()把数据投上去。投影后的方差可以化简成一个漂亮的二次型:
其中 是数据的协方差矩阵。目标是在 的约束下最大化它。用拉格朗日乘子法,对 求导置零,得到:
这正是特征值方程!最优投影方向必须是协方差矩阵的特征向量。把它代回,投影方差恰好等于对应的特征值 。所以要方差最大,就该选最大特征值对应的特征向量——这就是第一主成分。要降到 维,就取前 大特征值的特征向量。由于 对称、特征向量天然正交,各主成分之间互不相关,正好实现了”去冗余”的初衷。
三、视角二:最小化重建误差
换个目标:把数据投到低维再重建回原空间,要求重建得最像原数据。用一组标准正交基展开每个点,只保留前 个坐标、其余维度用一个公共常数顶替,得到重建 。重建的均方误差(失真度)化简后是:
用同样的拉格朗日手法,又会得到 ,而失真度变成被丢弃方向的特征值之和:
要让误差最小,就丢掉最小的那些特征值、保留最大的那些。和视角一的结论一模一样。 两个目标其实是一枚硬币的两面:方差留在保留的方向里(),误差则等于丢掉的方向里(),总和是固定的(总方差),最大化前者就是最小化后者。
四、怎么用,能用到什么程度
落地步骤干净利落:
- 算样本均值 和协方差矩阵 ;
- 对 做特征分解,得到特征值和特征向量;
- 特征值从大到小排序,取前 个特征向量拼成投影矩阵,数据乘上去就降到了 维。
实践中常看特征值谱:通常前几个很大、之后陡降到接近 0,这个”陡降点”提示了该保留几维。
PCA 的优点是无参数、纯由数据驱动、能顺带去噪。但它的三个隐含假设也是它的天花板:假设主结构是线性的(弯曲流形它抓不住)、假设大方差 = 重要(若关键信号恰好方差小,会被误删)、隐含高斯式的分布。这三条决定了它擅长什么、会在哪里失手。
五、PCA 与 LDA:无监督 vs 有监督
值得把 PCA 和 **LDA(线性判别分析,又称 Fisher 判别)**放在一起看,因为它们都是线性投影降维,目标却恰好”对着干”。
PCA 不看标签,只求保住最多信息;但”信息最多的方向”未必是”最好分类的方向”——完全可能投影之后两类反而糊成一团。LDA 正是为了补这一刀:它用标签,要让投影后不同类离得尽量远、同类挤得尽量紧。
| PCA | LDA | |
|---|---|---|
| 目标 | 保留最多信息(方差最大) | 类别最易区分 |
| 用标签 | 否(无监督) | 是(有监督) |
| 风险 | 投影后类别可能混叠 | 专为分类,类间分得开 |
LDA 用两个散度刻画目标:类间散度 (越大越好)和类内散度 (越小越好),最大化二者之比(Fisher 准则):
解得最优投影方向 。一句话记住分工:PCA 求”信息保留最多”,LDA 求”类别分得最开”。降维若是为了可视化或压缩,用 PCA;若下游就是分类、且有标签,LDA 往往更对路。
小结
- PCA 找数据”最舒展”的方向,本质是协方差矩阵的特征分解。
- “最大方差”与”最小重建误差”是同一问题的两面,都取最大特征值的特征向量。
- 实操就三步:协方差 → 特征分解 → 取前 大。看特征值谱定维数。
- PCA 的线性 / 大方差 / 高斯三假设是它的适用边界。
- PCA 无监督保信息,LDA 有监督保可分性——按下游任务选。