(十)PCA降維算法

一.前言

主成分分析(Principal components analysis,以下簡稱PCA)是最重要的降維方法之一。在數(shù)據(jù)壓縮消除冗余和數(shù)據(jù)噪音消除等領(lǐng)域都有廣泛的應(yīng)用雀费。它可以通過線性變換將原始數(shù)據(jù)變換為一組各維度線性無關(guān)的表示野宜,以此來提取數(shù)據(jù)的主要線性分量援所。需要注意的是外莲,PCA一般只用于線性數(shù)據(jù)降維不狮,對于非線性數(shù)據(jù)一般采用KPCA。

二. PCA的基本思想

降維就是找出數(shù)據(jù)里最主要的方面在旱,用數(shù)據(jù)里最主要的方面來代替原始數(shù)據(jù)摇零,并且希望損失盡可能的小。首先看幾張圖桶蝎,有一個直觀的認(rèn)識驻仅。
這里面,把橢圓看成是數(shù)據(jù):


如果我們單獨看某一個維度的話登渣,比如看x1這個維度:

可以看到將點投影到x1這個維度上看的話噪服,圖1的數(shù)據(jù)離散性最高,圖3居中胜茧,圖2數(shù)據(jù)離散性是最低的。數(shù)據(jù)離散性越大,代表數(shù)據(jù)在所投影的維度上具有越高的區(qū)分度杨赤,這個區(qū)分度就是信息量句葵。如果數(shù)據(jù)區(qū)分度不高,好多不同的點投影成了一個點廊遍,那么就發(fā)生了數(shù)據(jù)損失嬉愧。如果我們用方差來形容數(shù)據(jù)的離散性的話,就是數(shù)據(jù)方差越大喉前,表示數(shù)據(jù)的區(qū)分度越高没酣,也就是蘊含的信息量是越大的。

基于這個知識卵迂,如果我們想對數(shù)據(jù)進(jìn)行降維的話裕便,比如圖1的兩個維度的數(shù)據(jù)降成一維,我們可以選擇保留X1這個維度的數(shù)據(jù)狭握,因為在這個維度上蘊含的信息量更多闪金。同理,圖2就可以保留x2這個維度的數(shù)據(jù)论颅。但是哎垦,問題來了,圖3應(yīng)該保留哪個維度的數(shù)據(jù)呢恃疯?答案是保留哪個維度都不好漏设,都會丟失較大的信息量。但是今妄,如果我們把圖3的坐標(biāo)軸旋轉(zhuǎn)一下



比較容易看出郑口,圖3在新的坐標(biāo)軸下就能進(jìn)行降維了鸳碧。
所以,第一犬性,變換正確的坐標(biāo)軸(基)瞻离;第二,保留方差最大的幾個軸作為主成分乒裆,這樣的做法就是PCA的核心思想套利。

三. PCA的深入理解

1. 如何變換到新的坐標(biāo)軸

從前文可以看出,理想的坐標(biāo)軸是要求數(shù)據(jù)投在新坐標(biāo)軸后鹤耍,盡可能的分散肉迫,也就是數(shù)據(jù)的方差最大。然后每次選擇方差最大的軸作為主成分稿黄。
將前文2維降1維的例子擴展到更高維度喊衫,還有一個問題需要解決,考慮三維降到二維問題杆怕。與之前相同族购,首先我們希望找到一個方向使得投影后方差最大,這樣就完成了第一個方向的選擇财著,繼而我們選擇第二個投影方向联四。如果我們還是單純只選擇方差最大的方向,很明顯撑教,這個方向與第一個方向應(yīng)該是“幾乎重合在一起”朝墩,顯然這樣的維度是沒有用的,因為發(fā)生了大量的信息重復(fù)伟姐,起不到降維的作用收苏,因此,應(yīng)該有其他約束條件——就是正交愤兵。PCA要求軸與軸之間是正交的鹿霸,也就是不同維度的信息相關(guān)性為0。

  • 協(xié)方差

在表示相關(guān)性中秆乳,相關(guān)系數(shù)與協(xié)方差是等價的懦鼠,這里為了方便計算,使用協(xié)方差屹堰。下面是協(xié)方差公式肛冶,當(dāng)協(xié)方差為0時,表示兩個特征a,b線性不相關(guān)扯键。


可以發(fā)現(xiàn)睦袖,當(dāng)a=b時,協(xié)方差公式就變成了方差公式荣刑,方差是特殊的協(xié)方差馅笙。如果運氣更好伦乔,特征a與b的平均數(shù)都為0,那么公式會進(jìn)一步簡化董习,得到:


所以說烈和,為了計算方便,PCA降維前皿淋,一般都要求將所有特征屬性中心化斥杜,即平均數(shù)為0。

  • 協(xié)方差矩陣

因為PCA要求沥匈,同一軸內(nèi)方差最大,不同軸協(xié)方差為0忘渔,如何把它們放在一塊呢高帖?這里就引入了協(xié)方差矩陣的概念:
假設(shè)有m個樣本,每個樣本特征維度是2畦粮,每個特征都經(jīng)過中心化處理:


