ARTICLE

主成分分析

主成分分析 (Principal Component Analysis) 主成分分析(Principal Component Analysis, PCA)是一种经典的\%多元统计分析\%方法,由Karl Pearson于1901年提出,后由Harold Hotelling在1930年代加以发展完善。如今,PCA已经被广泛应用于\%统计学\%和\%机器学习\%

浏览 47 更新 2026-05-25

主成分分析 (Principal Component Analysis)

主成分分析(Principal Component Analysis, PCA)是一种经典的\%多元统计分析\%方法,由Karl Pearson于1901年提出,后由Harold Hotelling在1930年代加以发展完善。如今,PCA已经被广泛应用于\%统计学\%和\%机器学习\%等众多领域。其核心目标是进行\%维度约减\%(Dimensionality Reduction),即在尽可能保留原始数据信息的前提下,将高维数据集转换为低维表示。PCA通过正交\%线性变换\%,将可能存在相关性的原始变量转换为一组线性不相关的新变量,这些新变量称为主成分(Principal Components)。

核心思想

PCA的本质是寻找数据中方差最大的方向。想象一组三维空间中的数据点,若它们大致分布在一个扁平的椭球体上,PCA便能找出该椭球体的主轴方向。第一个主成分(PC1)对应于椭球体的最长轴,也就是数据方差最大的方向;第二个主成分(PC2)在与PC1正交的所有方向中寻找方差次大的方向,即椭球体的次长轴;第三个主成分(PC3)则在与前两者都正交的方向中寻找方差最小的方向。若PC3方向的方差极小,说明数据在该方向上几乎没有变化,可以忽略该维度,从而将三维数据降至二维,且仅损失极少的信息。从几何角度看,PCA相当于对原始坐标系进行旋转,使得新坐标系的轴对齐数据方差最大的方向,然后舍弃方差较小的维度,达到降维的目的。

数学原理

PCA的数学基础建立在\%线性代数\%的特征分解之上。设有数据集 X X n×p n \times p 的矩阵(n n 为样本数,p p 为特征数),首先对数据进行中心化处理,使每个特征的均值为零。然后计算样本的\%协方差矩阵\%:

ΣX=XTXn1\Sigma_X = \frac{X^T X}{n-1}

PCA的目标是找到一个单位方向向量 w w ,使得数据投影到该方向上的方差最大。这是一个约束优化问题,可用\%拉格朗日乘数法\%求解。构造拉格朗日函数 L(w,λ)=wTΣXwλ(wTw1) L(w, \lambda) = w^T \Sigma_X w - \lambda(w^T w - 1) ,对 w w 求导并令其为零,最终归结为求解协方差矩阵的特征方程:

ΣXw=λw\Sigma_X w = \lambda w

其中 w w 是特征向量,λ \lambda 是特征值。由于投影方差 wTΣXw=λ w^T \Sigma_X w = \lambda 恰好等于特征值,因此最大特征值 λ1 \lambda_1 对应的特征向量 w1 w_1 即为第一主成分,第二大特征值 λ2 \lambda_2 对应的 w2 w_2 为第二主成分,依此类推。ΣX \Sigma_X 是\%实对称矩阵\%,其不同特征值对应的特征向量相互正交,自然地构成一组正交基。每个主成分解释的方差占总方差的比例为 λi/j=1pλj \lambda_i / \sum_{j=1}^p \lambda_j ,这一比例是选择保留主成分数量的重要依据,通常选择累积解释方差达到85\%-95\%的前若干个主成分。

实施步骤

标准的PCA流程如下:

  1. 数据\%标准化\%:由于PCA对变量尺度敏感,需先将每个特征标准化为均值为0、标准差为1的形式,避免量级大的特征主导分析结果。这一步也称为Z-score标准化。
  2. 计算协方差矩阵:对标准化后的数据计算协方差矩阵,该矩阵的对角线元素为各特征的方差,非对角线元素为特征间的协方差。
  3. 特征分解:求解协方差矩阵的全部特征值和特征向量,也可通过对数据矩阵进行\%奇异值分解\%替代计算,后者的数值稳定性更好。
  4. 排序主成分:按特征值从大到小排列,并对特征向量做相应排序。
  5. 确定保留数量:利用累积解释方差比例(如保留解释95\%总方差的前 k k 个主成分)或\%Scree Plot\%(碎石图)的肘部法则确定 k k 。此外,也可使用Kaiser准则(保留特征值大于1的主成分)。
  6. 投影降维:将前 k k 个特征向量构成投影矩阵 Wp×k W_{p \times k} ,计算 Z=XstdW Z = X_{std} \cdot W 得到降维后的数据集,其中新特征之间互不相关。

与相关方法的关系

PCA与\%因子分析\%(Factor Analysis)有密切联系,两者都试图用较少的潜在变量解释数据中的方差结构。但因子分析假设数据存在潜在的隐变量模型,并试图识别出这些不可观测的公共因子,而PCA仅是对原始坐标系的旋转变换,不涉及统计推断,两者的数学目标和假设前提截然不同。PCA与\%奇异值分解\%(SVD)存在深刻的数学联系——对中心化后的数据矩阵进行SVD得到的右奇异向量即为PCA的主成分方向,且SVD在数值计算上通常比直接对协方差矩阵进行特征分解更为稳定和高效。在\%监督学习\%场景下,\%线性判别分析\%(LDA)是比PCA更优的降维选择,因为LDA在最大化方差的同时还考虑了类别间的可分性,而PCA完全忽略类别标签信息。

应用与局限性

主要应用包括:将高维数据降至二维或三维以辅助\%数据可视化\%;在\%回归分析\%和\%分类\%等任务中用于克服\%维度灾难\%和防止过拟合;通过舍弃方差较小的主成分实现数据压缩与噪声过滤;在\%生物信息学\%和\%金融\%等领域中用于提取关键特征和识别数据中的潜在模式。

局限性:PCA是线性方法,无法处理非线性结构,对于此类问题需使用\%核主成分分析\%(Kernel PCA)或\%流形学习\%(如t-SNE、UMAP)方法;主成分为原始特征的线性组合,物理含义模糊,可解释性较差;对变量尺度高度敏感,未标准化的数据可能导致结果严重偏差;方差最大化方向不一定与分类最优方向一致,在分类任务中可能不如LDA有效。