PCA 通过线性变换将高维数据投影到低维空间,在保留主要特征的同时降低计算复杂度。
数学原理
最大投影方差
投影后样本方差:$\omega^T \Sigma \omega$,其中 $\Sigma = \frac{1}{m} X X^T$ 是协方差矩阵。
优化目标: $$\max_\omega \ \omega^T \Sigma \omega \quad \text{s.t.} \quad |\omega|_2 = 1$$
解:$\Sigma \omega = \lambda \omega$,即 $\omega$ 是协方差矩阵的特征向量。
协方差矩阵分解
$$\Sigma = U \Lambda U^T$$
前 $k$ 个特征向量构成投影矩阵,降维表示为: $$Z = X U_k$$
算法步骤
- 中心化:$X’ = X - \mu$
- 标准化:$X_{\text{norm}} = \frac{X’}{\sigma}$
- 计算协方差矩阵:$\Sigma = \frac{1}{m-1} X_{\text{norm}}^T X_{\text{norm}}$
- 特征分解:得到特征值和特征向量
- 选择主成分:累积贡献率 ≥ 95%
- 投影:$Z = X_{\text{norm}} U_k$
应用场景
| 场景 | 降维目标 | 保留主成分数 |
|---|---|---|
| 人脸识别 | 特征提取 | 50-200 |
| 高光谱图像 | 数据压缩 | 保留95%方差 |
| 金融风险分析 | 消除多重共线性 | 5-10 |
局限性
| 局限 | 解决方案 |
|---|---|
| 仅捕捉线性相关性 | 核PCA、流形学习 |
| 高方差特征主导 | 必须标准化 |
| 解释性弱 | 稀疏PCA |
| 大数据计算复杂 | 增量PCA、随机SVD |
现代变体
| 方法 | 特点 |
|---|---|
| 核PCA (KPCA) | 核函数映射处理非线性 |
| 增量PCA | 分批次处理大数据 |
| 稀疏PCA | L1正则化提升解释性 |
| 自编码器 | 神经网络非线性降维 |
代码示例
| |
张芷铭的个人博客
Comments