PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的无监督数据维度约减算法,其主要思想是将n维特征映射到k维主成分上,k维主成分是在原有n维特征的基础上重新构造出来的k维特征,且k<n。当然,降维会导致损失,为了尽可能减小它,需要谨慎选择主成分,最好是能够让所有的样本点尽量靠近主成分对应的轴,也就是所谓“方差(协方差)最大”。
PCA需要从原始的空间中顺序寻找多个主成分,其选择与数据本身相关。其中,每一个主成分对应的坐标轴都与前后主成分对应的坐标轴正交,且第i个主成分在样本集中具有第i大的方差。依次类推,可以得到n个这样的坐标轴。
为了得到这些具有最大差异的主成分的方向,PCA算法需要计算样本矩阵的协方差矩阵及其特征值和特征向量。
对于二维样本,方差;
更高的维度下,可以首先找到一个使得投影方差最大的主成分,然后在这个基础上,找到和这个方向正交的另外一个使得余下的投影方差最大的主成分,也就是计算各维之间协方差。各维之间的协方差构成了协方差矩阵,且。
计算第一主成分:利用拉格朗日乘子法,设为一个拉格朗日乘子,为了使第一个特征的方差最大,且,令
,即是的特征向量,此时特征值为。
可以证明,是最大的特征向量。
在此基础上,要计算第二主成分,显然且,即最大化:
(、均为拉格朗日乘子)。
SVD算法:直接针对样本作奇异值分解
为主向量,与(行向量)可一起还原原始数据。
为对角矩阵,对角线上的值,表示相应向量的重要程度。