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