什么是 主成分分析(PCA)?

主成分分析(PCA)是把中心化样本投影到一组正交方向,并按各方向解释方差从大到小排序的线性降维方法。

快速了解

创建时间1901 年由 Karl Pearson 提出;Harold Hotelling 于 1933 年建立统计表述
规范文档官方规范

工作原理

先中心化,再选择协方差或相关几何

PCA 必须在中心化数据上拟合。直接对中心化样本矩阵做奇异值分解,可以避免显式构造协方差矩阵,并在常见定义下得到相同主轴。当前 scikit-learn 文档明确指出,PCA 会中心化输入,但不会自动把每个特征缩放到相同尺度。

是否标准化不是固定答案。原始单位与方差大小具有业务意义时应使用协方差几何;不同单位需要获得可比影响时,才使用标准化后的相关几何。上线时应把训练均值、尺度、Component 顺序、Solver 与符号约定和 Projection 一同固化。

把解释方差视为压缩诊断而非任务指标

Explained Variance Ratio 表示拟合分布中每个保留方向承载的样本方差。95% 之类的累计阈值只描述方差保留,不保证分类准确率、检索 Recall、稳健性或语义保真。

应在训练与验证协议内部选择 k,再用未参与拟合的数据检查重构误差和下游指标。中心化、缩放与 PCA 都只能在每个训练 Fold 上拟合。即使 PCA 不读取目标标签,在数据切分前拟合仍会泄漏评测分布。

审查白化、离群点与组件不稳定性

Whitening 会把保留成分重新缩放到单位方差,并移除成分之间原有的相对方差尺度。当下游方法确实依赖这种几何假设时可能有用,但也会丢失幅度信息并放大弱方向。

经典 PCA 对离群点敏感,而且只能表达线性子空间。Component 的正负号本来就不唯一;特征值接近时,基向量还可以在近似并列的子空间内旋转。因此,应跨样本或时间比较子空间、重构和下游行为,而不是要求 Loading 逐元素完全一致。

主要特点

  • 输出按解释方差排序的正交线性成分
  • 最大化投影方差与最小化平方重构误差等价
  • 必须中心化,并对特征缩放方案敏感
  • 具有可复用于兼容新样本的显式变换
  • 可通过协方差特征分解或中心化数据 SVD 计算
  • 不保证保留标签、邻域、稀有信号或非线性结构

常见用途

  1. 在下游建模前压缩相关数值特征
  2. 为 Embedding 降维建立确定性线性基线
  3. 用两到三个成分探索主要线性变异
  4. 在确认弱方向属于扰动后执行降噪
  5. 跨数据版本监控协方差与子空间漂移

示例

loading...
Loading code...

常见问题

PCA 属于特征选择还是特征提取?

PCA 属于特征提取。每个保留成分都是原始特征的线性组合,输出坐标不再对应某个被选中的原始列。特征选择则保留原始变量的一个子集,两者的可解释性和部署契约不同。

做 PCA 前一定要标准化吗?

不一定。中心化是基础要求,单位方差缩放则会把问题从协方差结构改为相关结构。特征单位不可比且确实需要等权影响时应标准化;原始方差大小有业务含义时应保留尺度。

保留 95% 解释方差能保证模型效果吗?

不能。解释方差衡量输入分散程度,不衡量目标信息或运行价值。应在训练协议内选择成分数,并在未参与拟合的数据上检查下游指标、稀有切片、校准、延迟和重构误差。

PCA 能转换训练后出现的新数据吗?

可以。先减去训练均值,若训练时做过缩放则应用同一尺度,再乘以冻结的 Component Matrix。不能在测试批次上重新拟合预处理,整个 Projection 应与下游模型或向量索引一起版本化。

为什么不同样本上的 PCA Loading 会变化?

每个成分的正负号本来就不唯一,近似相同的特征值还允许基向量在共享子空间中旋转。报告时可对齐符号,但更应比较解释子空间和下游行为,不要把单条 Loading 当成无不确定性的稳定语义。

相关术语

相关文章