主成分分析(PCA)原理及推導(dǎo)

原文:http://blog.csdn.net/zhongkejingwang/article/details/42264479

什么是PCA习蓬?

在數(shù)據(jù)挖掘或者圖像處理等領(lǐng)域經(jīng)常會(huì)用到主成分分析榜苫,這樣做的好處是使要分析的數(shù)據(jù)的維度降低了劫狠,但是數(shù)據(jù)的主要信息還能保留下來栅干,并且新锈,這些變換后的維兩兩不相關(guān)碍讨!至于為什么治力?那就接著往下看。在本文中勃黍,將會(huì)很詳細(xì)的解答這些問題:PCA宵统、SVD、特征值覆获、奇異值马澈、特征向量這些關(guān)鍵詞是怎么聯(lián)系到一起的?又是如何在一個(gè)矩陣上體現(xiàn)出來弄息?它們?nèi)绾螞Q定著一個(gè)矩陣的性質(zhì)痊班?能不能用一種直觀又容易理解的方式描述出來?

數(shù)據(jù)降維

為了說明什么是數(shù)據(jù)的主成分摹量,先從數(shù)據(jù)降維說起涤伐。數(shù)據(jù)降維是怎么回事兒馒胆?假設(shè)三維空間中有一系列點(diǎn),這些點(diǎn)分布在一個(gè)過原點(diǎn)的斜面上凝果,如果你用自然坐標(biāo)系x,y,z這三個(gè)軸來表示這組數(shù)據(jù)的話祝迂,需要使用三個(gè)維度,而事實(shí)上豆村,這些點(diǎn)的分布僅僅是在一個(gè)二維的平面上液兽,那么,問題出在哪里掌动?如果你再仔細(xì)想想四啰,能不能把x,y,z坐標(biāo)系旋轉(zhuǎn)一下,使數(shù)據(jù)所在平面與x,y平面重合粗恢?這就對(duì)了柑晒!如果把旋轉(zhuǎn)后的坐標(biāo)系記為x',y',z',那么這組數(shù)據(jù)的表示只用x'和y'兩個(gè)維度表示即可眷射!當(dāng)然了匙赞,如果想恢復(fù)原來的表示方式,那就得把這兩個(gè)坐標(biāo)之間的變換矩陣存下來妖碉。這樣就能把數(shù)據(jù)維度降下來了涌庭!但是,我們要看到這個(gè)過程的本質(zhì)欧宜,如果把這些數(shù)據(jù)按行或者按列排成一個(gè)矩陣坐榆,那么這個(gè)矩陣的秩就是2!這些數(shù)據(jù)之間是有相關(guān)性的冗茸,這些數(shù)據(jù)構(gòu)成的過原點(diǎn)的向量的最大線性無關(guān)組包含2個(gè)向量席镀,這就是為什么一開始就假設(shè)平面過原點(diǎn)的原因!那么如果平面不過原點(diǎn)呢夏漱?這就是數(shù)據(jù)中心化的緣故豪诲!將坐標(biāo)原點(diǎn)平移到數(shù)據(jù)中心,這樣原本不相關(guān)的數(shù)據(jù)在這個(gè)新坐標(biāo)系中就有相關(guān)性了挂绰!有趣的是屎篱,三點(diǎn)一定共面,也就是說三維空間中任意三點(diǎn)中心化后都是線性相關(guān)的扮授,一般來講n維空間中的n個(gè)點(diǎn)一定能在一個(gè)n-1維子空間中分析芳室!所以,不要說數(shù)據(jù)不相關(guān)刹勃,那是因?yàn)樽鴺?biāo)沒選對(duì)堪侯!

