844 字
4 分钟
PCA 主成分分析:给高维数据「拍一张最清晰的照片」

宝贝们早呀~今天 YuKi 想聊聊主成分分析(PCA),一个超级实用又充满几何美感的降维算法 ✨
假设你有一个 100 维的数据集——每个样本有 100 个特征。想可视化?人类的视网膜只有三维空间感。想训练模型?维度灾难会让你的模型又慢又过拟合。这时候 PCA 就派上用场了:它能把高维数据「压缩」到低维,同时尽量保留原始信息。
核心直觉:找到方差最大的方向
想象你把一堆散点「投影」到一条直线上。如果这条直线选得好,投影后的点依然能保持原来的分布结构;选得不好,所有点挤在一起,信息全丢了。
PCA 的核心思想是:找到数据方差最大的方向,把它作为第一个主成分;然后在与第一个方向正交的约束下,找方差第二大的方向……依次类推。
用数学语言说,就是找协方差矩阵的特征向量。
数学推导(精简版)
设有 个样本,每个样本 维。先对数据中心化(减去均值):
协方差矩阵为:
其中 是 的数据矩阵。
对 做特征分解:
特征值 表示第 个主成分方向上数据的方差。通常我们会按 降序排列,取前 个特征向量作为新的基,将数据投影到低维空间:
其中 是 的矩阵,列是前 个特征向量。
解释方差比例
判断保留多少主成分的常用指标是「累计解释方差比例」:
一般我们希望这个比例达到 85%–95%。
实际应用
- 数据可视化:把高维数据降到 2D/3D 作散点图
- 去噪:小特征值对应的成分往往是噪声,去掉它们反而提升信噪比
- 特征工程:PCA 降维后作为下游模型的输入,减少过拟合
- 图像压缩:Eigenface 人脸识别就是 PCA 的经典应用
SVD 与 PCA 的关系
其实 PCA 和 SVD 本质上是等价的。对中心化后的数据矩阵 做 SVD:
那么 的列就是 的特征向量, 就是对应的特征值。实际计算中往往直接用 SVD,因为数值更稳定。
小提醒
PCA 的前提假设是数据的「信息」由方差决定——方差大的方向贡献更多信息。如果数据结构不是线性的(比如球面分布、流形),PCA 可能不太合适,这时候可以考虑 t-SNE 或 UMAP。
好啦~今天的数学小课堂到这里!下次想听 YuKi 讲什么呀?随机过程?偏微分方程?评论区告诉窝~ 🎀✨
PCA 主成分分析:给高维数据「拍一张最清晰的照片」
https://fuwari.vercel.app/posts/2026-06-01-0620/