《電子技術應用》
您所在的位置:首頁 > 電源技術 > 業界動態 > 什么是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亚洲国产精品_日韩亚洲一区二区
在线观看视频日韩| av成人动漫| 国产精品ⅴa在线观看h| 蜜臀久久99精品久久久画质超高清 | 午夜精品久久99蜜桃的功能介绍| 在线视频一区二区| 日韩视频免费观看| 亚洲毛片播放| 亚洲靠逼com| 亚洲精品一区二区三区四区高清 | 亚洲社区在线观看| 在线综合亚洲| 一区二区三区四区国产精品| 夜夜嗨av一区二区三区四区 | 老鸭窝亚洲一区二区三区| 欧美一级在线视频| 一区二区高清| 欧美日韩国产专区| 国产亚洲高清视频| 美国十次成人| 欧美激情网友自拍| 欧美成人免费全部观看天天性色| 蜜臀a∨国产成人精品| 久久一区中文字幕| 男人天堂欧美日韩| 美女精品网站| 欧美精品免费视频| 欧美日韩视频在线观看一区二区三区| 欧美日韩一区二区三| 欧美亚一区二区| 欧美手机在线| 国产麻豆午夜三级精品| 国产综合视频在线观看| 亚洲成人在线视频网站| 亚洲激情影视| 亚洲桃花岛网站| 亚洲字幕在线观看| 久久精品国产2020观看福利| 91久久精品国产91久久性色| av成人免费在线| 亚洲小视频在线观看| 欧美专区亚洲专区| 久久精视频免费在线久久完整在线看| 久久久中精品2020中文| 欧美精品v国产精品v日韩精品| 欧美日韩国语| 国产精品一区二区男女羞羞无遮挡 | 欧美中文日韩| 亚洲久久一区| 亚洲嫩草精品久久| 久久久久久久999精品视频| 欧美www视频在线观看| 欧美日韩在线播放一区| 国产亚洲va综合人人澡精品| 亚洲国产日韩欧美在线动漫| 亚洲一区中文字幕在线观看| 亚洲国产精品一区二区三区| 亚洲男女自偷自拍图片另类| 麻豆国产va免费精品高清在线| 欧美日韩亚洲一区二区三区| 国产拍揄自揄精品视频麻豆| 亚洲高清在线观看一区| 亚洲四色影视在线观看| 亚洲国产精品一区制服丝袜| 中文亚洲免费| 久久一综合视频| 国产精品videossex久久发布| 精品成人在线观看| 宅男66日本亚洲欧美视频| 久久精品夜色噜噜亚洲aⅴ | 国产精品99久久久久久久女警| 欧美一区二区三区在线| 欧美国产在线观看| 国产麻豆一精品一av一免费| 亚洲国产影院| 欧美在线视频网站| 亚洲视频在线观看三级| 麻豆国产精品777777在线| 国产精品免费看久久久香蕉| 很黄很黄激情成人| 亚洲一区三区视频在线观看| 99国产精品久久久久老师| 久久久久久久尹人综合网亚洲| 欧美色欧美亚洲另类二区| 亚洲第一精品电影| 欧美一区91| 亚洲欧美日韩精品| 欧美女激情福利| 影音先锋成人资源站| 亚洲欧美一区二区三区极速播放 | 99视频精品全国免费| 久久视频这里只有精品| 国产精品网站在线播放| 99精品国产一区二区青青牛奶 | 男男成人高潮片免费网站| 国产日韩欧美黄色| 一片黄亚洲嫩模| 亚洲国产精品成人综合| 久久成人资源| 国产精品免费在线| 亚洲开发第一视频在线播放| 91久久精品www人人做人人爽| 久久久久久久久一区二区| 国产精品自拍一区| 亚洲亚洲精品在线观看| 一区二区三区四区在线| aⅴ色国产欧美| 麻豆av福利av久久av| 国产一区二区精品在线观看| 亚洲女同精品视频| 国产精品日本精品| 亚洲黄色影院| 最新国产の精品合集bt伙计| 久久综合色8888| 国内外成人在线| 久久国产精品一区二区三区| 久久狠狠久久综合桃花| 国产日韩欧美电影在线观看| 亚洲欧美国产另类| 校园春色综合网| 国产精品女主播| 亚洲一区影音先锋| 欧美影院成年免费版| 国产精品自拍在线| 午夜精品在线| 久久久久久久一区二区三区| 国产主播精品在线| 亚洲第一在线| 牛牛国产精品| 91久久精品网| 一区二区日韩免费看| 激情综合在线| 怡红院av一区二区三区| 久久国内精品自在自线400部| 久久久天天操| 一区视频在线看| 亚洲精品国产精品国产自| 欧美精品免费播放| 一区二区三区久久| 性欧美8khd高清极品| 国产欧美一区在线| 欧美一区二区三区四区夜夜大片| 久久久青草婷婷精品综合日韩| 黄色亚洲免费| 亚洲精品视频啊美女在线直播| 欧美激情视频一区二区三区在线播放 | 国内精品免费午夜毛片| 亚洲高清久久久| 欧美激情乱人伦| 一本色道久久综合亚洲精品婷婷 | 激情视频一区二区| 久久欧美肥婆一二区| 激情综合色丁香一区二区| 亚洲日本视频| 欧美日韩一区在线视频| 亚洲一区二区在线看| 久久成人免费网| 亚洲二区在线观看| 亚洲视频1区| 国产偷国产偷亚洲高清97cao| 亚洲韩国日本中文字幕| 欧美日韩精品福利| 欧美一级视频免费在线观看| 久久9热精品视频| 午夜在线视频一区二区区别| 亚洲一区二区av电影| 亚洲欧美日韩在线观看a三区| 国产欧美日韩91| 亚洲国产成人午夜在线一区| 欧美日韩国产色站一区二区三区| 亚洲午夜激情网站| 裸体一区二区| 亚洲视频在线免费观看| 玖玖综合伊人| av成人免费在线| 久久人人爽国产| 99这里只有精品| 久久全国免费视频| 亚洲精品视频一区| 欧美一区二区三区男人的天堂| 亚洲国产成人精品女人久久久 | 欧美日韩四区| 欧美在线免费视频| 欧美日韩在线播放一区| 亚洲大黄网站| 国产精品区一区二区三区| 亚洲国产精品一区二区尤物区| 欧美性做爰毛片| 亚洲欧洲偷拍精品| 国产女主播一区| 一区二区三区国产盗摄| 国产曰批免费观看久久久| 亚洲视频在线观看| 亚洲电影免费在线| 欧美一区二区三区免费大片| 亚洲精品欧美| 另类春色校园亚洲| 亚洲欧美日韩天堂| 欧美日韩亚洲一区二区三区在线 | 亚洲黄色av|