PCA(Principal Component Analysis)主成分分析

原文:http://blog.csdn.net/orthocenterchocolate/article/details/39401767


今天給大家說說主成分分析這個(gè)玩意~那么捡絮,首先來說說它是干嘛用的吧,它是就來做特征選擇(Feature Selection)光绕,或者說降維(Dimension Reduction)的。其實(shí)特征選擇和降維是有聯(lián)系的蹲蒲,因?yàn)樘卣鬟x擇的結(jié)果是把那些有用的特征給選出來阔籽,冗余的沒用的特征給去掉,那么這樣之后特征維數(shù)自然而然就降低了吼鳞。那為什么要做特征選擇呢奄抽?舉個(gè)具體例子蔼两,假設(shè)有一大堆網(wǎng)頁,然后想對(duì)這些網(wǎng)頁做聚類(Clustering)逞度,所用特征是網(wǎng)頁中文本分詞后的各詞項(xiàng)的TD-IDF值额划,那么這個(gè)特征有多少維?維數(shù)等于分詞后能分出的不同的詞項(xiàng)的個(gè)數(shù)档泽,那么這個(gè)個(gè)數(shù)能有多大呢俊戳?在我實(shí)際的研究工作中所碰到的詞項(xiàng)數(shù)大約是500W的級(jí)別揖赴,那么就是說,如果采用這些詞項(xiàng)做為特征中的詞項(xiàng)抑胎,那么特征空間就是500W維的燥滑,這是個(gè)巨大的數(shù)字,會(huì)給計(jì)算帶來災(zāi)難阿逃,這就是所謂的維災(zāi)(Dimension?Curse)铭拧,因此有必要通過特征選擇來降維。除此之外恃锉,還有別的原因需要做特征選擇羽历,比如說現(xiàn)在有一堆用戶的數(shù)據(jù),想對(duì)用戶進(jìn)行聚類淡喜,但是現(xiàn)在用戶特征很多,其中有很多特征意義不大诵闭,如果聚類的時(shí)候把這些特征也考慮進(jìn)去炼团,會(huì)干擾聚類的效果,但是特征太多疏尿,我們?nèi)搜塾趾茈y看出什么特征有用瘟芝,什么特征沒用。

? ? ? ? 那么PCA是怎么選擇特征的呢褥琐?它是怎么定義所謂的“有用的特征”锌俱?它的思想是這樣的:它把高維特征通過線性變換,變換到低維空間中敌呈,使得在這個(gè)低維空間中贸宏,特征的方差盡可能地大。這時(shí)低維空間中的特征就是被選擇出來的特征磕洪,就是所謂的主成分吭练,而其它次要的成分就被剔除了。為什么希望方差大呢析显?因?yàn)榉讲畲篥暄剩捅硎具@個(gè)維上的數(shù)據(jù)所包含的信息比較豐富。舉個(gè)例子谷异,比如現(xiàn)在有10個(gè)人的數(shù)據(jù)分尸,每條數(shù)據(jù)有兩個(gè)維:出生地,性別歹嘹,10個(gè)人的出生地各不相同箩绍,5男5女。從感覺上看荞下,哪一維所包含的信息量大一些伶选?是不是出生地呢史飞?如果我一說出生地,是不是馬上就可以找到那個(gè)人了呢仰税?因此出生地各不相同嘛构资,而性別呢?因此性別只有2種陨簇,因此會(huì)有大量重復(fù)的值吐绵,也就是很多人的值都是一樣的,這個(gè)屬性對(duì)于人的刻畫效果不好河绽,比如你找一個(gè)性別是男的人己单,可以找到5個(gè),這5個(gè)人從性別這一維上看耙饰,是完全一樣的纹笼,無法區(qū)分。從PCA的角度來看苟跪,出生地這個(gè)維的方差就要比性別這個(gè)維的方差要大廷痘,而方差大就說明包含的信息比較豐富,不單一件已,這樣的特征是我們希望留下的笋额,因此就這個(gè)例子來看,PCA更傾向于保留出生地這個(gè)特征篷扩。

? ? ? ? 那么是不是簡單的就把需要保留的特征留下來兄猩,不需要保留的特征去掉就行了呢?比如說剛才那個(gè)人的數(shù)據(jù)的例子鉴未,是不是直接把性別這個(gè)特征去掉就完了枢冤?遠(yuǎn)遠(yuǎn)不止那么簡單,PCA是把原特征映射到一個(gè)低維空間上铜秆,使得特征在這個(gè)低維空間中的方差最大掏导,如果是直接去掉特征維的話,那么剩下的特征不一定是低維空間中方差最大的羽峰。這里要注意一個(gè)問題趟咆,繼續(xù)剛才那個(gè)人的數(shù)據(jù)的例子,有2維梅屉,性別和出生地值纱,如果用PCA把它降成1維,那么這一維是什么坯汤?這是沒有定義的虐唠,也就是說,這一維既不是性別惰聂,也不是出生地疆偿,它已經(jīng)沒有定義了咱筛,我們只知道它是1維選擇出來的特征而已,但這并不影響我們對(duì)特征的使用杆故。

? ? ? ? 再回想一下剛才說的PCA的思想:它的思想是這樣的:它把高維特征通過線性變換迅箩,變換到低維空間中,使得在這個(gè)低維空間中处铛,特征的方差盡可能地大饲趋。下面我們就來看看如何達(dá)到這個(gè)效果。

