PCA主成分分析—个人理解

PCA大多数时候用来降维,在做毕设人脸识别的时候学的。

降维只是把某些维度舍弃,把源数据投影到一个新的基底,x轴y轴都是基底单位为1,新基底最好相互正交。

怎么投影呢,两个向量做内积A*B=|A|*|B|*cos<A,B>,其中|A|*cos<A,B>就是A在B上的投影,B为基底那么应该|B|==1;

所以只需要将B单位化然后A*B就得到了新的基下的向量了。

舍弃那些维度,保留那些维度呢,我们希望保留的维度是相互独立的,而且在这个维度内各个样本值是分散的,相差的越多越好,越有自己的特色越好。所以刚好对应了协方差和方差,协方差表示各个维度的相关性如果协方差为0则相互独立>0正相关<0负相关,方差表示样本离散程度不用多说。

那么设m个样本n个维度的一个数据矩阵每列对应每个维度减去这个维度内的各个元素的平均值得到A,A为m行n列,A'表示A的转置矩阵,C=A'A,C=C/m是A的协方差矩阵,C是n*n的矩阵,C的主对角线元素正好对应了各个维度内的方差,而其他元素对应了协方差,要使协方差为0,那么就形成了一个对角矩阵,就是除了主对角线元素全为0。故要把协方差矩阵对角化。

协方差矩阵C是一个是对称矩阵,在线性代数上,实对称矩阵有一系列非常好的性质:

1)实对称矩阵不同特征值对应的特征向量必然正交。

2)设特征向量重数为r,则必然存在r个线性无关的特征向量相对应,因此可以将这r个特征向量单位正交化。

所以C可以得到n个特征值和特征向量,把特征值从大到小排好序组成一个矩阵D,特征向量正交单位化后按列从左到右组成矩阵P,P逆CP=D,PD==CP。

P取前k列后,k列n行,AP=Y就得到了降维后的结果。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章