1. 程式人生 > >淺談PCA

淺談PCA

最近在回顧PCA方面的知識,發現對於之前的很多東西有了新的理解,下面和大家分享下我的一些個人的理解

1.我們為什麼要用PCA,它能解決我什麼問題?

  PCA(Principal Component Analysis),主成成分分析,常用於高維資料的降維。在企業級環境中,最終用於模型訓練的資料集往往維度很高,佔用記憶體空間更大。PCA的出現,能保證儘量保留資料更完整資訊的同時,將資料降低到更低的維度,這樣不僅佔用記憶體空間更小,模型訓練速度也明顯加快! (這裡的模型訓練的速度的加快是   降維之前訓練所用的時間  對比 降維所用的時間 + 降維之後訓練所用的時間

2.PCA的理論分析

  PCA的目標:

        2.1:將原始資料集通過降維的方式,在新的座標系下表示,新的座標系的維度遠低於原始維度。

        2.2:在新的座標系下的表示應儘量保留相對完整的資訊。

  對於2.2我們知道,完整的資訊指的是資料間的差異。例如我們在做模型訓練的時候,往往希望訓練資料的分佈是涵蓋了所有的情況一樣。我們用方差來衡量資料間的離散程度,這也是新座標下的衡量指標,我們要找到這樣的一組座標系,使得原始資料在新座標系下的方差最大。

3.準備工作

  進行降維之前,讓我們來做些準備工作。首先對資料進行0均值歸一化,之後再做標準化處理。使得所有資料在同一量綱。

4.數學推導

  

                上式中的μ為空間中的一個向量,x為經過特徵工程處理過後的矩陣。第一個式子為我們的目標函式,第二個為最優解的約束,問題為在約束空間內求最優解的問題,用拉格朗日乘子來求解。

    得到下面的結果:

    

    其中我們使,為協方差矩陣。所以我們知道μ就是e的主特徵向量。(關於特徵向量和特徵值的一些概念,可以參靠一些資料來複習下)

    我們的原始問題在此刻即轉變為求e矩陣的TOPk個特徵值對應的k個特徵向量的問題

5.選幾個?

              對應最終的特徵向量,我們選取幾個,最終資料降低到幾維度,那麼,我們要怎麼選取?

    

 

    假設上式為降維後對應的特徵向量,那麼根據特徵值佔比來選擇最終保留的維度,即如果降低到1維  此時的特徵值佔比為(3/3+2+0.1),如果降低到二維度,此時的特徵值佔比為(3+2/3+2+0.1)

    如果要求資訊量保留95%,那麼根據特徵值佔比與目標值做比較,達到要求即可。

(有一些問題沒有討論,後續完善!之後會上程式碼做比較!)

 

 

參考資料:吳恩達機器學習公開課

     馬同學高等數學公眾號