橘智橘智
偶是大橘子哇
预计阅读时间:3分钟57秒

理解主成分分析(PCA)背后的数学与理论

深入理解PCA,或许会帮助你更好的使用。

0
0

原作者:Leandre Sabourin

本文经过一定程度的细节增添方便更好理解。


引言


有时候,你可能会面对这样一种情况:

数据实在太多,以至于你根本不知道该从哪里开始分析。

事实上,这并不是坏事。在当今的数据时代,数据过多往往比数据不足更有优势。然而,一个常见的问题是:

当数据维度过高时,人们反而难以理解数据结构,也难以发现其中真正有意义的模式或关系。

换句话说,大量变量可能掩盖真实信息,使模型学习到噪声(noise)而不是结构(structure)

幸运的是,统计学与机器学习中存在一类方法,可以帮助我们在复杂数据中识别潜在模式。例如在以下领域:

  • 心理测验分析
  • 基因表达研究
  • 生物炎症指标分析
  • 高维实验数据分析

这些方法尤其重要,因为它们能够:

  • 降低 多重共线性(multicollinearity)
  • 减少 过拟合(overfitting)
  • 提取数据中的主要信息结构

本文将介绍其中最经典的方法之一:

主成分分析(Principal Component Analysis, PCA)

我们将重点讨论其数学原理与计算步骤


主成分分析(PCA)

主成分分析(PCA)的目标是:

通过构造一组新的、彼此不相关的变量(称为主成分),来简化复杂数据,同时尽可能保留数据中的方差信息。

换句话说:

PCA 试图找到新的坐标轴,使数据在这些方向上的变化最大。

当数据维度过高时,模型可能会学习到:,而 PCA 能够将信息集中到少数几个方向上。

PCA 属于一种:

因为它在没有标签(label)的情况下,仅依据数据本身寻找结构。


PCA 如何工作

PCA 的核心思想是:

通过重新定义数据集的坐标轴,使新的坐标轴(主成分轴)能够解释数据中最大的方差。

也就是说,我们不再使用原始特征作为坐标轴,而是寻找一组新的方向,使数据在这些方向上的变化最明显。

可以直观理解为:

image.png

  • 左侧:数据位于原始坐标轴中
  • 右侧:坐标轴被新的 主成分(Principal Components) 所替代

这些新的轴通常比原始变量更能揭示数据结构。


PCA 的基本步骤

执行 PCA 通常包含四个主要步骤:

  1. 数据标准化(Normalize data)
  2. 计算协方差矩阵(Covariance matrix)
  3. 计算特征值与特征向量(Eigen decomposition)
  4. 选择主成分(Select principal components)

下面逐步解释每一步。


数据标准化

PCA 的第一步是对数据进行标准化处理。

目标是将数据转换为:

这一过程通常假设数据近似服从正态分布(Gaussian distribution)

标准化的作用包括:

  • 消除不同变量量纲的影响
  • 防止尺度较大的变量主导分析
  • 减弱异常值对结果的过度影响


Z-score 标准化

标准化通常通过 Z-score 完成:

其中:

  • Xij​:第 i 个样本在变量 j 上的取值
  • μj:变量 j 的均值
  • σj:变量 j 的标准差

经过该变换后:

image.png

得到标准化数据矩阵:Z


计算协方差矩阵

数据标准化后,下一步是计算协方差矩阵。

协方差矩阵是一个方阵,用于描述:

数据集中变量两两之间如何共同变化。

其公式为:

image.png

其中:

  • Z:标准化后的数据矩阵
  • N:样本数量
  • C:协方差矩阵


数据矩阵结构

矩阵 Z 的含义:

  • 每一行 → 一个观测(参与者、实验、样本)
  • 每一列 → 一个变量(特征)

例如:

image.png


什么是转置(Transpose)

公式中的:

表示矩阵转置,即:

行与列互换。

例如:

image.png

则:

image.png


为什么这样就得到协方差?

展开矩阵乘法:

这正是协方差定义:

因此:

矩阵乘法一次性计算了:所有变量两两之间的协方差


协方差矩阵的重要作用是:

  • 判断变量是否一起增加或减少
  • 揭示特征之间的相关结构


计算特征值与特征向量

从协方差矩阵出发,我们需要计算两个关键量:

特征向量(Eigenvectors)

表示 最大方差的方向

特征值(Eigenvalues)

表示 该方向上的方差大小


冷知识:“Eigen”的含义

“Eigen”来源于德语,可译为:

