主成分分析(PCA)算法的原理与实现步骤
字数 1107 2025-11-07 22:14:38
主成分分析(PCA)算法的原理与实现步骤
题目描述
主成分分析(PCA)是一种经典的无监督降维算法,其核心目标是通过线性变换将高维数据投影到低维空间,同时保留数据的主要特征。PCA通过寻找数据方差最大的方向(主成分)来实现降维,广泛应用于数据压缩、可视化及噪声过滤等领域。
解题过程
- 数据标准化
- 对原始数据矩阵 \(X\)(形状 \(n \times d\),\(n\) 为样本数,\(d\) 为特征数)进行中心化处理:
\[ X_{\text{centered}} = X - \mu \]
其中 $ \mu $ 是每个特征的均值向量。这一步确保数据的均值为零,避免特征尺度差异对方差计算的影响。
- 计算协方差矩阵
- 协方差矩阵 \(\Sigma\) 反映特征间的线性相关性:
\[ \Sigma = \frac{1}{n-1} X_{\text{centered}}^T X_{\text{centered}} \]
$ \Sigma $ 是一个 $ d \times d $ 的对称矩阵,对角线元素为各特征的方差,非对角线元素为协方差。
- 特征分解
- 对协方差矩阵 \(\Sigma\) 进行特征分解:
\[ \Sigma = Q \Lambda Q^T \]
其中 $ Q $ 是特征向量矩阵(每列是一个特征向量),$ \Lambda $ 是对角矩阵,对角线元素为特征值。特征值大小表示对应主成分的方差贡献度。
- 选择主成分数量
- 按特征值从大到小排序,计算累计方差贡献率:
\[ \text{累计方差} = \frac{\sum_{i=1}^k \lambda_i}{\sum_{i=1}^d \lambda_i} \]
通常选择累计贡献率超过95%的 $ k $ 个主成分($ k \ll d $),或根据特征值阈值(如保留特征值大于1的主成分)。
- 投影到低维空间
- 取前 \(k\) 个特征向量构成投影矩阵 \(W_k\)(形状 \(d \times k\)),将原始数据映射到低维空间:
\[ Z = X_{\text{centered}} W_k \]
$ Z $ 是降维后的数据(形状 $ n \times k $),保留了原始数据的主要结构。
关键点说明
- 方差最大化原理:PCA的优化目标是找到使投影后数据方差最大的方向,数学上等价于特征分解。
- 特征向量的正交性:不同主成分相互垂直,确保降维后特征间无冗余。
- 应用限制:PCA是线性方法,对非线性结构可能失效,此时需结合核方法(如Kernel PCA)。