PCA:把高维数据拍扁,别拍丢信息
维度高到看不见摸不着时,把数据「拍」到二三维就成了刚需。PCA 的做法:找一组新坐标轴,第一根指向数据「摊得最开」的方向(方差最大),后面的轴依次垂直、方差递减——四维鸢尾花压到二维,前两个主成分通常保住九成以上的信息,三类花在图上自己分开。
主成分空间 · 投影散点
换一对主成分看看:PC1 × PC2 分得最开,后面的主成分基本只剩噪声。
控制台
主成分方差解释率
原理:方差最大的方向
为什么「方差大 = 信息多」?方差小的方向上样本挤成一团、彼此难分,投影过去等于自费坐标;方差大的方向摊得开,类别结构更容易保留。PCA 先把数据中心化(本页再做标准化,避免量纲大的特征垄断方差),然后找一组新坐标轴。数学上就是对协方差矩阵做特征分解:
C = Σ (1/n) (xᵢ−x̄)(xᵢ−x̄)ᵀ = V Λ Vᵀ
特征向量 V 的每一列是一个主成分方向,特征值 λₖ 是该方向上的方差——方差解释率 = λₖ / Σλ。本页用手写的 Jacobi 旋转法求对称矩阵的全部特征对。
PCA 到底在做什么(几何版)
- 旋转坐标系。PCA 不删除任何东西,只是把坐标轴转到数据「最舒展」的姿势——新轴互相正交、按方差从大到小排队。
- 然后丢掉后面的轴。保留前 k 个主成分 = 在新坐标系里把后 d−k 维坐标砍掉,用最小平方误差意义下的最优 k 维平面近似原始数据。
- 「成分载荷」可以解释。PC = 0.71·花瓣长 + 0.70·花瓣宽 这样的线性组合,系数告诉你新轴由哪些原始特征主导——降维不是黑箱。
降维的三种用途
- 可视化:d 维压到 2D 散点图,聚类/分类结构一眼可见(本页)。
- 去噪与去冗余:噪声通常藏在低方差方向,砍掉它们常常让后续模型更稳;高相关特征被合并,多重共线性一并解决。
- 加速与压缩:d=1000 压到 k=50,下游训练快一个量级——「PCA + 线性模型」是高维小样本的经典起手式。
三个值得动手验证的现象
- PC1、PC2 几乎就是全部。标准化的鸢尾花前两个主成分累计解释约 96% 的方差——降维到二维只丢 4%,难怪图上三类仍然分得开。
- PC3、PC4 基本是噪声。切到 PC3 × PC4 投影:点云糊成一团、类别混在一起——被丢掉的维度确实没多少信息。
- 相关性越强,PCA 越赚。切到随机相关高斯数据:四维里其实只有一个「真正的」变化方向,PC1 解释率飙到 70% 以上——特征相关性越高、冗余越多,越值得先做 PCA。
使用守则
- 先标准化再 PCA:身高(cm) 和体重(kg) 不标准化,PCA 会把第一主成分全给身高——量纲垄断。z-score 是标配。
- 只用训练集拟合:均值、协方差、投影矩阵都从训练集算,测试集只做投影——否则又是数据泄漏(和标准化同一条纪律)。
- k 的选择:累计解释率 85%~95% 是常见档位;或用碎石图(scree plot)找「陡崖」。
顺带一提:PCA 是线性降维,遇到「瑞士卷」这类弯曲流形会摊不平——那时用 t-SNE / UMAP 等非线性方法做可视化(但它们不可用于下游特征、且距离解释有限)。
知识点拆解:把 PCA 学扎实
SVD:工程里的 PCA
直接特征分解协方差矩阵数值不稳,实践用奇异值分解 X = UΣVᵀ:右奇异向量就是主成分方向,奇异值平方 ∝ 方差。sklearn 的 PCA 内部就是 SVD。
关键词:SVD / 奇异值最小重构误差定理
在所有 k 维线性投影里,PCA 的投影让「重构误差」(点到平面的平方距离和) 最小——「保最大方差」和「丢最小误差」是同一件事的两面,考试常考这个等价性。
对应演示:看累计解释率指标PCA 不认识标签
它只看方差不看类别——方差最大的方向未必是分类最有用的方向(本站鸢尾花恰好结构清晰所以分得开)。需要「往分类有利的方向降维」时用 LDA(线性判别分析)。
关键词:PCA vs LDA降维方法选型
线性:PCA(方差)、LDA(带标签可分性);非线性可视化:t-SNE / UMAP;特征选择(挑列,不是造列)也是降维的一种——维度灾难重灾区先试它,成本最低。
关键词:特征选择 vs 特征提取- 主成分 — 协方差矩阵的特征向量方向
- 方差解释率 — λₖ/Σλ,该方向承载的信息占比
- 协方差矩阵 — 特征两两协方差组成的对称阵
- 特征分解 — C = VΛVᵀ 的矩阵拆解
- 碎石图 — 特征值从大到小的折线图
- 载荷 — 主成分里各原始特征的系数
期末高频问答
- PCA 前为什么要中心化和标准化?中心化是数学前提(协方差以原点为中心定义);标准化防量纲垄断——否则「身高 cm」的方差数值天然碾压「体重 kg」,主成分只反映单位选择而非数据结构。
- PCA 的主成分个数 k 上限是多少?min(n−1, d)。样本比特征少时(n
- 降维丢掉的信息还有救吗?投影丢掉的正交分量原则上无法从投影数据恢复(压缩是有损的)。但保存投影矩阵后,新样本可以直接投影进同一空间,重构只能得到近似值。