上面這個(gè)例子里把數(shù)據(jù)降維后并沒有丟棄任何東西,因?yàn)檫@些數(shù)據(jù)在平面以外的第三個(gè)維度的分量都為0±笕剩現(xiàn)在伍宦,我假設(shè)這些數(shù)據(jù)在z'軸有一個(gè)很小的抖動(dòng)芽死,那么我們?nèi)匀挥蒙鲜龅亩S表示這些數(shù)據(jù),理由是我認(rèn)為這兩個(gè)軸的信息是數(shù)據(jù)的主成分次洼,而這些信息對(duì)于我們的分析已經(jīng)足夠了关贵,z'軸上的抖動(dòng)很有可能是噪聲,也就是說本來這組數(shù)據(jù)是有相關(guān)性的卖毁,噪聲的引入揖曾,導(dǎo)致了數(shù)據(jù)不完全相關(guān),但是亥啦,這些數(shù)據(jù)在z'軸上的分布與原點(diǎn)構(gòu)成的夾角非常小炭剪,也就是說在z'軸上有很大的相關(guān)性,綜合這些考慮翔脱,就可以認(rèn)為數(shù)據(jù)在x',y'軸上的投影構(gòu)成了數(shù)據(jù)的主成分奴拦!

現(xiàn)在,關(guān)于什么是數(shù)據(jù)的主成分已經(jīng)很好的回答了届吁。下面來看一個(gè)更具體的例子错妖。

下面是一些學(xué)生的成績(jī):

首先,假設(shè)這些科目成績(jī)不相關(guān)疚沐,也就是說某一科考多少份與其他科沒有關(guān)系暂氯。那么一眼就能看出來,數(shù)學(xué)亮蛔、物理株旷、化學(xué)這三門成績(jī)構(gòu)成了這組數(shù)據(jù)的主成分(很顯然,數(shù)學(xué)作為第一主成分尔邓,因?yàn)閿?shù)學(xué)成績(jī)拉的最開)。為什么一眼能看出來锉矢?因?yàn)樽鴺?biāo)軸選對(duì)了梯嗽!下面再看一組數(shù)據(jù),還能不能一眼看出來:

是不是有點(diǎn)凌亂了沽损?你還能看出來數(shù)據(jù)的主成分嗎灯节?顯然不能,因?yàn)樵谶@坐標(biāo)系下數(shù)據(jù)分布很散亂绵估。所以說炎疆,看到事物的表象而看不到其本質(zhì),是因?yàn)榭吹慕嵌扔袉栴}国裳!如果把這些數(shù)據(jù)在空間中畫出來形入,也許你一眼就能看出來。但是缝左,對(duì)于高維數(shù)據(jù)亿遂,能想象其分布嗎浓若?就算能描述分布,如何精確地找到這些主成分的軸蛇数?如何衡量你提取的主成分到底占了整個(gè)數(shù)據(jù)的多少信息挪钓?要回答這些問題,需要將上面的分析上升到理論層面耳舅。接下來就是PCA的理論分析碌上。

PCA推導(dǎo)

以下面這幅圖開始我們的推導(dǎo):

上面是二維空間中的一組數(shù)據(jù),很明顯浦徊,數(shù)據(jù)的分布讓我們很容易就能看出來主成分的軸(簡(jiǎn)稱主軸)的大致方向馏予。下面的問題就是如何通過數(shù)學(xué)計(jì)算找出主軸的方向。來看這張圖:

現(xiàn)在要做的事情就是尋找u1的方向辑畦,對(duì)于這點(diǎn)吗蚌,我想好多人都有經(jīng)驗(yàn)摩梧,這不就是以前用最小二乘法擬合數(shù)據(jù)時(shí)做的事情嗎杰刽!對(duì)焕襟,最小二乘法求出來的直線(二維)的方向就是u1的方向它褪!那u2的方向呢居触?因?yàn)檫@里是二維情況弊予,所以u(píng)2方向就是跟u1垂直的方向竭翠,對(duì)于高維數(shù)據(jù)传货,怎么知道u2的方向窥淆?經(jīng)過下面的理論推導(dǎo)词裤,各個(gè)主軸都能確定下來。

給定一組數(shù)據(jù):(如無說明蚤假,以下推導(dǎo)中出現(xiàn)的向量都是默認(rèn)是列向量)

將其中心化后表示為:

中心化后的數(shù)據(jù)在第一主軸u1方向上分布散的最開,也就是說在u1方向上的投影的絕對(duì)值之和最大(也可以說方差最大)侧但,計(jì)算投影的方法就是將x與u1做內(nèi)積绢彤,由于只需要求u1的方向饶氏,所以設(shè)u1是單位向量讥耗。

