机器学习:11.主成分分析 (PCA)

主成分分析 (PCA)

一. 无监督学习与PCA背景

1. 无监督学习的主要类型

在给定训练数据集 D={xi}i=1ND=\{x_i\}_{i=1}^ND={xi}i=1N 的情况下,无监督学习主要分为以下几种类型 :

  1. 聚类(样本分组):组内样本相似度高,组间样本相似度低 。

  2. 降维:减少变量数量但保持数据信息,用于改善算法效率与性能 。

  3. 关联规则学习:用于发现大型数据库中变量间的有趣关系 。

注:主成分分析(PCA)是一种经典的降维算法 。

二. 主成分分析的定义与本质

1. PCA的直观本质

主成分分析的本质是换一组基向量,即通过平移、旋转坐标轴,找到最能代表数据特征的方向 。

  • 第一主成分:数据方差最大的方向 。

  • 第二主成分:与第一主成分正交、且剩余方差最大的方向 。

直观理解:方差与信息量的关系

  • 方差大 →\rightarrow→ 数据变化丰富 →\rightarrow→ 信息多 。
  • 方差小 →\rightarrow→ 数据接近常数 →\rightarrow→ 信息少 。

【例子】:飞行员数据降维

假设二维数据中有两个特征:x1x_1x1 代表飞行员的驾驶技巧,x2x_2x2 代表飞行员对飞行的喜欢程度 。

通过PCA找到的主成分:

  • u1u_1u1(第一主成分):代表飞行员的内在相关因素(方差最大,包含主要信息) 。
  • u2u_2u2(第二主成分):代表一些噪音(方差较小) 。

2. 识别数据所在的子空间

核心思想:使用正交变换将相关变量的观测值转换为主成分的线性不相关变量的一组值 。

即寻找一个映射,将高维空间映射到低维子空间:Rd→Rk(k≪d)R^d \rightarrow R^k \quad (k \ll d)Rd→Rk(k≪d) 。

三. 数据预处理 (Data Preprocessing)

给定数据集 D={xi}i=1nD=\{x_i\}_{i=1}^nD={xi}i=1n ,在进行PCA之前,必须先预处理数据,使其均值和方差规范化 。

1. 去中心化 (零均值化)

计算数据的均值并将其归零,将数据集的中心点移动到 0 。

μ=1m∑i=1mx(i)⇒x(i)←x(i)−μ\mu = \frac{1}{m} \sum_{i=1}^{m} x^{(i)} \quad \Rightarrow \quad x^{(i)} \leftarrow x^{(i)} - \muμ=m1i=1∑mx(i)⇒x(i)←x(i)−μ

2. 统一特征方差 (可选)

将每个坐标重新缩放使其具有单位方差,从而确保在相同的"比例"上处理不同的属性 。

σj2=1m∑i=1m(xj(i))2⇒xj(i)←xj(i)/σj\sigma_j^2 = \frac{1}{m} \sum_{i=1}^{m} \left(x_j^{(i)}\right)^2 \quad \Rightarrow \quad x_j^{(i)} \leftarrow x_j^{(i)} / \sigma_jσj2=m1i=1∑m(xj(i))2⇒xj(i)←xj(i)/σj

四. PCA的数学解法与协方差矩阵

1. 数据的几何变换 (拉伸与旋转)

我们手上的数据(去中心化后记为 D′D'D′)可以看作是由标准正态分布且不相关的"白数据"(记为 DDD)经过拉伸和旋转得到的 :

D′=RSDD' = RSDD′=RSD

  • SSS (拉伸/缩放) :只在对角线上有数字的矩阵 S=a00bS = \begin{bmatrix} a & 0 \\ 0 & b \end{bmatrix}S=a00b

  • RRR (旋转) :基于角度的旋转矩阵 R=cos⁡(θ)−sin⁡(θ)sin⁡(θ)cos⁡(θ)R = \begin{bmatrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \end{bmatrix}R=cos(θ)sin(θ)−sin(θ)cos(θ)

2. 协方差矩阵的定义与意义

要从 D′D'D′ 中反求出 SSS 和 RRR,需要借助协方差矩阵 。

(1). 协方差公式

cov(x,y)=∑i=1n(xi−xˉ)(yi−yˉ)n−1cov(x,y) = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{n - 1}cov(x,y)=n−1∑i=1n(xi−xˉ)(yi−yˉ)

协方差表示的是什么?

两个变量在变化过程中是同方向变化还是反方向变化?以及同向或反向的程度如何? 当 x↑→y↑x \uparrow \rightarrow y \uparrowx↑→y↑ 时,说明正相关,即 cov(x,y)>0cov(x,y) > 0cov(x,y)>0 。

(2). 协方差矩阵结构

C=cov(x,x)cov(x,y)cov(x,y)cov(y,y)C = \begin{bmatrix} cov(x,x) & cov(x,y) \\ cov(x,y) & cov(y,y) \end{bmatrix}C=cov(x,x)cov(x,y)cov(x,y)cov(y,y)

  • 该矩阵是对称阵,且其对角线上的元素即为对应变量的方差 。

3. 基于协方差矩阵求解变换矩阵

对我们手上的数据求协方差矩阵 C′C'C′:

C′=1n−1D′(D′)TC' = \frac{1}{n-1} D'(D')^TC′=n−11D′(D′)T

代入 D′=RSDD' = RSDD′=RSD,并结合白数据的协方差矩阵性质(C=1001C = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}C=1001),推导可得:

C′=RLR−1C' = R L R^{-1}C′=RLR−1

(其中 L=SST=a200b2L = SS^T = \begin{bmatrix} a^2 & 0 \\ 0 & b^2 \end{bmatrix}L=SST=a200b2)

结论:协方差矩阵的特征向量就是旋转矩阵 RRR(即旋转后的基坐标),特征值对应拉伸矩阵相关的 LLL!

五. 代数分析与优化视角

1. 将PCA转化为优化问题

每个数据点 xxx 到单位方向向量 uuu (其中 ∥u∥=1\|u\|=1∥u∥=1) 的投影为 xT⋅ux^T \cdot uxT⋅u 。

PCA的目标是寻找投影方向 uuu,使得投影后的数据方差最大 。因此可转化为如下优化问题 :

max⁡uuTΣu\max_u \quad u^T \Sigma uumaxuTΣu

s.t.∥u∥citestart=1\text{s.t.} \quad \|u\| cite_start= 1s.t.∥u∥citestart=1

其中 Σ\SigmaΣ 是训练数据的协方差矩阵:

Σ=1m∑i=1mx(i)x(i)T\Sigma = \frac{1}{m} \sum_{i=1}^{m} x^{(i)}x^{(i)T}Σ=m1i=1∑mx(i)x(i)T

2. 特征值分解求主成分

代数上的最终结论:找到数据的 kkk 个主成分,就是找到协方差矩阵 Σ\SigmaΣ 的前 kkk 个主特征向量(即具有最大特征值的前 kkk 个特征向量)

将数据点 x(i)x^{(i)}x(i) 投影到这 kkk 个主成分 u1,u2,...,uku_1, u_2, \dots, u_ku1,u2,...,uk 上,得到降维后的向量 y(i)∈Rky^{(i)} \in R^ky(i)∈Rk:

y(i)=u1Tx(i)u2Tx(i)⋮ukTx(i)∈Rky^{(i)} = \begin{bmatrix} u_1^T x^{(i)} \\ u_2^T x^{(i)} \\ \vdots \\ u_k^T x^{(i)} \end{bmatrix} \in R^ky(i)= u1Tx(i)u2Tx(i)⋮ukTx(i) ∈Rk