基于之前谈的SVD,说一下PCA的原理.
PCA主要的作用是用于降维的,目前降维方法很多,PCA只是比较古老经典的一种。
令样本空间(假设已经中心化)为
,x属于n维的行向量,每行代表一个样本
PCA的思路是找到一组正交基(v1,...vr),r<n,r小于等于A的秩,将x从n维度降到r维度,并且要尽量保持x的方差,通俗地说,就是尽量保持原有数据当中的信息。
首先,讲一下计算方法
由SVD原理,我们已经知道A可以作如下分解
其中 U,V分别 属于矩阵 的特征向量空间。需要指出的是,这两个相关矩阵的意义并不相同,前者表示的是样本之间的相关性,后者表示的是维度之间的相关性。
对于样本x,经过V空间投影后,x在V空间坐标为y,则有
到此,我们可以看到PCA的投影仅仅用到了A地右奇异矩阵当中的前r维特征向量,实现了x的降维。
对于样本空间A的PCA过程也很简单
我们可以理解用右奇异矩阵的前k列特征向量,作为A的投影轴,提取A中的主要信息。那么为什么右奇异矩阵的列向量作为PCA的主要投影轴呢?下面用几种方法去证明上述的过程
方法一 二次型
令w为单位列向量,A到w的投影为,要求最大值,只要求得
,
, V为正交的单位特征向量矩阵
令对角矩阵中的特征值为 ,特征值非负,且从大到小排列,,则有
z取(1,0,0,....),t可以达到,此处,投影最大,依次,第二个正交轴z取(0,1,0,....),达到第二大,依次类推。
的最小值在第r个投影轴上投影是得到
方法二 拉格朗日乘子法
,,令
极值点全部位于特征向量处。
方法三 最小损失
前面的方法都是基于找到最大投影空间,通过前面的论述我们已经知道,假设A的特征值为, 从大到小排列
第一个特征值的投影值是最大的,依次类推,从另一个角度来看,最后一个投影值是最小的,PCA实际过程可以描述为去掉这些投影最小的特征向量,然后重新去构建数据
令目标正交投影空间为W = [w1,....,wr],
对于任意样本x,它的重建结果为
假设由W中前r-1个轴构建,那么,损失可以表示为
问题仍然可以转化为求最小值,降维过程可以理解去掉数据中最小方差的部分,而协方差矩阵的特征值刚好可以表达数据在各个特征向量上的方差,特征值越大,方差越大,反之亦然,因此,很好的满足了利用特征向量降维的目的。
另外,还有一个视角,将X矩阵视为一个多变量矩阵,它的多元分布函数密度可以表示为
C为常数,便于讨论这里省略
令
代入上式子到密度函数当中
令
原式有
x本身是一个非独立的多元正态分布,经过坐标变换, x投影到K所对应的各个特征向量为新坐标的各个变量的独立分布。
通过K中的特征值,我们可以知道x在各个的轴向上的方差
参考:
PCA https://www.optbbs.com/thread-229078-1-1.html
多元高斯分布 https://www.cnblogs.com/bingjianing/p/9117330.html