也就是最大化下式:

也即最大化:

解釋:平方可以把絕對(duì)值符號(hào)拿掉,光滑曲線處理起來方便疹启。

兩個(gè)向量做內(nèi)積可以轉(zhuǎn)化成矩陣乘法:

所以目標(biāo)函數(shù)可以表示為:

括號(hào)里面就是矩陣乘法表示內(nèi)積古程,轉(zhuǎn)置以后的行向量乘以列向量得到一個(gè)數(shù)。因?yàn)橐粋€(gè)數(shù)的轉(zhuǎn)置還是其本身喊崖,所以又可以將目標(biāo)函數(shù)化為:

這樣就可以把括號(hào)去掉挣磨!去掉以后變成:

由于u1和i無關(guān),可以把它拿到求和符外面:

注意荤懂,其實(shí)括號(hào)里面是一個(gè)矩陣乘以自身的轉(zhuǎn)置茁裙,這個(gè)矩陣形式如下:

X矩陣的第i列就是xi,于是有:

所以目標(biāo)函數(shù)最后化為:

上式到底有沒有最大值呢节仿?如果沒有前面的1/n晤锥,那就是就是一個(gè)標(biāo)準(zhǔn)的二次型!并且XX'(為了方便,用'表示轉(zhuǎn)置)得到的矩陣是一個(gè)半正定的對(duì)稱陣矾瘾!為什么女轿?首先XX'是對(duì)稱陣,因?yàn)?XX')'=XX'壕翩,下面證明它是半正定蛉迹,什么是半正定?就是所有特征值大于等于0戈泼。

假設(shè)XX'的某一個(gè)特征值為婿禽,對(duì)應(yīng)的特征向量為,則有:

證明完畢大猛!對(duì)于半正定陣的二次型扭倾,存在最大值!現(xiàn)在問題就是如何求目標(biāo)函數(shù)的最大值挽绩?以及取最大值時(shí)u1的方向膛壹?下面介紹兩種方法。

方法一 ?拉格朗日乘數(shù)法

目標(biāo)函數(shù)和約束條件構(gòu)成了一個(gè)最大化問題:

構(gòu)造拉格朗日函數(shù):

對(duì)u1求導(dǎo)

顯然唉堪,u1即為XX'特征值對(duì)應(yīng)的特征向量模聋!XX'的所有特征值和特征向量都滿足上式,那么將上式代入目標(biāo)函數(shù)表達(dá)式即可得到

所以唠亚,如果取最大的那個(gè)特征值链方,那么得到的目標(biāo)值就最大。有可能你會(huì)有疑問灶搜,為什么一階導(dǎo)數(shù)為0就是極大值呢祟蚀?那么再求二階導(dǎo)數(shù):

二階導(dǎo)數(shù)半負(fù)定,所以割卖,目標(biāo)函數(shù)在最大特征值所對(duì)應(yīng)的特征向量上取得最大值前酿!所以,第一主軸方向即為第一大特征值對(duì)應(yīng)的特征向量方向鹏溯。第二主軸方向?yàn)榈诙筇卣髦祵?duì)應(yīng)的特征向量方向罢维,以此類推,證明類似丙挽。

下面介紹第二種方法

方法二 ?奇異值法

這方法是從矩陣分析里面總結(jié)的肺孵,隨便取個(gè)名叫奇異值法。

首先颜阐,對(duì)于向量x平窘,其二范數(shù)(也就是模長(zhǎng))的平方為:

所以有:

把二次型化成一個(gè)范數(shù)的形式,最大化上式也即這個(gè)問題:對(duì)于一個(gè)矩陣瞬浓,它對(duì)一個(gè)向量做變換,變換前后的向量的模長(zhǎng)伸縮尺度如何才能最大蓬坡?這個(gè)很有趣猿棉,簡(jiǎn)直就是把矩陣的真面目給暴露出來了磅叛。為了給出解答,下面引入矩陣分析中的一個(gè)定理:

