1. PCA 定義
PCA(主成成分分析)是將輸入特征轉(zhuǎn)換為其主成分的系統(tǒng)化方式赁濒。這些主成分作為在分類或回歸任務(wù)中新特征芳悲。
主成分的定義是數(shù)據(jù)中會使方差最大化的方向躬它,它是在對特征數(shù)據(jù)執(zhí)行投影或壓縮時肪康,最大化的降低信息丟失宜岛。
可對主成分劃分等級竣稽。主成分等級越高囱怕,產(chǎn)生的方差越大。產(chǎn)生方差最大的主成分即為第一主成分毫别。產(chǎn)生方差第二大的成分即為第二主成分娃弓。依次類推。
主成分在某種意義上是垂直的岛宦。因此從數(shù)學(xué)的角度出發(fā)台丛,第一主成分不會與第二個主成分重疊。同樣第二于第三也不會重疊砾肺。在某種意義上可作為單獨的特征對待挽霉。
主成分?jǐn)?shù)量上有限的。該最大值等于輸入的特征數(shù)量变汪。通常情況下只用到前面幾個主成分侠坎。
2. 何時使用PCA
在什么情況下會用到PCA?
第一種情況是:想要訪問隱藏的特征裙盾。簡單說就是想知道第一個主成分的大小实胸。
第二種情況是:降維。PCA 可以執(zhí)行很多工作闷煤,能在降維上提供幫助童芹。如下:
1. 可視化高緯數(shù)據(jù)。當(dāng)需要畫散點圖時鲤拿,通常情況下只有 x 和 y 兩個軸假褪,即兩個維度。但數(shù)據(jù)集中通常不止兩個特征近顷,能做的就是投射到兩個主成分生音,然后畫出散點圖。
2. 減少噪音窒升。數(shù)據(jù)集中幾乎都存在噪音缀遍。在PCA中捕獲的第一、第二主成分為數(shù)據(jù)中真正的模式饱须,而較小的主成分只表示噪音域醇。實際中會拋棄較小的主成分。
3. 預(yù)處理。在使用另一個算法之前譬挚,對數(shù)據(jù)進(jìn)行預(yù)處理锅铅。如果數(shù)據(jù)有很高的維度,而且算法也比較復(fù)雜减宣。這導(dǎo)致運行比較慢盐须,因此可食用PCA維度。
3. sklearn 中的PCA
sklearn 中PCA 的例子:http://lijiancheng0614.github.io/scikit-learn/modules/decomposition.html#decompositions
sklean 中 PCA 的API:http://lijiancheng0614.github.io/scikit-learn/modules/generated/sklearn.decomposition.PCA.html#sklearn.decomposition.PCA
4. PCA + SVM 實現(xiàn)人臉識別
為什么PCA在人臉識別中會有不錯應(yīng)用呢漆腌?答案可能有幾個:
1. 人臉照片通常有很高的維度(很多像素)
2. 人臉具有一下一般性形態(tài)贼邓,這些形態(tài)可以食用較小維數(shù)的方式捕捉。比如人一般有兩只眼睛闷尿,眼睛都基本位于臉部頂部的位置塑径。
可在此下載代碼,使用 jupyter 打開查看悠砚。項目來自udacity 中的機(jī)器學(xué)習(xí)晓勇。