PCA是一種統計方法,常用於解決數據降維、算法加速和數據可視化等問題,背后的數學工具是SVD。
一、主成分分析的內涵
通過正交變換將一組個數較多的、彼此相關的、意義單一的指標變量轉化為個數較少的、彼此不相關的、意義綜合的指標變量。轉換后的這組
變量叫主成分。
二、關於降維
1.必要性
(1)多重共線性——預測變量間相互關聯。多重共線性會導致解空間的不穩定,從而可能導致結果的不連貫。
(2)高維空間本身具有稀疏性。一維正態分布有68%的值落在正負標准差之間,而在十維空間上只有0.02%。
(3)過多的變量會妨礙查找規律的建立。
(4)僅在變量層面上分析可能會忽略變量間的潛在聯系。
2.目的
(1)減少預測變量的個數
(2)確保這些變量相互獨立
(3)提供一個框架來解釋結果
3.方法
(1)PCA(2)因子分析(3)用戶自定義復合
三、基本原理
將彼此相關的變量轉變為彼此不相關的變量;方差較大的幾個新變量就能綜合反映原多個變量所包含的主要信息;新變量各自帶有獨特含義。
四、預備知識
計算協方差矩陣通常用以下簡化方法:先讓樣本矩陣中心化,即每一維度減去該維度的均值,然后直接用得到的樣本矩陣乘上它的轉置,再除以N-1
五、PCA過程
1.特征中心化:變換后每一維的均值都為0
2.計算所得矩陣的協方差矩陣
3.計算協方差矩陣的特征值和特征向量
4.特征值按由小到大排列,也就給出了成分的重要性。忽略重要性小的成分。若原數據集是n維的,選擇前p個主要成分,那數據僅有p維。
5.選取剩余特征值對應的特征向量,按序排列成變換矩陣。
6.得到降維后的數據
FinalData=rowFeatureVector*rowDataAdjust
其中rowFeatureVector是由模式矢量作為列組成的矩陣轉置。rowDataAdjust是每一維數據減去平均值后所組成的矩陣的轉置。FinalData
是最后得到的數據,數據項在列中,維沿着行。若要恢復原始數據,只需逆運算
六、補充說明
1.PCA不僅僅是對高維數據進行降維,更重要的是經過降維去除噪聲,發現數據中的模式。
2.PCA把原先n個特征用數目更少的特征取代,新特征是舊特征的線性組合,這些線性組合最大化樣本方差,盡量使新特征互不相關。從舊特征
到新特征的映射捕獲數據中的固有變異性。