“固有的” 或 “特征性的”。

在矩阵变换中:

大多数向量在变换后会:

  • 改变方向
  • 改变长度

特征向量具有特殊性质:

经过变换后方向保持不变。

数学表达为:Cv=λv

其中:

  • C:协方差矩阵
  • v:特征向量
  • λ:特征值


示例(此处矩阵用A表示):

image.png

添加一个向量v:

image.png

计算Av,三行均为:18×1+18×1+18×1=54。

所以,image.png


image.png

得到:

特征向量:(1,1,1)

特征值:54


PCA 中的意义

在 PCA 中:

  • 每一个特征向量 → 一个候选主成分
  • 对应特征值 → 该主成分的重要程度

因为:

  • 特征向量指向数据变化最大的方向
  • 特征值表示该方向包含多少方差信息


结合我们的示例

协方差结构:


得到:λ1=54image.png


对应方向:

image.png

说明:

数据几乎全部变化集中在一个方向。

而其他方向:λ2=λ3=0

表示没有新的信息。


选择主成分

当我们已经计算出所有的特征值(eigenvalues)和特征向量(eigenvectors)之后,下一步需要决定:

应该保留多少个主成分。

通常在进行 PCA 时,主成分会按照其对应的特征值大小进行降序排列。

  • 第一主成分解释的数据方差最多;第二主成分解释次多的方差;依此类推。

image.png


确定应保留多少主成分的方法有多种。其中一种常见方法称为 碎石图(Scree Plot)。该方法通过绘制每个主成分所解释的方差比例来进行判断。

image.png

上述碎石图展示了:随着所保留主成分数量增加,数据累计解释方差比例的变化情况。

通常可以观察到:

  • 在最初的几个主成分中,曲线会上升得非常陡峭;
  • 随后曲线逐渐变平。

这意味着:

后续增加的主成分对解释数据方差的贡献越来越小,即出现收益递减(diminishing return)。

曲线开始明显变平的位置通常被称为 “拐点(Elbow)”,因为其形状类似人的手肘所以英文是Elbow。这个位置通常被认为是选择主成分数量的一个较为可靠的参考点。


将数据投影到主成分空间

现在来到 PCA 的最后一步:

将原始数据投影到选定的主成分上。

在数学上,这一步可以表示为:

其中:

  • Z:步骤 1 中得到的标准化数据矩阵
  • V:由选定特征向量组成的矩阵(即主成分矩阵)
  • ​:在主成分空间中的新数据表示

这一过程通过将标准化数据矩阵与所选择的特征向量矩阵相乘完成。

换句话说:

我们将数据投影到协方差矩阵的特征向量方向上。

从概念上来看,这相当于:

  • 对原始坐标系统(由原始特征构成)进行一次旋转,
  • 使新的坐标轴与数据中方差最大的方向对齐(即主成分方向)。


在新的表示空间中:

  • 每一个新维度都是原始变量的线性组合;
  • 各主成分之间彼此不相关;
  • 主成分按照所包含的方差大小依次递减:

即:

  • 第一主成分包含最多方差;
  • 第二主成分包含次多方差;
  • 依次类推。

image.png


左图为 PCA 之前的原始数据;右图为使用主成分替代原始坐标轴后的数据表示。


在某些情况下,当我们保留三个或更多主成分时,还可以将数据可视化到三维空间中:

image.png


在该示例中,虽然数据被表示为三个主成分,但可以观察到:

  • 数据在 PC3 方向上的扩散远小于 PC1 和 PC2。

这说明:

第三个主成分所包含的方差信息相对较少。

因此,PCA 并不会真正删除维度,而是:

根据重要性对各维度进行排序。

此时,PCA 已经将原始数据转换为一种更低维、更易于:

  • 可视化,分析,或用于后续模型训练的数据表示形式。


总结

本文介绍了主成分分析(PCA),一种非常常用的降维算法。

从本质上讲,PCA 的目标是:

找到数据变化最大的方向,并使用这些方向重新表达数据集。

这些方向由数据协方差矩阵的:

  • 特征向量(eigenvectors),特征值(eigenvalues)所决定。

通过选择能够解释最多方差的主成分,PCA 能够在保持数据整体结构的同时降低数据复杂度。因此,它在以下领域中非常重要:

  • 探索性数据分析(Exploratory Data Analysis)
  • 神经科学(Neuroscience)
  • 机器学习(Machine Learning)

同时还能有效降低计算成本。

评论