PCA(Principal Component Analysis,主成分分析)
在高維向量空間中,隨著維度的增加,數據呈現出越來越稀疏的分布特點,增加后續算法的復雜度,而很多時候雖然數據維度較高,但是很多維度之間存在相關性,他們表達的信息有重疊。
PCA的思想是將n維特征映射到k維上(k<n),這k維是全新的正交特征。
這k維特征稱為主成分,是重新構造出來的k維特征,而不是簡單地從n維特征中去除其余n-k維特征(這也是與特征選擇特征子集的方法的區別)。
PCA的目的是在高維數據中找到較大方差的方向,接著映射它到比最初維數小或相等的新的子空間。
?
? PCA算法流程
輸入:訓練樣本集 D=x(1),x(2),...,x(m)D=x(1),x(2),...,x(m) ,低維空間維數 d′d′ ;
過程:.
1:對所有樣本進行中心化(去均值操作): x(i)j←x(i)j?1m∑mi=1x(i)jxj(i)←xj(i)?1m∑i=1mxj(i) ;
2:計算樣本的協方差矩陣 XXTXXT ;
3:對協方差矩陣 XXTXXT 做特征值分解 ;
4:取較大的 d′d′ 個特征值所對應的特征向量 w1,w2,...,wd′w1,w2,...,wd′
5:將原樣本矩陣與投影矩陣相乘: X?WX?W 即為降維后數據集 X′X′ 。其中 XX 為 m×nm×n 維, W=[w1,w2,...,wd′]W=[w1,w2,...,wd′] 為 n×d′n×d′ 維。
6:輸出:降維后的數據集 X′
PCA算法分析
優點:使得數據更易使用,并且可以去除數據中的噪聲,使得其他機器學習任務更加精確。該算法往往作為預處理步驟,在數據應用到其他算法之前清洗數據。
缺點:數據維度降低并不代表特征的減少,因為降維仍舊保留了較大的信息量,對結果過擬合問題并沒有幫助。不能將降維算法當做解決過擬合問題方法。如果原始數據特征維度并不是很大,也并不需要進行降維。