Article May 20, 2019

PCA与白化

Words count 2.5k Reading time 2 mins. Read count 0

PCA

PCA是一种具有严格数学基础并且已被广泛采用的降维方法

一般的,如果我们有M个N维向量,想将其变换为由R个N维向量表示的新空间中,那么首先将R个基按行组成矩阵A,然后将向量按列组成矩阵B,那么两矩阵的乘积AB就是变换结果,其中AB的第m列为A中第m列变换后的结果。
这里R可以小于N,而R决定了变换后数据的维数。也就是说,我们可以将一N维数据变换到更低维度的空间中去,变换后的维度取决于基的数量。因此这种矩阵相乘的表示也可以表示降维变换。

如何选择基?

如果我们有一组N维向量,现在要将其降到K维(K小于N),那么我们应该如何选择K个基才能最大程度保留原有的信息?
希望投影后的投影值尽可能分散。

寻找一个一维基,使得所有数据变换为这个基上的坐标表示后,方差值最大。且从直观上说,让两个字段尽可能表示更多的原始信息,我们是不希望它们之间存在(线性)相关性的(协方差为0)

优化目标

降维问题的优化目标:将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的K个方差)。

pca 算法

算法步骤:

设有m条n维数据

  1. 将原始数据按列组成n行m列矩阵X

  2. 将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值

  3. 求出协方差矩阵$C=\frac{1}{m}XX^\mathsf{T}$

  4. 求出协方差矩阵的特征值及对应的特征向量

  5. 将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P

  6. $Y=PX$即为降维到k维后的数据

pca的限制

PCA本质上是将方差最大的方向作为主要特征,并且在各个正交方向上将数据“离相关”,也就是让它们在不同正交方向上没有相关性。

  • 它可以很好的解除线性相关,但是对于高阶相关性就没有办法了
  • PCA假设数据各主特征是分布在正交方向上,如果在非正交方向上存在几个方差较大的方向,PCA的效果就大打折扣
  • PCA是一种无参数技术,便于通用实现,但是本身无法个性化的优化

SVD (sigular value decomposition)

$SVD: A=U\Sigma V^T$

设A是一个$m\times n$矩阵,则存在$m$阶正交矩阵$U$和$n$阶正交矩阵$V$

由正交矩阵性质:

其元素为实数,而且行向量与列向量皆为正交的单位向量

由于$U$、$V$均为正交矩阵

由此可求出每个奇异值$\sigma_i$

可得

0%