《電子技術應用》
您所在的位置:首頁 > 電源技術 > 業界動態 > 什么是PCA?何時應該使用PCA?PCA是如何工作的?

什么是PCA?何時應該使用PCA?PCA是如何工作的?

2018-08-30

當有人發現你在編教材的時候,會問下面兩個問題。第一個是“你為什么寫書?”第二個是“你的書和現有的書有什么不一樣?”第一個問題相當容易回答。寫書是因為你對現有的文本不完全滿意。

本文引用地址: http://power.21ic.com//ce/technical/201808/75746.html

在統計學和數據科學中,主成分分析(PCA)是非常重要的技術……但我在備課的時候,發現網上的資料過于技術性,不能完全滿足我的需要,甚至提供互相沖突的信息。所以我很有把握地說,我對“現有的文本不完全滿意”。

因此,我打算講述下PCA的3W1H:什么是PCA(What),何時應用PCA(When),PCA如何工作(How),為什么PCA有效(Why)。另外,我也將提供一些深入解釋這一主題的資源。我特別想要呈現這一方法的原理,其下的數學,一些最佳實踐,以及潛在的缺陷。

盡管我想要讓PCA盡可能地平易近人,但我們將要討論的算法是相當技術性的。熟悉以下知識能夠更容易地理解本文和PCA方法:矩陣運算/線性代數(矩陣乘法,矩陣轉置,矩陣取逆,矩陣分解,本征向量/本征值)和統計/機器學習(標準化、方差、協方差、獨立、線性回歸、特征選取)。在文章中,我加上了指向講解這些主題的鏈接,但這些鏈接(我希望)主要起溫習作用,以備遺忘,并不要求必須閱讀。

什么是PCA?

假設你想要預測美國本年度的GDP。你具有大量信息:2017年第一季度的美國GDP數據,去年的GDP,前年的GDP……你有所有公開的經濟指標,比如失業率、通脹率,等等。你有2010年的人口普查數據,可以估計每個行業中有多少美國人工作,以及在人口普查間隙更新這些估計的美國社區調查數據。你知道兩黨在參眾兩院各有多少席位。你可以收集股價、IPO數量,已經有多少CEO看起來對參政感興趣。

TL;DR——有大量變量需要考慮。

如果你之前曾經處理過大量變量,你會知道這會帶來問題。你了解所有變量之間的相互關系嗎?你的變量是否多到導致過擬合風險顯著加大?或者違背了建模策略的假設?

你也許會問:“我怎樣才能僅僅關注收集變量中的一小部分呢?”用術語說,你想要“降低特征空間的維度”。通過降低特征空間的維度,你需要考慮的變量之間的關系不那么多了,過擬合的風險也不那么高了。(注意:這并不意味著再也不需要考慮過擬合等事項——不過,我們的方向是正確的!)

毫不令人意外,降低特征空間的維度稱為“降維”。有許多降維的方法,但大部分降維技術屬于:

特征消除

特征提取

顧名思義,特征消除(feature elimination)通過消除特征降低特征空間的維度。在上面舉的GDP的例子中,我們可以保留三個我們認為最能預測美國的GDP的特征,丟棄所有其他特征,而不是考慮所有特征。特征消除方法的優勢有:簡單,保持變量的可解釋性。

特征消除方法的缺點是你無法從丟棄變量中獲得信息。如果我們僅僅使用去年的GDP,制造業人口比例(根據最新的美國社區調查數據),失業率來預測今年的GDP,我們將失去所有丟棄變量的信息,這些丟棄變量本可以為模型貢獻力量。消除特征的同時,我們也完全消除了丟棄變量可能帶來的任何好處。

而特征提取沒有這個問題。假設我們有十個自變量。在特征提取時,我們創建十個“新”自變量,每個“新”自變量是“舊”自變量的組合。然而,我們以特定方式創建這些新自變量,并根據它們對因變量的預測能力排序。

你可能會說:“哪里體現了降維?”好吧,我們保留所需的新自變量,丟棄“最不重要的那些”。由于我們根據新變量預測因變量的能力排序,因此我們知道哪個變量最重要,哪個變量最不重要。但是——關鍵部分來了——由于這些新自變量是舊變量的組合,因此我們仍然保留了舊變量最有價值的部分,盡管我們丟棄了一個或幾個“新”變量!

主成分分析是一種特征提取技術——以特定的方式組合輸入變量,接著在保留所有變量最有價值部分的同時,丟棄“最不重要”的變量!這還帶來了有益的副作用,PCA得到的所有“新”變量兩兩獨立。這是有益的,因為線性模型的假設要求自變量互相獨立。如果我們用這些“新”變量擬合一個線性回歸模型(見后文的“主成分回歸”),這一假設必定會滿足。

何時應該使用PCA?

你是否想要降低變量的數目,但不能夠識別可以完全移除的變量?

你是否想要確保變量相互獨立?

你是否可以接受讓自變量變得不那么容易解釋?

如果這三個問題的回答都是“是”,那PCA是一個很合適的選擇。如果第三問的回答是“否”,那么你不應該使用PCA。

PCA是如何工作的?

下一節將討論PCA為何有效。讓我們在講解算法之前先簡要概括下整個過程:

我們將計算概括變量互相關性的矩陣。

接著我們將這一矩陣分為兩部分:方向和大小。之后我們可以了解數據的“方向”及其“大小”(也就是每個方向有多“重要”)。下圖展示了數據的兩個主要方向:“紅向”和“綠向”。在這一情形下,“紅向”更重要。我們將在后文討論這是為什么,不過,看看給定的數據點排列的方式,你能看出為什么“紅向”比“綠向”更重要嗎?(提示:能最好地擬合這些數據的直線看起來是什么樣?)

 

8b34776d6e1f0a0545c0e303d55e729d.png

 

圖片:setosa.io

我們將沿著重要方向(原變量的組合)轉換原始數據。下圖是經過轉換的數據,x軸和y軸遵循“紅向”和“綠向”。能最好地擬合這些數據的直線看起來會是什么樣?

ec81e577c9b8f93d7b80911bc70574ee.png

 

 

圖片:setosa.io

盡管這里的可視化例子是二維的(因此我們有兩個“方向”),我們可以設想數據具有更多維度的情形。通過識別哪些“方向”最“重要”,我們可以通過丟棄“最不重要”的“方向”將數據壓縮進較小的特征空間。通過將數據投射到較小的特征空間,我們降低了特征空間的維度。但因為數據是根據這些不同的“方向”轉換的,我們確保模型保留了所有原變量。

下面我將具體講解推導PCA的算法。我嘗試避免讓本文過于技術性,但這里的細節不可能忽略,因此我的目標是盡可能明確地講解。下一節將深入討論為什么這一算法有效的直覺。

在開始之前,將數據整理成表格形式,n行,p+1列,其中一列對應因變量(通常記為Y),p列對應于自變量(這一自變量矩陣通常記為X)。

根據上一段的定義,將數據分成Y和X——我們主要處理X。

在自變量矩陣X的每一列上,從每個條目中減去該列的均值。(這確保每列的均值為0.)

決定是否標準化。給定X的列,是否高方差的特征比低方差的特征更重要?(這里重要指特征能更好地預測Y。)如果特征的重要性獨立于特征的方差,那么將列中的每項觀測除以該列的標準差。(結合第二步、第三步,我們將X的每列標準化了,確保每列的均值為零,標準差為1.)所得矩陣稱為Z。

轉置矩陣Z,將轉置矩陣和原矩陣相乘。(數學上寫為ZTZ.)所得矩陣為Z的協方差矩陣(無視常數差異)。

(這大概是最難的一步——跟緊了。)計算ZTZ的本征向量和相應的本征值。在大多數計算軟件包下,這都很容易做到——事實上,ZTZ的本征分解為將ZTZ分解為PDP-1,其中P為本征向量矩陣,D為對角線為本征值、其余值均為零的對角矩陣。D的對角線上的本征值對應P中相應的列——也就是說,D對角線上的第一個元素是λ1,相應的本征向量是P的第一列。我們總是能夠計算出這樣的PDP-1。(獎勵:致對此感興趣的讀者,我們之所以總是能夠計算出這樣的PDP-1是因為ZTZ是一個對稱正定矩陣。)

將本征值λ1,λ2…,λp由大到小排列。并據此排列P中相應的本征向量。(例如,如果λ2是最大的本征值,那么就將P的第二列排到第一。)取決于計算軟件包,這可能可以自動完成。我們將這一經過排序的本征向量矩陣記為P*。(P*的列數應當與P相同,只不過順序可能不同。)注意這些本征向量相互獨立。

計算Z* = ZP*。這一新矩陣Z*不僅是X的標準化版本,同時其中的每個觀測是原變量的組合,其中的權重由本征向量決定。一個額外的好處是,由于P*中的本征向量是相互獨立的,Z*的每一列也是相互獨立的!

 

e9a961cc70a33ae1960a2e4adf717ab0.png

 

左為原數據X,右為經PCA轉換后的數據Z*(圖片:setosa.io)

上圖中,有兩點值得注意:

由于我們的主成分相互之間是正交的,因此它們在統計學上是相互獨立的……這就是為什么Z*中的列相互獨立的原因!

左圖和右圖顯示的是同樣的數據,但右圖表現的是轉換后的數據,坐標軸為主成分。

不管是左圖還是右圖,主成分相互垂直。事實上,所有主成分總是互相正交(正交是垂直的正式數學術語)。

最后,我們需要決定要保留多少特征,丟棄多少特征。決定這一事項有三種常見的方法,我們下面將討論這三種方法并舉例說明:

現在我們簡單解釋下解釋方差比例這個概念。因為每個本征值大致等于相應本征向量的重要性,所以解釋方差比例等于保留特征的本征值之和除以所有特征的本征值。

 

9cd742124cf7f3df999e0c4e8eaef734.png

 

基因數據的陡坡圖(:improvedoutcomes.com)

考慮上面的基因數據的陡坡圖。紅線表明每個特征的解釋方差比例,將該主成分的本征值除以所有本征值之和可以得到這一數值。僅僅包括主成分1的解釋方差比例是λ1/(λ1 + λ2 + … + λp),約為23%. 僅僅包括主成分2的解釋方差比例是λ2/(λ1 + λ2 + … + λp),約為19%.

包括主成分1和主成分2的解釋方差比例是(λ1 + λ2)/(λ1 + λ2 + … + λp),約為42%. 也就是圖中黃線的部分,黃線表明包括到該點為止的所有主成分的解釋方差比例。例如,PC2處的黃點表明包括主成分1和主成分2可以解釋42%的模型總方差。

下面,讓我們看一些例子:

注意:有些陡坡圖的Y軸是本征向量大小而不是方差比例。這樣的陡坡圖得出的結果是等價的,不過需要手工計算方差比例。

法一:假設我想保留模型中的5個主成分。在上面的基因數據例子中,這5個主成分可以解釋66%的總方差(包括全部13個主成分的方差)。

法二:假設我想包括足夠的主成分,解釋90%的總方差。在上面的基因數據例子中,我將包括前10個主成分,丟棄最后3個變量。

法三:這次我們想要“找到肘部”。從上圖中,我們看到,在主成分2和主成分3之間有解釋方差比例的較大下降。在這一情形下,我們打算包括前兩個特征,丟棄其余特征。如你所見,這個方法有一定的主觀性,因為“肘部”沒有一個數學上精確的定義,并且在這個例子中,包括前兩個特征的模型只能解釋42%的總方差。

法一: 隨意選擇想要保留多少維度。也許我想在二維平面上可視化數據,所以我可能只保留兩個特征。這取決于用例,沒有硬性規則。

法二: 計算每個特征的解釋方差比例(下面將簡要解釋這一概念),選取一個閾值,不斷加上特征直到達到閾值。(例如,如果你想要讓模型可以解釋80%的總方差,那就加上解釋方差比例最大的特征,直到可解釋的方差比例達到或超過80%.)

法三: 這一方法和法二密切相關。計算每個特征的解釋方差比例,根據解釋方差比例排序特征,并隨著更多特征的保留,標繪出解釋方差的累計比例。(這一圖形稱為陡坡圖,見下。)根據陡坡圖可以決定包含的特征的數量,在陡坡圖中找到解釋方差比例明顯小于前一點的點,然后選擇到該點為止的特征。(這個方法叫做“找肘法”,因為它通過尋找陡坡圖的“彎曲處”或“肘部”以判定解釋方差比例最大下降在何處發生。)

