歡迎關(guān)注我的專欄( つ??ω??)つ【人工智能通識】
主成分析PCA
Principal components analysis,簡單說就是物體的分類來說,它們的哪些屬性更重要,這些重要的屬性就叫做主要成分Principal components 。比如對于人的身材來說,身高、體重、體脂率這些肯定是主要成分,年齡、月收入這些肯定不是。
但數(shù)學(xué)運(yùn)算根本不懂這些現(xiàn)實(shí)道理,有沒有辦法直接用數(shù)學(xué)方法,把那些對分類影響最大的屬性找出來呢?PCA主成分析就是用數(shù)學(xué)運(yùn)算來判斷哪些屬性更重要,哪些不重要,——它根本不管你是要區(qū)分胖瘦還是區(qū)分貧富。
方差
三個人,韓梅梅、李雷和小明,體重分別是40,50,60。平均數(shù)mean就是160,那么方差Variance就是
所以方差其實(shí)是和平均數(shù)的差的平方之和,方差其實(shí)是差、方、和。
更多數(shù)字的方差也是一樣,如下圖,中間紅線是水平方向7個點(diǎn)的平均值,方差就是藍(lán)色虛線長度的平方和,反正要平方也就無所謂正負(fù)。

方差公式就是:
什么樣的分布數(shù)據(jù)最好用?能幫助我們進(jìn)行分類的數(shù)據(jù)就是好數(shù)據(jù)。

如上圖所示,藍(lán)色A的分布情況最好,一眼就能開出平均值左右分成兩類;橙色的B也不錯,但怎么劃分就看不大懂了;綠色C就糟糕了,都擠在中間,沒法劃分。但也不要覺得綠色中間那一堆有問題,去掉兩端的兩個,把中間這一堆橫向拉長舒展開,就是紅色D的情況,其實(shí)并不比B差。
用數(shù)學(xué)表示就是A的方差最大,B其次,C最小。結(jié)論就是,在一般情況下,對于一個屬性的數(shù)據(jù)分布來說,方差越大越好分類。
那么兩個屬性相比,怎么判斷哪個數(shù)據(jù)更好一些?
協(xié)方差
把樣本當(dāng)做圓點(diǎn),兩個屬性分別對應(yīng)和
軸,畫到二維坐標(biāo)上,這樣計(jì)算方差用的
就分別落到了橫向和豎向的坐標(biāo)軸上面。如下圖所示。

協(xié)方差Covariance就是每個點(diǎn)P對應(yīng)的藍(lán)色虛線乘以綠色虛線,然后把得到的所有乘積再相加。公式如下,其中是橫向平均數(shù),
是豎向平均數(shù),即圖中所示短紅線:
即:
如果和
是同一個屬性的話就變成了方差
。
不過說這些都沒用,我們也不用討論到底是藍(lán)色虛線加起來大還是綠色虛線加起來大,因?yàn)樗鼈儍蓚€肯定都不是最大的,誰是最大呢?
坐標(biāo)系變換
“橫看成嶺側(cè)成峰”,對于一排數(shù)據(jù)來說,高低起伏的山巒從側(cè)面看成一座禿山那就是廢了。對分類影響比較大的一定是既成簇又分團(tuán)的數(shù)據(jù)。

觀察角度不好就是千手觀音,角度好了才能看出高矮胖瘦。比如下面這個圖上的五個采樣點(diǎn),無論是橫軸和縱軸看,分布的都比較均勻。但如果沿著方向看,就會發(fā)現(xiàn)這5個點(diǎn)在
方向上投影的灰色圓點(diǎn)呈簇分布,而且在
方向上各個點(diǎn)的虛線也都比藍(lán)色或者綠色虛線長,也就是方差比較大。

所以說,不要拘泥于現(xiàn)有數(shù)據(jù)的角度來觀察,要變換到方差最大的角度來分析?,F(xiàn)有的數(shù)據(jù)角度未必是對分類產(chǎn)生最大影響的數(shù)據(jù),那條斜著的屬性才是影響分類的主要成分Principal components,一般叫做PC1。和PC1垂直的
就是PC2。

從這個旋轉(zhuǎn)后的坐標(biāo)可以更加清晰的看出這些點(diǎn)的分布主要由PC1決定。而PC1和PC2影響力的比例也可以用各自方向上的方差來計(jì)算。
三維坐標(biāo)
同樣對于三維坐標(biāo)中的一團(tuán)樣本點(diǎn),像云朵一樣分布,我們?nèi)匀豢梢哉业截灤┱麄€云朵的最長的那條軸線,以及和它互相垂直的另外兩條軸線。這樣我們就針對
變換得到新的
即PC1、PC2、PC3。
主成分分析的意義
其實(shí)某種意義上講,和
就是原來
的另外一種角度的表現(xiàn)形式。
得到主成分軸向(屬性)的目的就是為了可以舍棄其他次要的成分,當(dāng)然,主成分屬性也是優(yōu)于其他成分的屬性,缺點(diǎn)就是這個屬性沒法用語言來解釋。
假象我們有1000個屬性數(shù)據(jù),實(shí)在太多了,這時(shí)候就可以用主成分分析。把它們放到一千維的坐標(biāo)系里面,每個屬性占一維。然后在這個復(fù)雜空間中的樣本云中找出貫穿其中方差最長的那個方向,它就是PC1,再找出方差其次長的PC2,PC3,...PC1000。
原本1000個屬性我們不知道誰重要誰不重要,但現(xiàn)在我們知道PC1最重要,PC2其次...所以我們就可以只留下前面比較重要的PC1到PC10,其余的900個都忽略掉。注意這里PC1并不是和第一個屬性對應(yīng)的,甚至1000個新PC屬性和原來1000個屬性之間沒有一一對應(yīng)關(guān)系,誰也不知道在這1000維的坐標(biāo)空間中PC1這個箭頭指向哪里,更沒法說它是和身高、體重、年齡那個屬性對應(yīng)了。
附注:在上面的二維坐標(biāo)系中,
一定優(yōu)于
嗎?似乎并不見得,雖然
看上去的確比
長太多,方差也大很多。但還是應(yīng)該把它們的分布放到同等的范圍內(nèi)進(jìn)行比較,如下圖所示,當(dāng)把
橫向縮短到
范圍內(nèi)之后如下圖所示,
的成簇情況要比
還好一點(diǎn)點(diǎn),方差也大一點(diǎn)。后續(xù)再仔細(xì)學(xué)習(xí)和驗(yàn)證吧。另外,開始也沒有將所有屬性(身高、體重、年齡等)數(shù)值都統(tǒng)一到同樣范圍(歸一化),但似乎并不是這個問題的原因。

歡迎關(guān)注我的專欄( つ??ω??)つ【人工智能通識】
每個人的智能新時(shí)代
如果您發(fā)現(xiàn)文章錯誤,請不吝留言指正;
如果您覺得有用,請點(diǎn)喜歡;
如果您覺得很有用,歡迎轉(zhuǎn)載~
END