主成分分析PCA
向量空间
基
我们所说的向量其实是向量坐标和向量空间的基构成的线性组合。
要准确的描述向量,首先需要确定向量空间的一组基,然后
在通常的二维坐标系中,我们选中基为 <nobr> (1,0)T </nobr>和 <nobr> (0,1)T </nobr>,那么对于向量 <nobr> (3,2) </nobr>,其实它是 <nobr> 3∗(1,0)T+2∗(0,1)T </nobr>。
通常基为列向量,在进行坐标变换时,通常将基作为行向量,与原空间的坐标(列向量)做点乘。
一般地,我们设定基向量为单位向量,因为这样可以直接用向量点乘基向量获取基上的坐标表示,否则需要除以基向量的模长。
基变换的矩阵表示
<nobr> [1001]∗[32]=[32] </nobr>
上式的意义是,将右边矩阵每一列的列向量,变换到左边矩阵每一行的行向量为基所表示的空间中去。
PCA
PCA是一种常用的降维方法。其思想是希望用一个低维超平面对正交属性空间中的样本点进行恰当的表达。
这样的超平面具有以下性质
- 最近重构性:样本点到这个超平面的距离都足够近
- 最大可分性:样本点在这个超平面上的投影能尽可能分开
最近重构性
假定样本进行了中心化处理,即 <nobr> ∑ixi=0 </nobr>,假定投影变换后得到的新坐标系为 <nobr> [w1,w2,...,wd] </nobr>,其中 <nobr> wi </nobr>是标准正交基向量, <nobr> ||wi||2=1 </nobr>, <nobr> wTiwj=0(i≠j) </nobr>
设新坐标系的维度为 <nobr> d′<d </nobr>,则样本点在低维坐标系中的投影是 <nobr> zi </nobr>,其中 <nobr> zij=wTjxi </nobr>是 <nobr> xi </nobr>在低维坐标系下第j维的坐标。若基于 <nobr> zi </nobr>来重构 <nobr> xi </nobr>,则会得到 <nobr> x^i=∑d′j=1zijwj </nobr>。
现在考虑整个数据集上原样本点 <nobr> xi </nobr>与投影筹够的样本点 <nobr> x^i </nobr>之间的距离
其中 <nobr> ∑ixixTi </nobr> 是协方差矩阵,为 <nobr> XXT </nobr>
所以,优化目标为
最大可分性
样本点 <nobr> xi </nobr>在新空间中超平面上的投影是 <nobr> WTxi </nobr>,若所有投影能尽可能分开,则应该使投影后样本点的方差最大化,投影后样本点的方差是 <nobr> ∑iWTxixTiW </nobr>
优化目标可写为
拉格朗日乘子法
<nobr> minWWTXXTW+λ(WTW−I) </nobr>
解得
<nobr> XXTW=λW </nobr>
于是,只需要对协方差矩阵 <nobr> XXT </nobr>进行特征值分解(实践中通常对X进行奇异值分解来代替协方差矩阵的特征值分解),将求得的特征值排序;取前 <nobr> d′ </nobr>个特征值对应得特征向量构成 <nobr> W=[w1,w2,...,wd′] </nobr>就求出了投影矩阵。
伪代码
评价
Kernel PCA
PCA也存在一些限制,例如它可以很好的解除线性相关,但是对于高阶相关性就没有办法了,对于存在高阶相关性的数据,可以考虑Kernel PCA,通过Kernel函数将非线性相关转为线性相关。另外,PCA假设数据各主特征是分布在正交方向上,如果在非正交方向上存在几个方差较大的方向,PCA的效果就大打折扣了。—转自知乎
参考资料
《机器学习》第10章
向量的表示及协方差矩阵
PCA数学原理