機器學習(五)PCA數據降維


PCA數據降維

原文地址:http://blog.csdn.net/hjimce/article/details/45000221 

作者:hjimce

一、PCA相關理論

PCA算法又稱主成分分析,是一種分析、簡化數據集的技術。主成分分析經常用於減少數據集的維數,同時保持數據集中的對方差貢獻最大的特征。PCA的數學定義是:一個正交化線性變換,把數據變換到一個新的坐標系統中,使得這一數據的任何投影的第一大方差在第一個坐標(稱為第一主成分)上,第二大方差在第二個坐標(第二主成分)上,依次類推。

PCA不僅僅是對高維數據進行降維,更重要的是經過降維去除了噪聲,發現了數據中的模式。PCA把原先的n個特征用數目更少的m個特征取代,新特征是舊特征的線性組合,這些線性組合最大化樣本方差,盡量使新的m個特征互不相關。從舊特征到新特征的映射捕獲數據中的固有變異性。

二、PCA算法實現

對於PCA數據降維算法一開始經常和SVD奇異分解搞混了,其實這兩個可以說扯不上關系,SVD分解是一種矩陣分解的解法,可以用於求取一個非方陣矩陣的特征值和特征向量。下面先從PCA算法流程講起:

(1)對於給定的二維數據點集P(x,y),求取這些散亂點的重心坐標

(2)把散亂點的重心坐標平移到原點,同時構造新數據矩陣:


注意上面每個點,需要寫成列向量的形式,這樣構造的M矩陣是一個2行,n列的矩陣

(3)構造協方差矩陣,協方差矩陣為:


由於M矩陣是的矩陣,則最后的協方差矩陣為的矩陣,存在兩個特征值和特征向量。

(4)求解A矩陣的特征值,特征向量,那么特征值最大對應的特征向量,為數據點位置方差變化最快的方向,如下圖,直線的方向向量即為A矩陣的最大特征向量的方向,而A矩陣的另外一個特征向量,即為垂直於該直線的方向向量。


 

(5)設求解出的A矩陣的特征向量為,上圖的二維特征向量就是直線的法向量和垂直於該直線的法向量。接着把所有的原來數據點P(x,y),投影到這些特征向量上,得到對應的系數,其實這一步很簡單,只需要把P(x,y)與特征向量點乘,即


即可轉換到特征空間的投影坐標B,也就是相當於轉換到相對以特征向量為坐標軸方向的相對坐標系下。

那么同理,如果要把數據從相對坐標系轉換到世界坐標系下就要用公式:


這就是PCA算法,數據重建的公式。

(6)數據降維,說的簡單一點就是丟棄掉一些特征向量,然后進行重建數據,比如所我現在要把上面的二維數據降為1維,那么我重建數據的公式就要由:

變為

也就是說與數據重建的結果無關,數據存儲的時候,只需要存一維坐標,然后由重建降維后的數據,而原來每個樣本點的需要存儲(x,y)兩個數據,這就是所謂的數據降維。


當然對於真正的數據,往往不僅僅是2維的,可以有更高維的向量,比如在機器學習領域,對於一張的圖片,每一個樣本的維數就是400維,存在着大量的冗余數據,因此降維是很有必要的。

***********作者:hjimce     聯系qq:139385268    更多資源請關注我的博客:http://blog.csdn.net/hjimce                  原創文章,轉載請注明出處 *********************



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: