想象一下,你是一個(gè)營(yíng)養(yǎng)學(xué)家試圖探索食物的營(yíng)養(yǎng)成分仙辟。什么是區(qū)分食品的最佳方式叠国?通過維生素含量?蛋白水平校赤?或者兩者的組合马篮?那么怜奖,你需要這個(gè)——主成分分析
以下內(nèi)容譯自Algobeans
區(qū)分識(shí)別一個(gè)整體里有什么成分迁央,最直觀的就是可視化以及揭示集群岖圈,例如蜂科,在食品中,我們可以識(shí)別廣泛的類別才菠,如肉類和蔬菜赋访,以及子類別厕氨,如蔬菜類型命斧。
但是如何找出這些成分呢?
??????
主成分分析定義
主成分分析(PCA)是在大型數(shù)據(jù)集中找出少量基礎(chǔ)變量(被稱為“主成本”)的技術(shù)。主要思想為降維汇四,把多指標(biāo)轉(zhuǎn)化為幾個(gè)綜合指標(biāo)通孽。
主成分可以由一個(gè)或多個(gè)現(xiàn)有變量表示背苦。
舉例來說:
我們可以用單一變量「維生素C」來區(qū)分食物秕噪,因?yàn)榫S生素C只在蔬菜中但不存在于肉類中厚宰。 但是用這樣的變量铲觉,肉類將全部聚集在一起(因?yàn)樗腥忸悓?duì)維生素C的反應(yīng)都為0撵幽,無法分開)(??圖一最左所示??)
圖一:用變量分類
為了把肉類的子類也表示出來并齐,我們可以用多個(gè)變量「維生素C-脂肪」來表示,因?yàn)椴煌娜忸愔竞坎煌赫辏沂卟酥胁缓兄灸笈颍@樣我們就把蔬菜和肉類以及所含有的子類也分別開來了。(??圖一中間??)
如果想要得到更精細(xì)的分類目胡,我們可以用「維生素C+纖維-脂肪」這樣的變量來把蔬菜的子類更好的展開誉己。(??圖一最右??)
以上就是我們用重復(fù)的實(shí)驗(yàn)和腦子獲得主成分巨双,但這用來應(yīng)付「天朝食物」還遠(yuǎn)遠(yuǎn)不夠。但是你還有強(qiáng)大的電腦爸邸慢宗!
接下來就厲害了镜沽,我們可以通過主成分分析法來分析一個(gè)隨機(jī)的食物樣品淘邻。
ps:樣本來自美國(guó)農(nóng)業(yè)部數(shù)據(jù),以100g生食物為標(biāo)準(zhǔn)測(cè)試统阿,分析四個(gè)營(yíng)養(yǎng)變量:維生素C、脂肪帆离、纖維哥谷、蛋白質(zhì)。
數(shù)據(jù)發(fā)現(xiàn)猜扮,某些營(yíng)養(yǎng)素的存在似乎相關(guān)监婶。脂肪和蛋白質(zhì)似乎在一同增長(zhǎng)惑惶,而纖維和維生素C一同增長(zhǎng)带污。
為了證實(shí)我們的假設(shè),我們可以用相關(guān)性分析檢查營(yíng)養(yǎng)變量之間的相關(guān)性喉祭。正如所料泛烙,脂肪和蛋白質(zhì)水平(r= -0.56)之間以及纖維和維生素C水平之間存在大的正相關(guān)(r= 0.57)蔽氨。
在發(fā)現(xiàn)了這樣的關(guān)系之后鹉究,我們可以把高度相關(guān)的變量看作一個(gè)變量自赔,我們就可以把四個(gè)維度降維成兩個(gè)維度來考慮柳琢。那么對(duì)食物集做主成分分析就可得以下結(jié)果:
數(shù)字表示用于組合變量以導(dǎo)出主成分的權(quán)重柬脸。例如倒堕,為了得到特定食品的最高主成分(PC1)值垦巴,我們加上它包含的纖維和維生素C的量铭段,稍微強(qiáng)調(diào)纖維稠项,然后從中減去脂肪和它含有的蛋白質(zhì)展运,與蛋白質(zhì)抵消的程度較大精刷。
我們觀察到,主要成分(PC1)總結(jié)了我們的目前為止的研究結(jié)果 - 它已配對(duì)脂肪與蛋白質(zhì)和纖維與維生素C.它還考慮到對(duì)之間的反向關(guān)系埂软。因此勘畔,PC1可能用于區(qū)分肉類和蔬菜丽惶。第二主成分(PC2)是兩個(gè)不相關(guān)的營(yíng)養(yǎng)變量 - 脂肪和維生素C的組合钾唬。它用于進(jìn)一步區(qū)分肉(使用脂肪)和蔬菜(使用維生素C)中的子類別。
用這樣兩個(gè)變量在做食物分組的話奕巍,將得到最為詳細(xì)的分類:
肉類項(xiàng)目(藍(lán)色)具有低PC1值的止,因此集中在圖的左側(cè)诅福,與蔬菜項(xiàng)目(橙色)相對(duì)的一側(cè)权谁。在肉類中憋沿,海產(chǎn)品(深藍(lán)色)具有較低的脂肪含量辐啄,因此它們具有較低的PC2值,并且位于圖的底部悯舟。幾種具有較低維生素C含量的非葉狀素食物(深橙色)也具有較低的PC2值抵怎,并出現(xiàn)在底部反惕。
主成分分析好像很厲害的樣子悬赏,但是闽颇,是個(gè)算法就有他的局限性进萄,PCA就有不少局限:
最大化傳播:PCA的主要假設(shè)是中鼠,顯示數(shù)據(jù)點(diǎn)之間最大差異的維度是最有用的援雇。但是,這可能不是真的惫搏。例如筐赔,識(shí)別技術(shù)堆中數(shù)據(jù)點(diǎn)的個(gè)數(shù)。為了計(jì)算數(shù)量揖铜,沿縱軸將每個(gè)數(shù)據(jù)點(diǎn)分開茴丰,但是如果堆棧很短峦椰,PCA會(huì)錯(cuò)誤地識(shí)別水平軸為任務(wù)的有效成分汤功,因?yàn)檫@是具有最大擴(kuò)展的維度滔金。
解釋組件:PCA需要用具體的變量組合來表示組件鹦蠕,但是通常在現(xiàn)實(shí)中是很難實(shí)現(xiàn)的在抛。
正交變量:PCA的一個(gè)主要缺點(diǎn)是其生成的主分量必須不在空間中重疊刚梭,否則稱為正交分量屹徘。這意味著組件總是彼此以90度定位衅金。為了解決這個(gè)問題,我們可以使用一種稱為獨(dú)立分量分析(ICA)的替代技術(shù)鉴吹。
(喜歡的話請(qǐng)關(guān)注我哦~ 微信公眾號(hào):kuairobot)
-相關(guān)閱讀-
教程 | 假如遇到災(zāi)難,你有多少概率能活下來良蒸? 深入淺出學(xué)習(xí)決策樹