PCA算法的优化目标是用低维数据来近似表示高维数据,低维数据两两不相关,并保留绝大部分的数据方差。在执行算法之前,首先对数据进行均值归一化和特征缩放处理,也就是将样本的每维数据都转化均值为零、方差为一的标准化随机变量。文中的向量指的都是列向量。
设矩阵表示
个
维随机样本,向量
表示其中的一个样本。我们希望在
空间内找到一个标准正交基
,原样本经过基变换后,不同维度的数据线性无关,即不同维度数据的协方差为零。
向量在基
中的新坐标
为:
,所以样本
经过基变换后为样本
,其中:
由于每维数据的样本均值都是零,所以样本的协方差矩阵为:
协方差矩阵对角线上的
个数据表示
个维度的数据方差,其他数据表示不同维度数据的协方差,我们希望协方差矩阵
除了对角线之外的数据全部为零,即把矩阵
对角化。
注意到就是样本
的协方差矩阵,并且是一个
阶对称矩阵,那么一定存在正交矩阵
,使:
其中是由
的
个经过正交化和单位化之后的特征向量组成的正交矩阵,
是以
的
个特征值为对角元的对角矩阵。这就证明了矩阵
解的存在性和组成结构。
我们已经找到了矩阵,现在希望把
维向量
映射到
维向量
,并按比例保留
的数据方差,其中
未知。通过下面的方法来确定最小的
值:
,其中
是按照倒序排列的特征值
确定值后,我们实际上就是找到了
空间中的一个子空间
,
由前
个最大的特征值对应的特征向量组成。每一个样本
在子空间
上的投影即为映射到的
维向量
,其中:
同时,维样本
降维为
维样本
,并保留了
的数据方差,其中:
矩阵和
可以通过对协方差矩阵
进行特征分解或奇异值分解得到,确定了矩阵
和
值后即完成了PCA降维算法。
网友评论