PCA = Principle Component Analysis

主成分分析

算法的目的是将高维的数据投影到低维的平面上。因为高维数据往往难以处理,而低维数据处理起来更加方便。

直觉

PCA 就是在一个数据集代表的线性空间中几个新的“方向”,这些方向能够代表数据最大的变化趋势。

关键词为“变化”和“映射”:

  • 变化:在统计学中,协方差是不同变量之间线性相关性的量化表示,所以在计算 PCA 时要先计算协方差。
  • 映射:而 PCA 计算过程中的矩阵乘法则对应了“映射”,因为我们知道矩阵的乘法往往是将一个矩阵中数据“投影”到了另一个平面的变换。

图中的红线就是特征向量的方向,PCA 通过特征分解的方式获得了“最能够代表数据变化”的两个方向。而一旦选中了其中一个方向而放弃另一个方向,就达成了“降维”的效果(二维变成了一维)。

步骤

首先,因为 PCA 本身也是一种算法,输入为待处理的数据矩阵,输出为降维后的数据矩阵。X 为一个数据集, 表示每个变量的数据集合。

观测X1X2
123
235
356
412

然后将其用五步处理:

第一步,预处理,保证每个维度上的数据均值为0,方差为1。因为 PCA 变换本身对数据的规模比较敏感,所以在处理前需要归一化。

Xj 表示数据行的每个变量,式中将原值减去均值然后除以标准差来归一化。

第二步,计算协方差矩阵。协方差即为多个参数之间的方差。协方差矩阵描述了不同维度数据之间的关联关系。

X’ 是标准化后的数据矩阵转置。

第三步,对协方差矩阵做特征分解得到特征值和特征向量。

v 为特征向量, 为特征值。

第四步,选择主成分,例如前 k 个最大的特征值对应的特征向量。

第五步,利用特征向量转换原始的数据矩阵。

Vk 是由多个特征向量组成得到的矩阵。

特征

  • 基于线性假设:PCA 的变换本身是线性的,更适合线性变换的数据计算。
  • 无参数:直接就可以变换,无需更多参数,如果说非得要有的话,那就是那个 k。
  • 正交性:PCA 得到的主成分是互相正交的,互相之间没有关联关系。