PCA數學推導及原理(轉)

原文: https://zhuanlan.zhihu.com/p/26951643
在多元統計分析中,主成分分析(Principal components analysis,PCA)是一種分析、簡化數據集的技術。主成分分析常常用於減小數據集的維數,同時保持數據集中的對方差貢獻最大的特徵。這是經過保留低階主成分,忽略高階主成分作到的。這樣低階成分每每可以保留住數據的最重要方面。

PCA在機器學習中常常被用到,是數據預處理的重要步驟。它主要基於如下考慮:html

  • 高維特徵中不少特徵之間存在相關性,含有冗餘信息
  • 相比於低維數據,高維數據計算更復雜

PCA的數學原理

以下圖,平面上有不少二維空間的特徵點,若是想對這些特徵點作特徵降維(變爲一維),應該怎麼作呢?你們應該都知道須要進行投影,但還要考慮在哪一個方向上進行投影,例如圖中須要投影到長箭頭方向便可,但考慮爲何不在短箭頭上投影?算法

PCA本質上是一個有損的特徵壓縮過程,可是咱們指望損失的精度儘量地少,也就是但願壓縮的過程當中保留最多的原始信息。要達到這種目的,咱們但願降維(投影)後的數據點儘量地分散。如圖,相比於長箭頭,若是在短箭頭上進行投影,那麼重疊的點會更多,也就意味着信息丟失的更多,於是選擇長箭頭方向。機器學習

 

基於這種思想,咱們但願投影后的數據點儘量地分散。而這種分散程度在數學上能夠利用方差來表示。設降維後的特徵爲[公式],也就是但願[公式]儘量地大([公式]爲特徵[公式]中的值,[公式]爲均值),而因爲在PCA降維前,通常已經作了特徵零均值化處理,爲了方便,記[公式]函數

一樣,爲了減小特徵的冗餘信息,咱們但願降維後的各特徵之間互不相關。而不相關性能夠用協方差來衡量。設降維後的兩個特徵爲[公式][公式],則但願[公式]爲0。學習

現假設咱們的數據爲優化

[公式]

構造出協方差矩陣,並乘以係數[公式],則編碼

[公式]

能夠看出[公式]的對角線元素就是各特徵的方差,其餘各位置的元素就是各特徵之間的協方差。於是只須要降維後的數據協方差矩陣知足對角矩陣的條件便可。component

[公式]爲原始數據[公式]作完PCA降維後的數據,知足[公式](矩陣乘法至關於映射,若[公式]爲的列向量爲基向量,那麼就至關於映射到新的座標系),[公式][公式]分別爲對應的協方差矩陣,那麼orm

[公式]

於是,咱們只須要計算出[公式],使[公式]知足對角矩陣的條件便可。而[公式]爲實對稱矩陣,咱們只須要對它作矩陣對角化便可。htm

PCA的原理基本就是這樣,仍是挺簡單的。

 

PCA的推導證實

PCA的構建:PCA須要構建一個編碼器[公式],由輸入[公式]獲得一個最優編碼[公式](若[公式],則作了降維編碼);同時有一個解碼器[公式],解碼後的輸出[公式]儘量地與[公式]相近。

PCA由咱們所選擇的解碼器決定,在數學上,咱們使用矩陣將[公式]映射回[公式],即[公式],其中[公式]定義解碼的矩陣。

爲了限制PCA的惟一性,咱們限制[公式]中全部列向量彼此正交且均有單位範數(不然[公式][公式]同比例增長、減小會產生無數個解)。

在數學上,爲了知足PCA構建中的條件,咱們利用[公式]範數來衡量[公式][公式]的相近程度。即[公式],也就是[公式]

該最小化函數能夠簡化爲

[公式]

於是,優化目標變爲[公式],再帶入[公式]

[公式]

再求偏導

[公式]

因而咱們能夠獲得編碼函數[公式],PCA的重構操做也就能夠定義爲[公式]。問題接着就轉化成如何求編碼矩陣[公式]。因爲PCA算法是在整個數據矩陣上進行編碼,於是也要用[公式]對全部數據進行解碼,因此須要最小化全部維上的偏差矩陣的Frobenius範數:

[公式]

咱們考慮[公式]的狀況,則[公式]是一個單一貫量[公式],則上式能夠轉化爲

[公式]

[公式]爲標量,轉置與自身相等,上式一般寫做

[公式]

再將每個輸入點疊加起來,咱們獲得

[公式]

Frobenius範數簡化成(考慮約束條件[公式]

[公式]

最後的優化目標能夠利用[公式]以及拉格朗日乘數法來求解,可得最優的[公式][公式]的最大特徵值對應的特徵向量。

上面的推導特定於[公式]的狀況,僅有一個主成分。通常來講,矩陣[公式][公式]的前[公式]個最大的特徵值對應的特徵向量組成(利用概括法,將[公式]表示爲[公式]的函數便可,須要兩個輔助矩陣:單位對角矩陣[公式]以及[公式],省去證實過程)。

參考

相關文章
相關標籤/搜索