表示矩陣A的最大奇異值的是萨赁,一個(gè)矩陣A的奇異值為AA'(或A'A)的特征值開平方弊琴,前面講過AA'的特征值都大于等于0。當(dāng)x為單位向量時(shí)杖爽,上式就是我們的目標(biāo)函數(shù)表達(dá)式敲董。然而,上式只是告訴我們能取到最大值是多少慰安,并沒有說取到最大值時(shí)x的方向腋寨,要想知道取到最大值時(shí)的方向,那就來證明這個(gè)定理吧化焕!

考察對(duì)稱陣

設(shè)

為其n個(gè)特征值萄窜,并令與之對(duì)應(yīng)的單位特征向量為:

對(duì)了,忘了提醒撒桨,對(duì)稱陣不同特征值對(duì)應(yīng)的特征向量?jī)蓛烧徊榭蹋∵@組特征向量構(gòu)成了空間中的一組單位正交基。

任意取一個(gè)向量x凤类,將其表示為

將代入上式可得

由于這些單位特征向量?jī)蓛烧凰氡茫挥邢嗤淖鰞?nèi)積為1,不同的做內(nèi)積為0.所以上式做內(nèi)積出來的結(jié)果為:

根據(jù)特征值的大小關(guān)系有

所以

定理得證谜疤!

顯然佃延,當(dāng)時(shí)取得最大值

再回到我們的問題,需要最大化:

將X'代入上面證明過程中的矩陣A茎截,則u1的方向即為A'A=(X')'X'=XX'對(duì)大特征值對(duì)應(yīng)的特征向量的方向苇侵!

所以第一主軸已經(jīng)找到,第二主軸為次大特征值對(duì)應(yīng)的特征向量的方向企锌,以此類推榆浓。

兩種方法殊途同歸,現(xiàn)在來解答關(guān)于主成分保留占比的問題撕攒。上面我們知道第一主軸對(duì)應(yīng)的最大值是最大奇異值(也就是AA'最大特征值開平方)陡鹃,第二主軸對(duì)應(yīng)的最大值是次大奇異值,以此類推抖坪。那么假設(shè)取前r大奇異值對(duì)應(yīng)的主軸作為提取的主成分萍鲸,則提取后的數(shù)據(jù)信息占比為:

分子是前r大奇異值的平方和,分母是所有奇異值的平方和擦俐。

到此脊阴,主成分分析PCA就講完了,文章最后提到了奇異值,關(guān)于這個(gè)嘿期,后面的奇異值分解(SVD)文章將會(huì)詳細(xì)講解并給出其具體應(yīng)用品擎!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市备徐,隨后出現(xiàn)的幾起案子萄传,更是在濱河造成了極大的恐慌,老刑警劉巖蜜猾,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秀菱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蹭睡,警方通過查閱死者的電腦和手機(jī)衍菱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棠笑,“玉大人梦碗,你說我怎么就攤上這事”途龋” “怎么了洪规?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)循捺。 經(jīng)常有香客問我斩例,道長(zhǎng),這世上最難降的妖魔是什么从橘? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任念赶,我火速辦了婚禮,結(jié)果婚禮上恰力,老公的妹妹穿的比我還像新娘叉谜。我一直安慰自己,他們只是感情好踩萎,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布停局。 她就那樣靜靜地躺著,像睡著了一般香府。 火紅的嫁衣襯著肌膚如雪董栽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天企孩,我揣著相機(jī)與錄音锭碳,去河邊找鬼。 笑死勿璃,一個(gè)胖子當(dāng)著我的面吹牛擒抛,可吹牛的內(nèi)容都是我干的推汽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼歧沪,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼民泵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起槽畔,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胁编,沒想到半個(gè)月后厢钧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嬉橙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年早直,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片市框。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡霞扬,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出枫振,到底是詐尸還是另有隱情喻圃,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布粪滤,位于F島的核電站斧拍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏杖小。R本人自食惡果不足惜肆汹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望予权。 院中可真熱鬧昂勉,春花似錦、人聲如沸扫腺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽斧账。三九已至谴返,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間咧织,已是汗流浹背嗓袱。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留习绢,地道東北人渠抹。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓蝙昙,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親梧却。 傳聞我的和親對(duì)象是個(gè)殘疾皇子奇颠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

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