白話機器學習演算法(六) PCA
PCA是一種線性對映,目的是為了降維。
在機器學習演算法中,對映可以降維也可以升高維度,看最終的目的是什麼,如果為了簡化輸入特徵,可以降維,如果資料在低維線性不可分,可以考慮將資料對映到高維空間中,那樣可能就線性可分了,這就是核方法。
PCA屬於前者;
講PCA之前我要提幾個概念
1:投影
2:協方差
3:正交向量
對於1,投影是一個標量,如果我們說 A在B方向上的投影,就是表示,A中的B分量的大小。這裡B僅僅代表方向而沒有長度,B是一個單位向量;
怎樣算投影呢,就是求內積!
對於2,一般我們知道對於單個隨機變數,有方差這個概念,當把單個隨機變數推廣到兩個的時候,就有了協方差;
對於3,空間可以看成是若干正交向量張成的空間,該空間上的任意一個點都可以用這些正交向量加權起來;
現在我們有若干向量,這些向量呢,可以看成是一個高維隨機向量的若干觀測值,因而就有了均值,協方差的概念;
假設現在有個向量集合,每個向量就是一個觀測值,有D個維度,我們觀測M次 ;資料就可以用D乘以M的矩陣來表示,矩陣的一列就是一個觀測結果;
現在用一個對映矩陣左乘這個資料矩陣,相當於將資料矩陣進行了對映,得到原來資料矩陣在新空間上的投影,也就有原資料在新的座標空間上的表示,這個對映的目的是,使得對映結果屬性間無關,而且第一行的方差>第二行的方差>.....>最後一行的方差;這麼做可以保留資料的個性,剔除資料的共性,去除屬性間的相關性;
去除屬性間的相關性是通過 對映矩陣每行的正交性獲得;
對映矩陣如何獲得?
對原資料的協方差矩陣進行特徵值分解,將獲得的正交化的特徵向量,按照對應特徵值由大到小按行排列就能得到;
PCA的思想就是座標變換,通過構建一個新的正交空間,重新構建原資料,這個思想跟傅立葉變換是一致的,說白了,就是換一種表示方法;
如上圖,原來用x,y座標表示的點座標,我可以用a,b座標來表示,當我需要降維的情況下,我只用a座標就能大概表示這些資料的特徵,問題就集中在怎麼構建這樣一個新的座標系了。上面已經回答;
具體的證明:方差最大化(目標函式)+拉格朗日(略)
總結:PCA的目的是用最少的維度來保留原資料的最大資訊,這種對映對資料的實際劃分作用並不大!
實際上對映以後,兩點在原空間的歐式距離>=兩點在新空間的歐式距離。
這是他的原理決定的,不能對PCA要求過高,或者把它用在錯誤的地方!
如果我們需要一種降維以後兩類間的距離變得更大了,而類內距離變緊湊了,線上性方法中我們可以找LDA這位哥們,傳說中的Fisher判別分析;
最後:一位面試官問我PCA與GTM的區別,當時因為那天種種原因,未能答清楚,這裡補充下吧:兩者從結果看都是對映,都能降維度,但是降維的目的不同,最終目標空間意義也不同,PCA還是歐式空間的座標變換,GTM是概率空間的對映,GTM對映後距離近,說明兩者屬於同一類別(即屬於同一個高斯分佈)的概率大,GTM的對映空間是人為定義的,僅僅作為高維資料視覺化的使用,PCA則是赤裸裸的換個座標(角度)看資料!
以後部落格會詳細講講GTM(生成拓撲對映)!