丟棄了我們想要丟棄的轉換后的變量,就可以收工了!這就是PCA.

但是,為什么PCA有效?

盡管PCA是一個深度依賴線性代數算法的非常技術性的方法,仔細想想,它其實是一個相對直觀的方法。

首先,協方差矩陣ZTZ包含了Z中每個變量和其他各個變量相關性的估計。這是一個了解變量相關性的強力工具。

其次,本征值和本征向量很重要。本征向量表示方向。設想下將數據繪制在一張多維的散布圖上。每個本征向量可以想像成數據散布圖的一個“方向”。本征值表示大小,或者重要性。更大的本征值意味著更重要的方向。

最后,我們做了一個假設,一個特定方向上的更多差異和解釋因變量行為的能力相關。大量差異通常意味著信號,而極少差異通常意味著噪音。因此,一個特定方向上的更多差異,理論上意味著這一方向上有一些我們想要檢測的重要東西。

所以說,PCA是一個結合了以下概念的方法:

變量之間的相關性的測度(協方差矩陣)。

數據散布的方向(本征向量)。

這些不同方向的相對重要性(本征值)。

PCA組合了預測因子,讓我們可以丟棄相對不那么重要的本征向量。

PCA有擴展嗎?

有,不過限于篇幅,這里不多說。最常見到的是主成分回歸,在Z*中未曾丟棄的特征子集上進行回歸。這里Z*的相互獨立發揮了作用;在Z*上回歸Y,我們知道一定能滿足自變量相互獨立這一點。不過,我們仍然需要檢查其他假設。

