機器學習—PCA降維
1、基本思想:
主成分分析(Principal components analysis,以下簡稱PCA)是最重要的降維方法之一。在數據壓縮消除冗余和數據噪音消除等領域都有廣泛的應用。
PCA顧名思義,就是找出數據裏最主要的方面,用數據裏最主要的方面來代替原始數據。
第一種解釋是樣本點到這個直線的距離足夠近,第二種解釋是樣本點在這個直線上的投影能盡可能的分開。
我們知道“基於最小投影距離”就是樣本點到這個超平面的距離足夠近,也就是盡可能保留原數據的信息;而“基於最大投影方差”就是讓樣本點在這個超平面上的投影能盡可能的分開,也就是盡可能保留原數據之間的差異性。
假如我們把n‘從1維推廣到任意維,則我們的希望降維的標準為:樣本點到這個超平面的距離足夠近,或者說樣本點在這個超平面上的投影能盡可能的分開。
基於上面的兩種標準,我們可以得到PCA的兩種等價推導。
2、優缺點
作為一個非監督學習的降維方法,它只需要特征值分解,就可以對數據進行壓縮,去噪。因此在實際場景應用很廣泛。
PCA算法的主要優點有:
1)僅僅需要以方差衡量信息量,不受數據集以外的因素影響。
2)各主成分之間正交,可消除原始數據成分間的相互影響的因素。
3)計算方法簡單,主要運算是特征值分解,易於實現。
PCA算法的主要缺點有:
1)主成分各個特征維度的含義具有一定的模糊性,不如原始樣本特征的解釋性強。
2)方差小的非主成分也可能含有對樣本差異的重要信息,因降維丟棄可能對後續數據處理有影響。
為啥W‘XX‘W可以度量樣本的差異性。最後得出結論:XX‘就是X的協方差矩陣,其中對角線元素為各個字段的方差,而非對角線元素表示變量i和變量j兩個字段的協方差。
註意:
由於 PCA 減小了特征維度,因而也有可能帶來過擬合的問題。PCA 不是必須的,在機器學習中,一定謹記不要提前優化,只有當算法運行效率不盡如如人意時,再考慮使用 PCA 或者其他特征降維手段來提升訓練速度。
降低特征維度不只能加速模型的訓練速度,還能幫我們在低維空間分析數據,例如,一個在三維空間完成的聚類問題,我們可以通過 PCA 將特征降低到二維平面進行可視化分析。
3、算法流程
下面給出第一篇博文中總結的算法流程。
輸入:n維樣本集D=(x1,x2,...,xm)
輸出:n‘維樣本集D‘=(z1,z2,...,zm), 其中n‘≤n
1. 對所有樣本進行中心化(均值為0):
2. 計算樣本的協方差矩陣XX‘
3. 對協方差矩陣XX‘進行特征分解(https://blog.csdn.net/jingyi130705008/article/details/78939463)
4. 取出最大的n‘個特征值對應的特征向量(w1,w2,...,wn‘),對其進行標準化,組成特征向量矩陣W
5. 對於訓練集中的每一個樣本,進行相應轉換:
6. 得到輸出樣本集D‘=(z1,z2,...,zm)
備註:有時候,我們不指定降維後的n‘的值,而是換種方式,指定一個降維到的主成分比重閾值t。這個閾值t在(0,1]之間。假如我們的n個特征值為λ1≥λ2≥...≥λn,則n‘可以通過下式得到:
機器學習—PCA降維