1、PCA的基本想法
主成分分析(PCA)是常用的無監(jiān)督學習方法模狭,這一方法利用正交變換把由線性相關(guān)的變量表示的觀測數(shù)據(jù)轉(zhuǎn)換為少數(shù)幾個由線性無關(guān)變量表示的數(shù)據(jù)颈抚,線性無關(guān)的變量稱為主成分。
主成分分析中嚼鹉,首先對給定數(shù)據(jù)規(guī)范化贩汉,使得數(shù)據(jù)每一變量的平均值為0驱富,方差為1。之后對數(shù)據(jù)進行正交變換匹舞。新變量是可能的正交變換中變量的方差的和(信息保存)最大的褐鸥。在下圖的例子中,顯然在左圖中和是線性相關(guān)的赐稽,當知道其中一個變量的取值時叫榕,對另一個變量的預(yù)測不是完全隨機的,反之亦然姊舵。在旋轉(zhuǎn)后的新坐標系里晰绎,數(shù)據(jù)由變量和表示。主成分分析選擇方差最大的方向(第一主成分)作為新坐標系的第一坐標軸蠢莺,即軸寒匙,之后選擇與第一坐標軸正交且方差次之的方向(第二主成分)作為新坐標系第二坐標軸。在新坐標軸中躏将,與線性無關(guān)锄弱,當知道其中一個變量的取值時,對另一個變量的預(yù)測是完全隨機的祸憋,反之亦然会宪。
關(guān)于PCA的解釋除了投影到一個超平面使得投影點方差最大以外,還有一種等價的解釋蚯窥,即所有樣本點到超平面的距離的平方和最小掸鹅。這一點從下圖中可以直觀的看出來。
方差最大指的是(注意標準化后均值為0):
距離平方和最小指的是:
因為到原點距離固定,因此以上兩個優(yōu)化目標完全等價荷鼠。
2句携、主成分的定義和性質(zhì)
假設(shè)是維隨機變量,其均值向量為:
協(xié)方差矩陣是:
考慮有維隨機變量到維隨機變量的線性變換:
其中
由隨機變量性質(zhì)有:
總體主成分定義如下:
給定所示的線性變換允乐,如果它滿足:
(1)(即線性變換是正交變換)
(2)(即變換后的各變量互相正交)
(3)變量是的所有線性變換中方差最大的矮嫉,是與不相關(guān)的的所有線性變換中方差最大的;一般地牍疏,是與都不相關(guān)的的所有所有線性變換中方差最大的蠢笋。
此時分別稱為的第一主成分、第二主成分……第m主成分鳞陨。
總體主成分有何性質(zhì)呢昨寞?
定理1 設(shè)是維隨機變量,是的協(xié)方差陣,的特征值分別是编矾,特征值對應(yīng)的單位特征向量分別為熟史,則的第主成分為:
的第主成分的方差為:
證明:
求第一主成分就是求解約束最優(yōu)化問題:
定義拉格朗日系數(shù):
將拉格朗日系數(shù)對求導(dǎo)令其為0:
因此是的特征值馁害,是對應(yīng)的單位特征向量窄俏,于是目標函數(shù)為:
假設(shè)是的最大特征值對應(yīng)的單位特征向量。顯然與是最優(yōu)化問題的解碘菜。因此構(gòu)成第一主成分凹蜈。
接著求第二主成分,第二主成分的是在且與不相關(guān)的條件下使得方差達到最大的忍啸。
求第二主成分需要求解約束最優(yōu)化問題:
定義拉格朗日函數(shù):
對求導(dǎo)并令其為0:
左乘得到:
因為仰坦,且,故:
從而:
這和第一主成分的求解完全類似计雌,設(shè)為的第二大特征值對應(yīng)的特征向量悄晃,則顯然與是上式的解遇骑。于是構(gòu)成的第二主成分牡属。
一般地查近,的第k主成分為击碗,且届吁,這里是的第大特征值且是對應(yīng)的單位特征向量育苟。
由此可以得出總體主成分的幾個性質(zhì):
(1)總體主成分的協(xié)方差陣是對角陣:
(2)總體主成分的方差之和等于隨機變量的方差之和:
這里是隨機變量的方差慢逾,即協(xié)方差陣的對角元素歧强。
(3)與的相關(guān)系數(shù)稱為因子負荷量反番,它表示兩者的相關(guān)關(guān)系:
推導(dǎo)如下:
其中為基本單位向量沙热,第個分量為1,其它分量為0罢缸,由協(xié)方差性質(zhì):
代入上式即得結(jié)論篙贸。
(4)與個變量的因子負荷量滿足:
(5)個主成分與的因子負荷量滿足:
3、相關(guān)矩陣的特征值分解算法
之前我們考慮的主成分分析都是在總體上進行的枫疆,應(yīng)用中我們需要在觀測數(shù)據(jù)上進行主成分分析爵川。
假設(shè)對維隨機變量進行次獨立觀測得到觀測樣本,觀測數(shù)據(jù)用表示:
相關(guān)矩陣的特征值分解算法流程如下:
(1)對觀測數(shù)據(jù)進行規(guī)范化處理养铸。
(2)依據(jù)規(guī)范化矩陣雁芙,計算樣本相關(guān)矩陣:
(3)求的個特征值和對應(yīng)的個單位特征向量。
(5)計算個樣本的個主成分值:
4钞螟、數(shù)據(jù)矩陣的奇異值分解算法
給定樣本矩陣兔甘,并假設(shè)有個主成分。
定義一個新的矩陣:
的每一列均值為0鳞滨,不難得知:
即等于的協(xié)方差陣:
所以問題轉(zhuǎn)化為求矩陣{X{'}}TX^{'}的特征值和特征向量洞焙。
假設(shè)的截斷奇異值分解為,那么的列向量就是的單位特征向量。因此的列向量就是的主成分澡匪。
具體算法如下:
(1)構(gòu)造新的矩陣:
(2)對矩陣進行截斷奇異值分解:
(3)求樣本主成分矩陣: