PCA 通过线性变换将高维数据投影到低维空间,在保留主要特征的同时降低计算复杂度。

数学原理

最大投影方差

投影后样本方差:,其中 是协方差矩阵。

优化目标:

解:,即 是协方差矩阵的特征向量

协方差矩阵分解

个特征向量构成投影矩阵,降维表示为:

算法步骤

  1. 中心化
  2. 标准化
  3. 计算协方差矩阵
  4. 特征分解:得到特征值和特征向量
  5. 选择主成分:累积贡献率 ≥ 95%
  6. 投影

应用场景

场景降维目标保留主成分数
人脸识别特征提取50-200
高光谱图像数据压缩保留95%方差
金融风险分析消除多重共线性5-10

局限性

局限解决方案
仅捕捉线性相关性核PCA、流形学习
高方差特征主导必须标准化
解释性弱稀疏PCA
大数据计算复杂增量PCA、随机SVD

现代变体

方法特点
核PCA (KPCA)核函数映射处理非线性
增量PCA分批次处理大数据
稀疏PCAL1正则化提升解释性
自编码器神经网络非线性降维

代码示例

from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
 
X_norm = StandardScaler().fit_transform(X)
pca = PCA(n_components=0.95)
Z = pca.fit_transform(X_norm)