機器學習_學習筆記系列(59):主成分分析-最大化變異數觀點(Principal Component Analysis — Maximum Variance Prospective)
前幾個章節我們介紹了Cross Decomposition,將輸入資料X和輸出資料Y同時降維到低維度空間進行分類和回歸。但其實也很多情況是我們的輸出資料Y每筆資料只有一個特徵,所以實際上只需要對X作降維就好了。而在這種只對輸入資料進行處理的機器學習,我們稱之為「非監督式學習(Unsupervised Learning)」。
而今天我們就要從Unsupervised Learning開始,講解其中最經典的演算法,「Principal Component Analysis (PCA)」。
PCA
關於PCA演算法,其是在1901年由Karl Pearson所提出,而關於Karl Pearson他也是個跨領域的天才,他讀過劍橋大學數學博士、也有人文學文憑和大律師(barrister)資格,他甚至還是開創生物統計第一人,因此獲得了達爾文獎章。
回歸正題關於PCA的概念和想法,粗略的講就是把高維度的資料以盡可能保留其特性的方式降到低維度。而其可以用很多方法去解釋,幾個比較主流的觀點有
1. 以統計學觀點出發的Maximum Variance Prospective
2. 以線性代數觀點出發的Minimum MSE Prospective
3. 以資訊理論觀點出發的Latent Variable Prospective
對於這方面我強烈推薦Marc Peter Deisenroth的書Mathematics for Machine Learning,(但這本書有數學系和統計系底子的人看比較看得懂,當初這邊我跟數學系的朋友討論超久@@),他甚至在Coursera上面還有講解PCA的課程,課程名稱一樣叫做Mathematics for Machine Learning。
而接下來我們就以外星人用降維打擊攻打地球,把每個人從三維變到二維的例子來輔助解釋這一個Maximum Variance觀點。
Maximum Variance Prospective
對於外星人降維打擊的例子,我們假想今天每個人都降到2維,那如果今天有個人站在我頭上,那我被攻擊之後不就跟那個人融成一體了嗎?所以對於Maximum Variance Prospective,我們可以想像地球上的每個人代表一個數據點,我們希望降維後每個人的間距都能越遠越好才不會重疊在一起,也就是說我希望最大化數據的變異數。以比較嚴謹的數學式來闡述
1st component
首先我們設我的資料集為X總共有N筆、D個特徵、轉換矩陣為B,我們想要將其降到K維、轉換後的資料為Z,其中
而要求B矩陣我們的思路是,先求出第1維的轉換向量b1,接著再利用b1求出b2,再利用b2求出b3,依此類推求出bK。所以現在我先從b1開始求解。
首先因為我們想要Maximum Variance,所以我們投影到一維的數據z1,其Variance為
在這裡我們限制b1向量長度為1,所以我們的最佳化問題為
而這裡我們用Lagrange的方式去解,其Lagrange function為
接著對Lagrange function微分
也就是說
所以我們只要找到S的eigenvector和eigenvalue,就能求出b1和𝜆1。若我們想把資料重組回去我們只要計算
kth component
而接下來我們就要找第二、甚至第三個component。所以這裡設我們要找第k個component,而我們已經找到了前面k-1個component,所以說我們可以定義
其中X上面的hat符號代表的就是降到k-1維後, X所損失的資訊量。接下來我們來看第k個component的variance
而我們用剛剛相同的方法列出Lagrange function,我們就可以得到
由於b1,b2,…到b(k-1)為正交基底,所以
我們可以改寫式子為
所以說
我們只要找到S的eigenvalue和eigenvector就能找到𝜆k和bk。也就是說我們求解eigenvalue和eigenvector的時候,我們會得到D個eigenvalue,和D組eigenvector,所以這裡的𝜆k對S_hat來說是最大的eigenvalue,對S來說是第k大的eigenvalue,我們只要依照eigenvalue的大小排序,就可以找到對應的eigenvector。
Example
接下來我們以實際例子看看,我們用sin函數產生資料X,然後總共六個特徵
我們一樣把他降到K維再重組資料
K=1
K=2
K=3
K=4
K=5
K=6
我們可以看到PCA會截取數據裡面重要的資訊,所以當K=4的時後,其趨勢就和原本圖案相當接近了。
Python Sample Code:
Github:
Reference:
[1] Deisenroth, M. P., Faisal, A. A., & Ong, C. S. (2020). Mathematics for machine learning. Cambridge University Press.