? ? ? ? 假設(shè)有一堆m維的特征:


? ? ? ? 我們想把它降到k維撤蟆,其中k<m奕塑,為了方便講解,先假設(shè)降到1維家肯,怎么降呢龄砰?取一個(gè)m維的向量α,那么把上面的那些m維向量降到1維就是:


? ? ? ? 這時(shí)每個(gè)特征就變成了一個(gè)值讨衣,也就是1維了寝贡。注意,現(xiàn)在的α還是未知的值依,是我們要求的,求出α后碟案,我們就知道降維后的特征是什么樣了愿险。

? ? ? ? 那么降維后的特征的方差就是:



? ? ?其中S剛好就是協(xié)方差矩陣。

? ? ?好了价说,現(xiàn)在我們的目標(biāo)就是最大化

辆亏,也就是求當(dāng)是什么的時(shí)候,
最大鳖目,怎么求呢扮叨?我們首先來看看档址,假如S中的元素都是正的疫铜,那我把中的元素取成盡量大,是不是
就越大辙浑?那這樣就應(yīng)該是正無窮狸捅,這就沒法求了衷蜓,那怎么辦?我們要對(duì)進(jìn)行某種限制尘喝,在這里磁浇,限制滿足
這樣一來,求解
的最大值就變成了在有限制條件的情況下求朽褪,高等數(shù)學(xué)還記得么置吓?應(yīng)該怎么求呢无虚?拉格朗日乘子法還有印象么?構(gòu)造拉格朗日函數(shù):

? ? ? ?然后對(duì)求導(dǎo)并令導(dǎo)數(shù)為0得:?



? ? ? ?再變換一下得:


? ? ???呵呵呵呵呵呵衍锚,還記得學(xué)過的線性代數(shù)么友题?上面這個(gè)形式不就是矩陣S的特征值和特征向量的式子么?其中

是矩陣S的特征值构拳,α是特征值對(duì)應(yīng)的特征向量咆爽,而我們要求的就是α,矩陣S的特征向量很容易求置森,所以我們要求的就可以順利地求出來了斗埂。

? ? ? ?這里注意一個(gè)問題,可能會(huì)有人問凫海,那如果矩陣S有多個(gè)特征值呛凶,那該選哪個(gè),大家仔細(xì)回前面看矩陣S的定義行贪,可以發(fā)現(xiàn)漾稀,如果你要降到k維,那么矩陣S就是k乘k的建瘫,于是S就最多有k個(gè)特征值崭捍,所以就沒得選,剛好夠啰脚,不多也不少殷蛇。

? ? ? ?剛才說的是降到一維的情況,那降到k維該怎么辦橄浓?剛才說到粒梦,如果是降到k維,S剛好有k個(gè)特征值荸实,于是對(duì)應(yīng)有k個(gè)特征向量匀们,假設(shè)求出來分別是:

? ? ? ?記矩陣,此時(shí)A是m乘k的准给,那么將原始特征向量降到k維就是:


? ? 至此泄朴,我們就完成了將m維特征向量降到k維,在處理大數(shù)據(jù)時(shí)露氮,經(jīng)常會(huì)碰到高維數(shù)據(jù)叼旋,降維是很有用的,有些時(shí)間甚至是必須的沦辙,因?yàn)橛袝r(shí)候維數(shù)實(shí)在太高夫植,算法對(duì)高維向量進(jìn)行運(yùn)算所需的時(shí)間、空間開銷是非常巨大的,降維能有效的減小這些開銷详民。但是降維是會(huì)常來信息的丟失的延欠,畢竟維數(shù)少了,信息量也少了沈跨,因此由捎,降維算法實(shí)際上就是想在降維的時(shí)候,盡量保留有用的信息饿凛,去除冗余的信息狞玛,可以說降維是用損失一些信息來換取對(duì)高維特征向量進(jìn)行運(yùn)算所產(chǎn)生的時(shí)空開銷的削減。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涧窒,一起剝皮案震驚了整個(gè)濱河市心肪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌纠吴,老刑警劉巖硬鞍,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異戴已,居然都是意外死亡固该,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門糖儡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來伐坏,“玉大人,你說我怎么就攤上這事握联¤氤粒” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵拴疤,是天一觀的道長。 經(jīng)常有香客問我独泞,道長呐矾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任懦砂,我火速辦了婚禮蜒犯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘荞膘。我一直安慰自己罚随,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布羽资。 她就那樣靜靜地躺著淘菩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上潮改,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天狭郑,我揣著相機(jī)與錄音,去河邊找鬼汇在。 笑死翰萨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的糕殉。 我是一名探鬼主播亩鬼,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阿蝶!你這毒婦竟也來了雳锋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤赡磅,失蹤者是張志新(化名)和其女友劉穎魄缚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體焚廊,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冶匹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了咆瘟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嚼隘。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖袒餐,靈堂內(nèi)的尸體忽然破棺而出飞蛹,到底是詐尸還是另有隱情,我是刑警寧澤灸眼,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布卧檐,位于F島的核電站,受9級(jí)特大地震影響焰宣,放射性物質(zhì)發(fā)生泄漏霉囚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一匕积、第九天 我趴在偏房一處隱蔽的房頂上張望盈罐。 院中可真熱鬧,春花似錦闪唆、人聲如沸盅粪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽票顾。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間库物,已是汗流浹背霸旗。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留戚揭,地道東北人诱告。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像民晒,于是被迫代替她去往敵國和親精居。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

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