協(xié)方差矩陣就是:

這里需要注意散址,矩陣X的每個列向量都是一個樣本,X乘以X的轉(zhuǎn)置就相當(dāng)于特征之間的點積運算(為了計算特征間的協(xié)方差)宣赔,得到的協(xié)方差矩陣是一個與特征維度相同的方陣预麸。

我們發(fā)現(xiàn)協(xié)方差矩陣的對角線是方差,而且是對稱矩陣儒将。方差和協(xié)方差都放在了一個矩陣?yán)锩胬艋觯恍鑼@個矩陣優(yōu)化,使它除了對角線的其余元素都為0钩蚊,就可以了贡翘,美滋滋。

  • 矩陣變換

我們知道矩陣乘法砰逻,本質(zhì)上就是一種線性變換的過程鸣驱。而正交基矩陣的乘法,則是坐標(biāo)系變換的過程蝠咆。設(shè)原空間的數(shù)據(jù)為X踊东,協(xié)方差矩陣為C,經(jīng)過正交基矩陣P刚操,得到了新坐標(biāo)系下的數(shù)據(jù)Y闸翅,即Y=PX。那么新坐標(biāo)系下的協(xié)方差矩陣D是怎樣的呢赡茸?



我們發(fā)現(xiàn)缎脾,新舊空間的協(xié)方差矩陣是有關(guān)系的,而且都和變換矩陣P有關(guān)系占卧。問題就轉(zhuǎn)化成了遗菠,能不能找到一個矩陣P联喘,使得新空間下的協(xié)方差矩陣的非對角線元素都為0.

  • 矩陣對角化

首先,原始數(shù)據(jù)矩陣X的協(xié)方差矩陣C是一個實對稱矩陣辙纬,它有特殊的數(shù)學(xué)性質(zhì):

  1. 實對稱矩陣不同特征值對應(yīng)的特征向量必然正交豁遭。
  2. 設(shè)特征值λ 重數(shù)為r,則必然存在r個線性無關(guān)的特征向量對應(yīng)于λ贺拣,因此可以將這r個特征向量單位正交化蓖谢。
  3. 一個n階的實對稱矩陣一定可以找到n個單位正交特征向量,使其變成對角矩陣譬涡。

也就是說闪幽,P就是是協(xié)方差矩陣的特征向量單位化后按行排列出的矩陣,其中每一行都是C的一個特征向量涡匀。如果設(shè)P按照中特征值的從大到小盯腌,將特征向量從上到下排列,則用P的前K行組成的矩陣乘以原始數(shù)據(jù)矩陣X陨瘩,就得到了我們需要的降維后的數(shù)據(jù)矩陣Y腕够。
其實,經(jīng)過數(shù)學(xué)上的推導(dǎo)的舌劳,我們就可以知道帚湘,特征值對應(yīng)的特征向量就是理想中想取得正確的坐標(biāo)軸,而特征值就等于數(shù)據(jù)在旋轉(zhuǎn)之后的坐標(biāo)上對應(yīng)維度上的方差甚淡。

由于協(xié)方差矩陣的維度和特征相同大诸,所以在進(jìn)行特征值分解時,得到的特征值數(shù)目不會超過特征的數(shù)目材诽。

四. 從另一個角度理解PCA(參考)

在學(xué)習(xí)線性代數(shù)時底挫,我們都會學(xué)矩陣的特征值分解,我們知道一個方陣A經(jīng)過特征值分解后就得到特征向量特征值了脸侥。那么建邓,這個所謂的特征值和特征向量到底是什么東西呢?
很多人都會說是那個經(jīng)典的式子:


這個式子是如此的簡單粗暴睁枕,以致于從這個公式來看官边,給向量x乘上一個矩陣A,只是相當(dāng)于給這個向量乘上了一個系數(shù)λ外遇。偌大一個矩陣A對向量x的作用竟然本質(zhì)上不過只是和一個小小的數(shù)字λ相同而已W⒉尽!跳仿!
所以這個矩陣分解方法到底具有什么樣的意義诡渴?

首先給出概念上的一種解釋。所謂的特征值和特征向量菲语,最重要的是理解“特征”這兩個字妄辩,特征向量翻譯為eigen vector, eigen這個單詞來自德語惑灵,本義是在“本身固有的,本質(zhì)的”眼耀。純數(shù)學(xué)的定義下英支,并不能很明白地理解到底為什么叫做特征值和特征向量。但是舉一個應(yīng)用例子哮伟,可能就容易理解多了干花。

