pca降维的基本思想_一文读懂 PCA 降维算法
轉自:chenbjin
https://www.cnblogs.com/chenbjin/p/4200790.html
主成分分析(PCA)是一種基于變量協(xié)方差矩陣對數(shù)據(jù)進行壓縮降維、去噪的有效方法,PCA的思想是將n維特征映射到k維上(k<>
1、協(xié)方差?Covariance
變量X和變量Y的協(xié)方差公式如下,協(xié)方差是描述不同變量之間的相關關系,協(xié)方差>0時說明 X和 Y是正相關關系,協(xié)方差<0時 x和y是負相關關系,協(xié)方差為0時="">0時>
協(xié)方差的計算是針對兩維的,對于n維的數(shù)據(jù)集,可以計算C(n,2)種協(xié)方差。?n維數(shù)據(jù)的協(xié)方差矩陣的定義如下:
Dim(x)表示第x維。
對于三維(x,y,z),其協(xié)方差矩陣如下,可看出協(xié)方差矩陣是一個對稱矩陣(symmetrical),其對角線元素為每一維的方差:
2、特征向量和特征值
可以這樣理解:矩陣A作用在它的特征向量X上,僅僅使得X的長度發(fā)生了變化,縮放比例就是相應的特征值。
特征向量只能在方陣中找到,而且并不是所有的方陣都有特征向量,并且如果一個n*n的方陣有特征向量,那么就有n個特征向量。一個矩陣的所有特征向量是正交的,即特征向量之間的點積為0,一般情況下,會將特征向量歸一化,即向量長度為1。
3、PCA過程
第一步,獲取數(shù)據(jù),下圖中的Data為原始數(shù)據(jù),一共有兩個維度,可看出二維平面上的點。
下圖是Data在二維坐標平面上的散點圖:
第二步,減去平均值,對于Data中的每一維數(shù)據(jù)分別求平均值,并減去平均值,得到DataAdjust數(shù)據(jù)。
第三步,計算DataAdjust的協(xié)方差矩陣
第四步,計算協(xié)方差矩陣的特征向量和特征值,選取特征向量
特征值0.490833989對應的特征向量是(-0.735178656, 0.677873399),這里的特征向量是正交的、歸一化的,即長度為1。
下圖展示DataAdjust數(shù)據(jù)和特征向量的關系:
正號表示預處理后的樣本點,斜著的兩條線就分別是正交的特征向量(由于協(xié)方差矩陣是對稱的,因此其特征向量正交),特征值較大的那個特征向量是這個數(shù)據(jù)集的主要成分(principle component)。
通常來說,當從協(xié)方差矩陣計算出特征向量之后,下一步就是通過特征值,對特征向量進行從大到小的排序,這將給出成分意義的順序。成分的特征值越小,其包含的信息量也就越少,因此可以適當選擇。
如果數(shù)據(jù)中有n維,計算出n個特征向量和特征值,選擇前k個特征向量,然后最終的數(shù)據(jù)集合只有k維,取的特征向量命名為FeatureVector。
這里特征值只有兩個,我們選擇其中最大的那個,1.28402771,對應的特征向量是
。
第五步,將樣本點投影到選取的特征向量上,得到新的數(shù)據(jù)集
假設樣例數(shù)為m,特征數(shù)為n,減去均值后的樣本矩陣為DataAdjust(m*n),協(xié)方差矩陣是n*n,選取的k個特征向量組成的矩陣為EigenVectors(n*k)。那么投影后的數(shù)據(jù)FinalData為
這里是FinalData(10*1) = DataAdjust(10*2矩陣)×特征向量
得到結果為
下圖是FinalData根據(jù)最大特征值對應的特征向量轉化回去后的數(shù)據(jù)集形式,可看出是將DataAdjust樣本點分別往特征向量對應的軸上做投影:
如果取的k=2,那么結果是
可見,若使用了所有特征向量得到的新的數(shù)據(jù)集,轉化回去之后,與原來的數(shù)據(jù)集完全一樣(只是坐標軸旋轉)。
覺得本文有幫助?請分享給更多人
關注「算法愛好者」,修煉編程內功
總結
以上是生活随笔為你收集整理的pca降维的基本思想_一文读懂 PCA 降维算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: parent winform 位置_wi
- 下一篇: openwrt dhcp不分配_【装维技