一、PCA的目的
PCA (Principal Component Analysis) 主成分分析法,是一种非常常见的数据处理方法,其常用于高维数据的降维处理,以提取多维数据中的主要特征分量。
例如,我们有一组n×m的矩阵,其中n代表样本个数,m则代表维度。一般所谓的三维数据,采用X、Y、Z三个坐标轴的刻度来记录一个样本点的信息,即该样本点与原点所代表的向量在三个正交基上的投影。那么m维数据所记录的即该向量在m维空间中对m个基向量的投影。
我们现在的目的是将该n×m的矩阵降维成n×k的矩阵,以此降低信息量。那么根据我们上述的理解,我们现在需要找到一个新的k维空间(即k个新的基向量)来表示该矩阵所记录的n个向量。
二、PCA的判据
我们弄清楚PCA是要达到一个怎样的目的后,再来看看它的推导思路。
我们的目的是找到一组新的基向量来表示原有的特征信息,那么如何去评判新的基向量是否能够很好地保留原有特征信息呢。这里就引出了方差和协方差的概念:
方差:用来表示数据的离散程度。
所有样本在某一个基向量上的投影值如果过于集中(极端情况就是所有样本的投影值都相同),则无法区分样本,那么这个基向量的选择就是不好的。所以数据的投影越离散,所表示的信息就越完整,样本间的分辨程度就越高。
协方差:用来表示各特征分量之间的相关性。
在固定的维度空间下,如果各基向量越不相关,其所表示的信息也越完整,如果各基向量间的相关性过强,就等于在每个基向量下的投影所记录的信息都是相同的,这对我们的特征提取是不利的。
三、PCA的推导
有了相关判据后,我们可以明确我们的优化准则:选择一组新的基向量,使得原始数据变换到这组基上后,各变量两两间协方差为 0,而变量方差则尽可能大。
这里的一组变量指的是所有样本在某一基向量上的投影值所组成的数组。
为了进一步简化,我们将数据进行零均值化,则方差和协方差的表达式为:
其中,协方差是除以m还是m-1对于大数据量来说并不影响。
我们以二维数据为例:
这样,我们就将方差和协方差统一到了一个矩阵当中,该矩阵称之为协方差矩阵,将其由二维拓展到多维。
假设在n维空间下的原始数据为,经过一组新基变换后得到新数据
:
我们考察变换后的新数据的方差和协方差:
根据上述的判据,我们需要使矩阵对角线以外的元素为0,并且对角线元素由大到小排列,前k个元素对应的
就是我们所寻找的新基。
而原始数据的协方差矩阵是一个实对称矩阵,具有很好的性质,它一定可以找到一个m×m的单位正交特征向量矩阵
使得:
其中,是一个对角矩阵,具体推导见线性代数。
这样一来,我们就找到了所需要的,取前k个特征值所对应的特征向量组成新基矩阵,乘以原始数据
,得到降维后的数据矩阵
。