原文: https://zhuanlan.zhihu.com/p/26951643
在多元統計分析中,主成分分析(Principal components analysis,PCA)是一種分析、簡化數據集的技術。主成分分析常常用於減小數據集的維數,同時保持數據集中的對方差貢獻最大的特徵。這是經過保留低階主成分,忽略高階主成分作到的。這樣低階成分每每可以保留住數據的最重要方面。
PCA在機器學習中常常被用到,是數據預處理的重要步驟。它主要基於如下考慮:html
以下圖,平面上有不少二維空間的特徵點,若是想對這些特徵點作特徵降維(變爲一維),應該怎麼作呢?你們應該都知道須要進行投影,但還要考慮在哪一個方向上進行投影,例如圖中須要投影到長箭頭方向便可,但考慮爲何不在短箭頭上投影?算法
PCA本質上是一個有損的特徵壓縮過程,可是咱們指望損失的精度儘量地少,也就是但願壓縮的過程當中保留最多的原始信息。要達到這種目的,咱們但願降維(投影)後的數據點儘量地分散。如圖,相比於長箭頭,若是在短箭頭上進行投影,那麼重疊的點會更多,也就意味着信息丟失的更多,於是選擇長箭頭方向。機器學習
基於這種思想,咱們但願投影后的數據點儘量地分散。而這種分散程度在數學上能夠利用方差來表示。設降維後的特徵爲,也就是但願儘量地大(爲特徵中的值,爲均值),而因爲在PCA降維前,通常已經作了特徵零均值化處理,爲了方便,記。函數
一樣,爲了減小特徵的冗餘信息,咱們但願降維後的各特徵之間互不相關。而不相關性能夠用協方差來衡量。設降維後的兩個特徵爲、,則但願爲0。學習
現假設咱們的數據爲優化
構造出協方差矩陣,並乘以係數,則編碼
能夠看出的對角線元素就是各特徵的方差,其餘各位置的元素就是各特徵之間的協方差。於是只須要降維後的數據協方差矩陣知足對角矩陣的條件便可。component
設爲原始數據作完PCA降維後的數據,知足(矩陣乘法至關於映射,若爲的列向量爲基向量,那麼就至關於映射到新的座標系),,分別爲對應的協方差矩陣,那麼orm
於是,咱們只須要計算出,使知足對角矩陣的條件便可。而爲實對稱矩陣,咱們只須要對它作矩陣對角化便可。htm
PCA的原理基本就是這樣,仍是挺簡單的。
PCA的構建:PCA須要構建一個編碼器,由輸入獲得一個最優編碼(若,則作了降維編碼);同時有一個解碼器,解碼後的輸出儘量地與相近。
PCA由咱們所選擇的解碼器決定,在數學上,咱們使用矩陣將映射回,即,其中定義解碼的矩陣。
爲了限制PCA的惟一性,咱們限制中全部列向量彼此正交且均有單位範數(不然、同比例增長、減小會產生無數個解)。
在數學上,爲了知足PCA構建中的條件,咱們利用範數來衡量與的相近程度。即,也就是
該最小化函數能夠簡化爲
於是,優化目標變爲,再帶入,
再求偏導
因而咱們能夠獲得編碼函數,PCA的重構操做也就能夠定義爲。問題接着就轉化成如何求編碼矩陣。因爲PCA算法是在整個數據矩陣上進行編碼,於是也要用對全部數據進行解碼,因此須要最小化全部維上的偏差矩陣的Frobenius範數:
咱們考慮的狀況,則是一個單一貫量,則上式能夠轉化爲
而爲標量,轉置與自身相等,上式一般寫做
再將每個輸入點疊加起來,咱們獲得
Frobenius範數簡化成(考慮約束條件)
最後的優化目標能夠利用以及拉格朗日乘數法來求解,可得最優的是的最大特徵值對應的特徵向量。
上面的推導特定於的狀況,僅有一個主成分。通常來講,矩陣由的前個最大的特徵值對應的特徵向量組成(利用概括法,將表示爲的函數便可,須要兩個輔助矩陣:單位對角矩陣以及,省去證實過程)。