主成分分析
在多變量分析中,主成分分析(英語:Principal components analysis,縮寫:PCA)是一種統計分析、簡化數據集的方法。它利用正交轉換來對一系列可能相關的變量的觀測值進行線性轉換,從而投影為一系列線性不相關變量的值,這些不相關變量稱為主成分(Principal Components)。具體地,主成分可以看做一個線性方程,其包含一系列線性系數來指示投影方向。PCA對原始數據的正則化或預處理敏感(相對縮放)。
基本思想:
- 將坐標軸中心移到數據的中心,然後旋轉坐標軸,使得數據在C1軸上的方差最大,即全部n個數據個體在該方向上的投影最為分散。意味着更多的資訊被保留下來。C1成為第一主成分。
- C2第二主成分:找一個C2,使得C2與C1的協方差(相關係數)為0,以免與C1資訊重疊,並且使數據在該方向的方差儘量最大。
- 以此類推,找到第三主成分,第四主成分……第p個主成分。p個隨機變量可以有p個主成分[1]。
主成分分析經常用於減少數據集的維數,同時保留數據集當中對方差貢獻最大的特徵。這是通過保留低維主成分,忽略高維主成分做到的。這樣低維成分往往能夠保留住數據的最重要部分。但是,這也不是一定的,要視具體應用而定。由於主成分分析依賴所給數據,所以數據的準確性對分析結果影響很大。
主成分分析由卡爾·皮爾森於1901年發明[2],用於分析數據及建立數理模型,在原理上與主軸定理相似。之後在1930年左右由哈羅德·霍特林獨立發展並命名。依據應用領域的不同,在信號處理中它也叫做離散K-L 轉換(discrete Karhunen–Loève transform (KLT))。其方法主要是通過對協方差矩陣進行特徵分解[3],以得出數據的主成分(即特徵向量)與它們的權值(即特徵值[4])。PCA是最簡單的以特徵量分析多元統計分佈的方法。其結果可以理解為對原數據中的方差做出解釋:哪一個方向上的數據值對方差的影響最大?換而言之,PCA提供了一種降低數據維度的有效辦法;如果分析者在原數據中除掉最小的特徵值所對應的成分,那麼所得的低維度數據必定是最優化的(也即,這樣降低維度必定是失去訊息最少的方法)。主成分分析在分析複雜數據時尤為有用,比如人臉識別。
PCA是最簡單的以特徵量分析多元統計分佈的方法。通常,這種運算可以被看作是揭露數據的內部結構,從而更好地展現數據的變異度。如果一個多元數據集是用高維數據空間之坐標系來表示的,那麼PCA能提供一幅較低維度的圖像,相當於數據集在訊息量最多之角度上的一個投影。這樣就可以利用少量的主成分讓數據的維度降低了。
PCA 跟因子分析密切相關。因子分析通常包含更多特定領域底層結構的假設,並且求解稍微不同矩陣的特徵向量。
PCA 也跟典型相關分析(CCA)有關。CCA定義的坐標系可以最佳地描述兩個數據集之間的互協方差,而PCA定義了新的正交坐標系,能最佳地描述單個數據集當中的方差。
數學定義
PCA的數學定義是:一個正交化線性轉換,把數據轉換到一個新的坐標系統中,使得這一數據的任何投影的第一大方差在第一個坐標(稱為第一主成分)上,第二大方差在第二個坐標(第二主成分)上,依次類推[5]。
定義一個的矩陣, 為去平均值(以平均值為中心移動至原點)的數據,其行為數據樣本,列為數據類別(注意,這裏定義的是 而不是)。則的奇異值分解為,其中是的特徵向量矩陣, 是奇異值矩陣,是的特徵向量矩陣。據此,
當 m < n − 1時,V 在通常情況下不是唯一定義的,而Y 則是唯一定義的。W 是一個正交矩陣,YTWT=XT,且YT的第一列由第一主成分組成,第二列由第二主成分組成,依此類推。
為了得到一種降低數據維度的有效辦法,我們可以利用WL把 X 映射到一個只應用前面L個向量的低維空間中去:
其中,且為的單位矩陣。
X 的單向量矩陣W相當於協方差矩陣的特徵向量 C = X XT,
在歐幾里得空間給定一組點數,第一主成分對應於通過多維空間平均點的一條線,同時保證各個點到這條直線距離的平方和最小。去除掉第一主成分後,用同樣的方法得到第二主成分。依此類推。在Σ中的奇異值均為矩陣 XXT的特徵值的平方根。每一個特徵值都與跟它們相關的方差是成正比的,而且所有特徵值的總和等於所有點到它們的多維空間平均點距離的平方和。PCA提供了一種降低維度的有效辦法,本質上,它利用正交轉換將圍繞平均點的點集中儘可能多的變量投影到第一維中去,因此,降低維度必定是失去訊息最少的方法。PCA具有保持子空間擁有最大方差的最優正交轉換的特性。然而,當與離散餘弦轉換相比時,它需要更大的計算需求代價。非線性降維技術相對於PCA來說則需要更高的計算要求。
PCA對變量的縮放很敏感。如果我們只有兩個變量,而且它們具有相同的樣本方差,並且成正相關,那麼PCA將涉及兩個變量的主成分的旋轉。但是,如果把第一個變量的所有值都乘以100,那麼第一主成分就幾乎和這個變量一樣,另一個變量只提供了很小的貢獻,第二主成分也將和第二個原始變量幾乎一致。這就意味着當不同的變量代表不同的單位(如溫度和質量)時,PCA是一種比較武斷的分析方法。但是在Pearson的題為 "On Lines and Planes of Closest Fit to Systems of Points in Space"的原始文件里,是假設在歐幾里得空間裏不考慮這些。一種使PCA不那麼武斷的方法是使用變量縮放以得到單位方差。
討論
通常,為了確保第一主成分描述的是最大方差的方向,我們會使用平均減法進行主成分分析。如果不執行平均減法,第一主成分有可能或多或少的對應於數據的平均值。另外,為了找到近似數據的最小均方誤差,我們必須選取一個零均值[6]。
假設零經驗均值,數據集 X 的主成分w1可以被定義為:
為了得到第 k個主成分,必須先從X中減去前面的 個主成分:
然後把求得的第k個主成分帶入數據集,得到新的數據集,繼續尋找主成分。
PCA相當於在氣象學中使用的經驗正交函數(EOF),同時也類似於一個線性隱層神經網絡。 隱含層 K 個神經元的權重向量收斂後,將形成一個由前 K 個主成分跨越空間的基礎。但是與PCA不同的是,這種技術並不一定會產生正交向量。
PCA是一種很流行且主要的模式識別技術。然而,它並不能最佳化類別可分離性[7] 。另一種不考慮這一點的方法是線性判別分析。
符號和縮寫表
Symbol符號 | Meaning意義 | Dimensions尺寸 | Indices指數 |
---|---|---|---|
由所有數據向量集組成的數據矩陣,一列代表一個向量 | | ||
數據集中列向量的個數 | 純量 | ||
每個列向量的元素個數 | 純量 | ||
子空間的維數, | 純量 | ||
經驗均值向量 | |||
經驗標準方差向量 | |||
所有的單位向量 | |||
對均值的偏離向量 | | ||
Z-分數,利用均值和標準差計算得到 | | ||
協方差矩陣 | | ||
相關矩陣 | | ||
C的所有特徵向量集 | | ||
主對角線為特徵值的對角矩陣 | | ||
基向量矩陣 | | ||
X 和W矩陣的投影矩陣 | |
主成分分析的屬性和限制
如上所述,主成分分析的結果依賴於變量的縮放。
主成分分析的適用性受到由它的派生物產生的某些假設[8] 的限制。
主成分分析和資訊理論
通過使用降維來保存大部分數據資訊的主成分分析的觀點是不正確的。確實如此,當沒有任何假設資訊的信號模型時,主成分分析在降維的同時並不能保證資訊的不丟失,其中資訊是由香農熵[9]來衡量的。 基於假設得 也就是說,向量 x 是含有資訊的目標信號 s 和噪聲信號 n 之和,從資訊論角度考慮主成分分析在降維上是最優的。
特別地,Linsker證明了如果 s 是高斯分佈,且 n 是 與密度矩陣相應的協方差矩陣的高斯噪聲,
使用統計方法計算PCA
以下是使用統計方法計算PCA的詳細說明。但是請注意,如果利用奇異值分解(使用標準的軟件)效果會更好。
我們的目標是把一個給定的具有 M 維的數據集X 轉換成具有較小維度 L的數據集Y。現在要求的就是矩陣Y,Y是矩陣X Karhunen–Loève轉換。:
組織數據集
假設有一組 M 個變量的觀察數據,我們的目的是減少數據,使得能夠用L 個向量來描述每個觀察值,L < M。進一步假設,該數據被整理成一組具有N個向量的數據集,其中每個向量都代表M 個變量的單一觀察數據。
- 為列向量,其中每個列向量有M 行。
- 將列向量放入M × N的單矩陣X 裏。
計算經驗均值
- 對每一維m = 1, ..., M計算經驗均值
- 將計算得到的均值放入一個 M × 1維的經驗均值向量u中
計算平均偏差
對於在最大限度地減少近似數據的均方誤差的基礎上找到一個主成分來說,均值減去法是該解決方案的不可或缺的組成部分[10] 。因此,我們繼續如下步驟:
- 從數據矩陣X的每一列中減去經驗均值向量 u
- 將平均減去過的數據存儲在M × N矩陣B中
- 其中h是一個長度為N的全為1的行向量:
求協方差矩陣
- 從矩陣B 中找到M × M 的經驗協方差矩陣C
其中 為期望值
是最外層運算符
是共軛轉置運算符。
請注意,如果B完全由實數組成,那麼共軛轉置與正常的轉置一樣。
- 為什麼是N-1,而不是N,Bessel's correction給出了解釋
查找協方差矩陣的特徵值和特徵向量
- 計算矩陣C 的特徵向量
- 其中,D 是C的特徵值對角矩陣,這一步通常會涉及到使用基於計算機的計算特徵值和特徵向量的算法。在很多矩陣代數系統中這些算法都是現成可用的,如R語言,MATLAB,[11][12] Mathematica,[13] SciPy, IDL(交互式數據語言), 或者GNU Octave以及OpenCV。
- 矩陣D為M × M的對角矩陣
- 各個特徵值和特徵向量都是配對的,m個特徵值對應m個特徵向量。
參見
- Correspondence analysis
- Canonical correlation
- CUR matrix approximation (can replace of low-rank SVD approximation)
- Detrended correspondence analysis
- Dynamic mode decomposition
- 特徵臉(Eigenface)
- 多線性主成分分析(Multilinear PCA)
- Geometric data analysis
- Factorial code
- 獨立成分分析
- 核主成分分析
- 矩陣分解
- Nonlinear dimensionality reduction
- Oja's rule
- Point distribution model (PCA applied to morphometry and computer vision)
- Principal component regression
- Singular spectrum analysis
- 奇異值分解
- Sparse PCA
- 轉換編碼
- 最小平方法
- Low-rank approximation
註釋
- ^ 主成分分析(principal components analysis, PCA)——无监督学习. (原始內容存檔於2020-08-19).
- ^ Pearson, K. On Lines and Planes of Closest Fit to Systems of Points in Space (PDF). Philosophical Magazine. 1901, 2 (6): 559–572 [2012-01-24]. (原始內容 (PDF)存檔於2013-10-20).
- ^ Abdi. H., & Williams, L.J. Principal component analysis.. Wiley Interdisciplinary Reviews: Computational Statistics,. 2010, 2: 433–459.
- ^ Shaw P.J.A. (2003) Multivariate statistics for the Environmental Sciences, Hodder-Arnold. ISBN 978-0-340-80763-7. [頁碼請求]
- ^ Jolliffe I.T. Principal Component Analysis (頁面存檔備份,存於互聯網檔案館), Series: Springer Series in Statistics (頁面存檔備份,存於互聯網檔案館), 2nd ed., Springer, NY, 2002, XXIX, 487 p. 28 illus. ISBN 978-0-387-95442-4
- ^ A. A. Miranda, Y. A. Le Borgne, and G. Bontempi. New Routes from Minimal Approximation Error to Principal Components (頁面存檔備份,存於互聯網檔案館), Volume 27, Number 3 / June, 2008, Neural Processing Letters, Springer
- ^ Fukunaga, Keinosuke. Introduction to Statistical Pattern Recognition. Elsevier. 1990. ISBN 0122698517.
- ^ Jonathon Shlens, A Tutorial on Principal Component Analysis. (頁面存檔備份,存於互聯網檔案館)
- ^ Geiger, Bernhard; Kubin, Gernot (Sep 2012), Relative Information Loss in the PCA (頁面存檔備份,存於互聯網檔案館)
- ^ A.A. Miranda, Y.-A. Le Borgne, and G. Bontempi. New Routes from Minimal Approximation Error to Principal Components (頁面存檔備份,存於互聯網檔案館), Volume 27, Number 3 / June, 2008, Neural Processing Letters, Springer
- ^ eig function (頁面存檔備份,存於互聯網檔案館) Matlab documentation
- ^ MATLAB PCA-based Face recognition software. [2012-04-30]. (原始內容存檔於2012-03-09).
- ^ Eigenvalues function (頁面存檔備份,存於互聯網檔案館) Mathematica documentation
參考
- Jolliffe, I. T. Principal Component Analysis. Springer-Verlag. 1986: 487 [2012-01-24]. ISBN 978-0-387-95442-4. doi:10.1007/b98835. (原始內容存檔於2019-10-16).