前言
主成分分析 (Principal Component Analysis PCA) 是我在數理統計課上最難理解的知識之一,它在機器學習當中也有廣泛的應用,Pattern Recognition and Machine Learning1 一書第12.1章也對其做了充分的解釋,書中提到PCA有可以由兩種定義得到,這兩種定義分別在1901年,1933年發明,PCA可以有很多應用,降維,有損數據壓縮,特徵提取,數據可視化。對於這些問題,不僅僅PCA可以解決,如今出現了也各種各樣新的方法。PCA常常用來對數據進行預處理,但PCA不能確保可以提高最終的分類效果,在我看來PCA來做預處理需要小心,不能無腦使用PCA,甚至不要用PCA做預處理。
這篇文章,簡要地分析了一下PCA,另外用實驗的方式表明PCA做預處理不能提高分類效果。
理解PCA
考慮有一組數據,{x??},其中 ?? = 1, 2, ... ??,x??是一個D維向量,最大方差法 (Maximum variance formulation) 的目標是把D維的向量通過一個D × M的矩陣,將??個D維向量映射成M維向量,M < D,使得映射之後的數據方差最大1 。求得符合條件的D × M的矩陣就是用來做PCA預處理用的。求這個矩陣的過程當中會涉及到矩陣乘法,特徵值,特徵向量的概念,Youtube博主3Blue1Brown2 將這些概念解釋的非常巧妙。