在圖像處理中,有一種方法就是特征值分解楞黄。我們都知道圖像其實就是一個像素值組成的矩陣池凄,假設(shè)有一個100x100的圖像,對這個圖像矩陣做特征值分解鬼廓,其實是在提取這個圖像中的特征修赞,這些提取出來的特征是一個個的向量,即對應(yīng)著特征向量桑阶。而這些特征在圖像中到底有多重要,這個重要性則通過特征值來表示勾邦。比如這個100x100的圖像矩陣A分解之后蚣录,會得到一個100x100的特征向量組成的矩陣Q,以及一個100x100的只有對角線上的元素不為0的矩陣E眷篇,這個矩陣E對角線上的元素就是特征值萎河,而且還是按照從大到小排列的(取模,對于單個數(shù)來說蕉饼,其實就是取絕對值)虐杯,也就是說這個圖像A提取出來了100個特征,這100個特征的重要性由100個數(shù)字來表示昧港,這100個數(shù)字存放在對角矩陣E中擎椰。在實際中我們發(fā)現(xiàn),提取出來的這100個特征從他們的特征值大小來看创肥,大部分只有前20(這個20不一定达舒,有的是10,有的是30或者更多)個特征對應(yīng)的特征值很大叹侄,后面的就都是接近0了巩搏,也就是說后面的那些特征對圖像的貢獻(xiàn)幾乎可以忽略不計。

我們知道趾代,圖像矩陣A特征值分解后可以得到矩陣P和矩陣E(特征值對角矩陣):


所以贯底,根據(jù)特征值與特征向量,也能還原回圖像A撒强。既然已經(jīng)知道了矩陣E中只有前20個特征值比較重要禽捆,那么我們不妨試試把E中除了前20個后面的都置為0笙什,即只取圖像的前20個主要特征來恢復(fù)圖像,剩下的全部舍棄睦擂,看看此時會發(fā)生什么:
原圖


我們可以看到得湘,在只取前20個特征值和特征向量對圖像進(jìn)行恢復(fù)的時候,基本上已經(jīng)可以看到圖像的大體輪廓了顿仇,而取到前50的時候淘正,幾乎已經(jīng)和原圖像無異了。明白了吧臼闻,這就是所謂的矩陣的特征向量和特征值的作用鸿吆。

所以歸根結(jié)底,特征向量其實反應(yīng)的是矩陣A本身固有的一些特征述呐,本來一個矩陣就是一個線性變換惩淳,當(dāng)把這個矩陣作用于一個向量的時候,通常情況絕大部分向量都會被這個矩陣A變換得“面目全非”乓搬,但是偏偏剛好存在這么一些向量思犁,被矩陣A變換之后居然還能保持原來的樣子,于是這些向量就可以作為矩陣的核心代表了进肯。于是我們可以說:一個變換(即一個矩陣)可以由其特征值和特征向量完全表述激蹲,這是因為從數(shù)學(xué)上看,這個矩陣所有的特征向量組成了這個向量空間的一組基底江掩。而矩陣作為變換的本質(zhì)其實不就把一個基底下的東西變換到另一個基底表示的空間中么学辱?

五. 總結(jié)一下PCA算法的計算過程

  1. 去除平均值,進(jìn)行中心化环形。
  2. 計算協(xié)方差矩陣
  3. 計算協(xié)方差矩陣的特征值和特征向量
  4. 將特征相量按對應(yīng)特征值大小從上到下按行排列成矩陣策泣,取前k行組成矩陣P
  5. Y=PX 得到降維后的數(shù)據(jù)Y

參考:
https://blog.csdn.net/hjq376247328/article/details/80640544
https://blog.csdn.net/hustqb/article/details/78394058
https://blog.csdn.net/woainishifu/article/details/76418176

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市抬吟,隨后出現(xiàn)的幾起案子萨咕,更是在濱河造成了極大的恐慌,老刑警劉巖火本,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件任洞,死亡現(xiàn)場離奇詭異,居然都是意外死亡发侵,警方通過查閱死者的電腦和手機交掏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刃鳄,“玉大人盅弛,你說我怎么就攤上這事。” “怎么了挪鹏?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵见秽,是天一觀的道長。 經(jīng)常有香客問我讨盒,道長解取,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任返顺,我火速辦了婚禮禀苦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘遂鹊。我一直安慰自己振乏,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布秉扑。 她就那樣靜靜地躺著慧邮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舟陆。 梳的紋絲不亂的頭發(fā)上误澳,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天,我揣著相機與錄音秦躯,去河邊找鬼脓匿。 笑死,一個胖子當(dāng)著我的面吹牛宦赠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播米母,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼勾扭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了铁瞒?” 一聲冷哼從身側(cè)響起妙色,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎慧耍,沒想到半個月后身辨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡芍碧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年煌珊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泌豆。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡定庵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蔬浙,我是刑警寧澤猪落,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站畴博,受9級特大地震影響笨忌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜俱病,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一官疲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧庶艾,春花似錦袁余、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至煤裙,卻和暖如春掩完,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背硼砰。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工且蓬, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人题翰。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓恶阴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親豹障。 傳聞我的和親對象是個殘疾皇子冯事,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 今天讀情緒安定愉快!鼓勵幼兒學(xué)會合理表達(dá)情緒血公,以不傷害自己和別人的方式宣泄不良情緒昵仅!
    LSHDJS閱讀 145評論 0 0
  • 已進(jìn)入冬季,紅葉掉落累魔,卻有絲線與枝干相連摔笤,隨風(fēng)飄動,尤如不落的紅葉垦写,是對秋的依戀還是不舍曾經(jīng)的自我吕世。
    洛陽老晉閱讀 438評論 2 1