1. PCA是什麼?
PCA,全稱Principal Component Analysis(主成分分析)。主成分分析法本身是一個非監督的機器學習算法,主要用於數據的降維。降維可以發現更便於人們理解的特徵。主成分分析法也有其他應用:如可視化;去噪。
舉例:
如圖所示有二維平面,橫軸和縱軸分別代表不同特徵,座標上有如下樣本。
要將此二維特徵進行降維,則考慮以下兩種方式:
(1)若拋棄特徵2,保留特徵1進行降維:
(2)若拋棄特徵1,保留特徵2進行降維:
(3)比較
比較兩個降維方案,我們認爲右邊是較好的降維方案。因爲右圖中點與點距離較大,即點與點之間有較高的可區分度,保持了原來的點之間距離。而左側與原先點之間分佈差異更大。而右邊是最好的方案嗎?
若給出一條直線如圖。
將所有點映射到此直線上,如圖所示。
這樣點與點之間距離更大,區分度更高,同時使得降維後的點的位置更接近與原先點位置。
問題:如何找到這個讓樣本間間距最大的軸?
如何定義樣本間間距?
使用方差(Variance):。
問題轉化爲:找到一個軸,使得樣本空間的所有點映射到這個軸後,方差最大。
2. 方法
第一步:將樣例的均值歸爲0(demean)
即所有樣本都減去樣本的均值。
即從圖:
變爲:
使得每一個樣本在每個維度均值都爲0。此時 ,則方差化簡爲: 。式子中 爲所有樣本點映射在新的座標軸上對應的新的樣本,二維中可表示爲w = (w1, w2)。
我們想求一個軸的方向w = (w1, w2),使得所有樣本映射到w後,有: (映射後的方差值)最大。由於X是包含兩個維度的向量,故可寫成: 求解最大值。
最大,由於進行了demean處理,故 = 0,所以求解如下式子最大值。
假設紅線w = (w1, w2)爲我們要尋找的方向, 爲樣本點對應的向量,現X映射到w則做一垂線,交點 如下圖。則我們要求的 的平方對應的是下圖藍色線長度的平方。
(夾角爲兩紅線之間夾角)
由於||w|| = 1,故可化爲:
即求: 最大值。(可以不用||符號,因爲兩個向量點乘結果是一個數)。
也可以表示爲:
到此爲止,主成分分析法就化成了一個目標函數的最優化問題,我們可以使用梯度上升法解決。