PCA(Principal Component Analysis),即主成分分析,一种常用于数据降维分析的方法。要理解PCA的原理,首先需要理解矩阵变换的意义。
矩阵变换,有两种意义:1,在当前坐标系下的向量,经过矩阵M变换后,结果为被变换的向量在当前坐标系下的新向量。
2,保持向量不变,矩阵M对当前坐标系进行变换,结果为当前向量在新坐标系下的向量表示。该新坐标系即矩阵M,变换后的向量是在新坐标系下各坐标轴上的投影。
以二维空间样本为例,有如下一批样本:
我们需要将该二维样本数据转换到一维空间中,只分析一维空间样本数据。如果我们直接在当前坐标系下分析该样本,把所有样本投影到X或者Y轴的任意一个一维空间上,样本数据都会有较大的损失。如果我们能够找到一个变换矩阵M,使得当前坐标系旋转到下图X' Y'位置:
此时,所有样本数据在X'坐标轴上的投影达到最大,分散的最开。因此直观上X' Y'坐标系就是我们需要寻找的最优变换M。
如何得到这个变换矩阵M?假设我们有如上图一组样本数据A=(x,y),经过矩阵M变换后,样本数据在M坐标系下的投影变成了B=(x',y')。下面分析如何得到M:
(1)首先我们对样本做一次归一化处理(每个样本数据减去相应的样本均值)。这么处理的好处主要是方便后续计算样本方差和协方差。处理后的样本分布如下图所示:
(2)所以我们的目标是使得变换后的单个样本数据B在X' Y'上的投影最分散和最大化,也就是使得B=(x', y')中 |x'|或者|y'|最大,而 x'y' 趋近于0。进一步,所有样本数据,使得
或者
最大化,而
趋近于0。
对样本数据A=(x,y)来说,令C=
,对变换后的样本数据B=(x',y')来说,令D=
。那么,C和D的矩阵表示如下:
C=(
) D=(
)
可以看到C和D的主对角线上的元素就是(x,y)和(x',y')的方差。而非主对角线上元素就是(x,y)和(x',y')的协方差。这个C和D被称为C和D的协方差矩阵。
现在我们的目标是找到变换矩阵M,使得协方差矩阵D对角化。
(3)那么C,D和M是什么关系呢?
上式表明我们的目标变成:寻找一个变换矩阵M,使得MC
是一个对角矩阵。
又已知C是一个对称矩阵,由对称矩阵的性质可知,一定存在一组C的特征向量作为行组成的特征矩阵E,使得
=F,其中F是对角矩阵。
结论:这与我们的目标一致,我们要寻找的PCA变换矩阵M就是E,也就是原始样本数据A的协方差矩阵C的特征向量作为行组成的特征矩阵。
那么,下面我们总结一下PCA的步骤:
(1)样本数据归一化处理
(2)对归一化后的样本数据求出协方差矩阵C
(3)对协方差矩阵C求出其特征向量和特征值
(4)以特征值大小按行排列相应的特征向量,舍弃特征值较小的特征向量行,组成的矩阵就是需要找寻的降维后的变换矩阵M。