1. 程式人生 > >PCA的數學原理推導

PCA的數學原理推導

PCA的數學推導

PCA(Principle Component Analysis)是一種可以將高維度資料降為低維度資料的機器學習演算法。通過降維,可以有節省儲存空間,資料視覺化等優點。之前在Coursera上Andrew Ng的機器學習時瞭解到此演算法,但是那個課只涉及了實現,並未闡述其背後的數學原理。之後在Coursera上又找到一門專門講PCA數學原理的課程,才藉此瞭解些許其中的數學原理,在此坐下記錄,以便日後複習。

期望與方差

期望(Expectation):簡單來說,期望能夠反映一組資料的平均值情況。其中一個定義為:E(X)=1Ni=1Nxi 。由期望的定義不難得出以下性質:

(1)E(X+a)=E(X)(2)E(aX)=aE(x)
方差(Variance): 方差反映的是一組資料裡各個資料點相對期望值的分散程度的總和。定義如下:Var(X)=1Ni=1N(xiE(X))2。從方差的定義也不難推匯出如下性質:
(3)Var(X+a)=Var(X)(4)Var(aX)=a2Var(X)

協方差

協方差(Covariance): 方差只是放映一個維度內的資料的分散程度,而協方差則用來表示不同緯度之間資料的相關性。
假設有兩組資料X,Y,那他們的協方差定義為

Cov(X,Y)=1Ni=1N(xiE(X))(yiE(Y))=E[(XE(X))(YE(Y))].
如果協方差是正數,代表兩組資料正相關,簡單來說就是一組資料若有變大趨勢,另外一組也有變大的趨勢。如果為負數,就是負相關。為零,則代表兩組資料不相關。
對於多組資料,協方差通常表示為協方差矩陣(Covariance matrix)。假設兩組資料X,Y, 那他們的協方差表示為
S=(cov(X,X)co
v(X,Y)cov(Y,X)cov(Y,Y))

協方差矩陣的維度D是資料的維度。例如有在實際應用中,資料會如下儲存 XRND, 這個說明資料按行儲存,有N行,每個資料的維度D。在這種前提下,根據協方差矩陣定義和矩陣基本運算,協方差矩陣如下:
S=1N(XE(X))T(XE(X))
不難看出,協方差矩陣是對稱矩陣(symmetric matrix),且主對角線元素全都是大於等於0的。協方差矩陣具備一些良好的性質,可以為日後的計算帶來很大的便利。關於實對稱矩陣的半正定性質,一起其他性質,在另外一篇部落格中記錄。

內積

內積(inner product): 不嚴格的來說,內積可以理解為在向量空間裡定義的一種計算方法。具體的定義可見維基百科inner product。簡單來說內積滿足一下運算條件:
symmetric:

<x,y>=<y,x>
bilinear: <ax,y>=a<x,y><x+y,z>=<x,z>+<y,z>
positive definite: