機器學習 -- PCA(Ⅰ PCA介紹)

1. PCA是什麼?

        PCA,全稱Principal Component Analysis(主成分分析)。主成分分析法本身是一個非監督的機器學習算法,主要用於數據的降維。降維可以發現更便於人們理解的特徵。主成分分析法也有其他應用:如可視化;去噪。

 

舉例:

如圖所示有二維平面,橫軸和縱軸分別代表不同特徵,座標上有如下樣本。

要將此二維特徵進行降維,則考慮以下兩種方式:

(1)若拋棄特徵2,保留特徵1進行降維:

(2)若拋棄特徵1,保留特徵2進行降維:

(3)比較

比較兩個降維方案,我們認爲右邊是較好的降維方案。因爲右圖中點與點距離較大,即點與點之間有較高的可區分度,保持了原來的點之間距離。而左側與原先點之間分佈差異更大。而右邊是最好的方案嗎?

若給出一條直線如圖。

將所有點映射到此直線上,如圖所示。

這樣點與點之間距離更大,區分度更高,同時使得降維後的點的位置更接近與原先點位置。

問題:如何找到這個讓樣本間間距最大的軸?

如何定義樣本間間距?

使用方差(Variance)Var(x) = \frac{1}{m} \sum _{i=1}^m(x_i - \bar{x})^2

問題轉化爲:找到一個軸,使得樣本空間的所有點映射到這個軸後,方差最大。

 

2. 方法

第一步:將樣例的均值歸爲0(demean)

即所有樣本都減去樣本的均值。

即從圖:

變爲:

使得每一個樣本在每個維度均值都爲0。此時\bar{x} = 0 ,則方差化簡爲:Var(x) = \frac{1}{m} \sum _{i=1}^mx_i^2 。式子中x_i 爲所有樣本點映射在新的座標軸上對應的新的樣本,二維中可表示爲w = (w1, w2)。

我們想求一個軸的方向w = (w1, w2),使得所有樣本映射到w後,有:Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m(X_{project}^{(i)} - \bar{X}_{project})^2 (映射後的方差值)最大。由於X是包含兩個維度的向量,故可寫成:Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m||X_{project}^{(i)} - \bar{X}_{project}||^2  求解最大值。

 

Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m||X_{project}^{(i)} - \bar{X}_{project}||^2 最大,由於進行了demean處理,故\bar{X}_{project} = 0,所以求解如下式子最大值。

Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m||X_{project}^{(i)}||^2

假設紅線w = (w1, w2)爲我們要尋找的方向,X^{(i)} = (X^{(i)}_1, X^{(i)}_2) 爲樣本點對應的向量,現X映射到w則做一垂線,交點 (X^{(i)}_{pr1}, X^{(i)}_{pr2}) 如下圖。則我們要求的||X_{project}^{(i)}||^2 的平方對應的是下圖藍色線長度的平方。

X^{(i)} \cdot w = ||X^{(i)}|| \cdot ||w|| \cdot cos\theta (夾角爲兩紅線之間夾角)

由於||w|| = 1,故可化爲:

X^{(i)} \cdot w = ||X^{(i)}|| \cdot cos\theta = ||X^{(i)}_{project}||

即求: Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m||X^{(i)} \cdot w||^2 最大值。(可以不用||符號,因爲兩個向量點乘結果是一個數)。

Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m(X^{(i)}_1w_1 + X^{(i)}_2w_2 + ... + X^{(i)}_nw_n)^2

也可以表示爲:

Var(X_{project}) = \frac{1}{m} \sum _{i=1}^m (\sum _{j=1}^m(X^{(i)}_jw_j))^2

到此爲止,主成分分析法就化成了一個目標函數的最優化問題,我們可以使用梯度上升法解決。

 

 

 

 

 

 

 

 

發佈了306 篇原創文章 · 獲贊 70 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章