另一個常見的變體是核PCA,即先使用核函數升維,再使用PCA降維,從而將PCA應用于非線性情形。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品国产系列| 欧美一区二区黄| 国产一区二区成人| 国产精品爱久久久久久久| 欧美老女人xx| 欧美韩国一区| 欧美国产国产综合| 欧美精品激情在线| 欧美日韩不卡视频| 欧美精品免费观看二区| 欧美成人精品h版在线观看| 浪潮色综合久久天堂| 久久久久久久999精品视频| 欧美一区二区三区视频| 先锋资源久久| 久久狠狠亚洲综合| 久久黄色影院| 久久亚洲精品伦理| 美女图片一区二区| 蜜臀99久久精品久久久久久软件 | 牛牛国产精品| 欧美黄色精品| 欧美日韩亚洲一区二区| 国产精品国色综合久久| 国产精品永久免费视频| 国产一区二区三区在线观看免费| 国产欧美日韩综合一区在线观看 | 99精品热视频| 亚洲一区一卡| 欧美在线精品一区| 亚洲三级免费电影| 亚洲午夜黄色| 久久成人这里只有精品| 久热精品视频在线观看一区| 欧美成人午夜77777| 欧美日韩成人在线播放| 国产精品美女久久久浪潮软件| 国产目拍亚洲精品99久久精品| 国模私拍视频一区| 在线欧美日韩国产| 99亚洲精品| 欧美怡红院视频| 日韩亚洲精品电影| 午夜精品电影| 美日韩精品视频免费看| 欧美日产国产成人免费图片| 国产精品久久久久久久久久免费 | 亚洲美女淫视频| 亚洲自拍高清| 亚洲国产精品小视频| 99精品久久久| 久久国产88| 欧美日韩a区| 国产欧美日韩三级| 在线看日韩欧美| 一区二区三区www| 欧美一区二区三区在线免费观看| 91久久极品少妇xxxxⅹ软件| 亚洲一二三区在线观看| 久久久久综合网| 欧美三级午夜理伦三级中视频| 国产精品视频大全| 在线观看国产日韩| 亚洲一卡二卡三卡四卡五卡| 亚洲国产专区校园欧美| 亚洲免费视频网站| 母乳一区在线观看| 国产伦精品一区二区三区在线观看| 在线电影国产精品| 亚洲欧美成人网| 日韩网站在线| 久久精品人人做人人爽| 欧美日韩福利在线观看| 国产一区二区你懂的| 夜夜嗨av色综合久久久综合网| 欧美亚洲视频一区二区| 一本久道久久综合狠狠爱| 久久久91精品国产一区二区精品| 欧美激情va永久在线播放| 国产视频久久| 一区二区三区四区在线| 最新日韩欧美| 欧美一区亚洲| 国产精品白丝黑袜喷水久久久| 在线看日韩av| 午夜在线a亚洲v天堂网2018| 一区二区三区导航| 欧美99久久| 狠狠干综合网| 午夜精品久久久久久久| 亚洲欧美福利一区二区| 欧美日韩精品免费观看| 亚洲国产aⅴ天堂久久| 久久狠狠久久综合桃花| 亚洲欧美一区二区三区在线| 欧美日韩国产精品| 亚洲黄色在线看| 91久久夜色精品国产九色| 久久精品日韩| 国产日韩精品综合网站| 亚洲一区二区三区色| 亚洲天堂成人| 欧美全黄视频| 亚洲精品偷拍| 日韩午夜免费视频| 欧美激情第3页| 亚洲高清在线观看一区| 亚洲激情视频| 欧美国产激情| 亚洲欧洲一区二区三区| 亚洲国产精品久久久久久女王| 久久久久久久久蜜桃| 国产色爱av资源综合区| 亚洲欧美国产制服动漫| 亚洲欧美中文字幕| 国产精品青草综合久久久久99 | 日韩视频一区二区三区| 亚洲激情视频网| 久久综合狠狠| 一区二区在线看| 久久精品成人一区二区三区蜜臀 | 久久久久国产成人精品亚洲午夜| 国产伦一区二区三区色一情| 亚洲一区精品电影| 欧美一级午夜免费电影| 国产伦精品一区二区三区高清| 亚洲在线视频一区| 麻豆成人综合网| 国产麻豆9l精品三级站| 亚洲午夜成aⅴ人片| 在线一区二区三区四区五区| 欧美精品v日韩精品v韩国精品v| 依依成人综合视频| 亚洲区一区二区三区| 欧美成人精品h版在线观看| 亚洲成色777777女色窝| 亚洲精品永久免费| 欧美精品免费在线| 亚洲三级电影在线观看| 亚洲色在线视频| 国产精品九九久久久久久久| 中文国产一区| 欧美在线亚洲在线| 国产在线不卡精品| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美国产视频在线| 亚洲国产午夜| 亚洲午夜激情网页| 国产欧美视频一区二区| 亚洲二区精品| 欧美人与性动交α欧美精品济南到| 亚洲国产精品一区制服丝袜 | 怡红院精品视频| 9人人澡人人爽人人精品| 国产精品久久91| 久久精品成人一区二区三区蜜臀 | 国内精品模特av私拍在线观看| 亚洲人成毛片在线播放女女| 欧美日韩国产综合视频在线观看中文 | 久久久久久久网| 亚洲高清不卡在线| 亚洲淫片在线视频| 国内精品伊人久久久久av影院| 91久久精品www人人做人人爽| 欧美日韩一区在线观看视频| 午夜精品在线| 欧美好骚综合网| 亚洲一区二区在线播放| 麻豆精品网站| 一区二区三区欧美在线| 久久久福利视频| 日韩亚洲欧美综合| 久久青青草原一区二区| 日韩视频免费在线| 久久久亚洲影院你懂的| 日韩一本二本av| 久久男女视频| 一道本一区二区| 久热精品视频| 亚洲在线黄色| 欧美日本精品一区二区三区| 欧美一级午夜免费电影| 欧美日本韩国一区| 亚洲成色www8888| 国产精品99一区| 亚洲人成在线免费观看| 国产伦精品一区二区三区免费 | 欧美日韩一区二区免费在线观看| 欧美淫片网站| 欧美午夜理伦三级在线观看| 久久精品亚洲一区二区| 国产精品乱码一区二三区小蝌蚪| 亚洲精选一区二区| 韩国精品在线观看| 午夜在线观看免费一区| 亚洲久久一区| 欧美二区在线观看| 亚洲二区视频在线| 国产精品一区二区视频| 亚洲午夜激情网站|