主成分分析(PCA)直觀的理解


模型降維(Dimensionality Reduction For Dummies)——直覺

原文地址,不FQ也能看,只是加載的慢。

人類是視覺生物。為了相信我們需要去親自目睹。當你有一個超過三維的數據集時,你就不可能用眼睛去看這堆數據到底表達了什么。但是那些額外的維度真的是必須的嗎?是否有一個方法可以將它降到一維,二維或者人類的三維?確實有這種方法。

主成分分析(PCA)就是專門解決這個問題的。它簡單優雅。不幸的是,簡單並不意味着容易看透和理解。如果你之前接觸過PCA,你可能已經遇到了一堆的數學抽象公式,而無法理解重要的核心思想。或者你所了解的只是沒有數學背景的“外行風格”。再或者,兩者都有一點,中間有一個概念上的鴻溝,這個鴻溝沒有把直覺和嚴謹聯系起來。我盡量避免這個。

降維的主要目標是:找到一個數據的更低維度表示,同時又盡可能的保留更多的信息。這是一個相當大膽的聲明。讓我們看看這是什么意思。

去除冗余

假設我們具有以下某個區域的房屋價值或價格(以千美元為單位)的數據集:

每個記錄有四個屬性的數據集

該數據集具有4個特征(4個維度),不可能整體上以圖形方式可視化。但是,如果您仔細研究這些特征之間和同一個特征的數據之間的關系,您會發現並非所有特征都同樣重要。

例如,您可以通過樓層的數量來標志每個房子嗎?樓層數是否有助於將一所房子與另一所房子區分開?似乎並非如此,因為它們幾乎相等,即它們的方差很小,σ²= 0.2,因此並不是很有用。容納人口怎么樣?它的變化不大,但是它的方差肯定比樓層數大,因此更有幫助。現在,對於最后的兩個特征,面積(σ²= 43)和價格(σ²= 127),它們的變化更大,因此在我們的數據中它們比其他兩個特征更有代表性。

我們可以做一些事情,在不犧牲精確性的情況下,最大限度地利用每個特性。到目前為止,我們已經分別研究了每個特征。他們之間的關系如何?如果仔細看一下前兩個特征(價格和面積),你會注意到該價格大約是面積的兩倍。這是非常有用的,因為我們現在可以從一個特征推導出另一個特征,實際上現在只要一個特征就夠了。這個屬性叫協方差。協方差越高,這兩個特征的相關性就越強,這就意味着數據中存在冗余,因為我們可以從一個特征推導出另一個特征,因此存在比需要的更多的數據。

從前面的討論中,就因該很明顯了:

  • 具有高方差的特征是一件好事,因為它們包含了更多的信息也更重要
  • 具有高度相關的特征或較高的協方差是一件壞事,因為可以在損失少量信息的情況下從一個特征推導出另一個特征,因此將它們保持在一起是多余的。

這就是PCA的作用。它試圖找到數據的另一種表示(另一組特征),以便這種表示中的特征具有最大可能的方差和最小可能的協方差。但在我們親眼看到它之前,還不是很好理解。

見證奇跡的時刻

在訪問PCA時,我問她以下問題:“您的理想數據集是什么樣的?”她給我看了這個:

這很有意義 —— 數據基本上可以簡化為一條線。觀察:沿着 x1方向的方差比沿着 x2 方向的高,這意味着我們可以安全地將 x剔除而沒有太大的危險(“沿着 x1 方向的方差”的意思是第一個特征的方差。因為我們選擇了x1軸來代表它,x2軸也一樣)。而且, x1似乎根本不依賴於 x2,它只會繼續增加而不管 x2的值如何,這意味着協方差相對較低。至於為什么這對於PCA來說是完美的,很簡單,因為她需要做的就是:

將數據集投影到x1軸上

投影之后,數據只有一個維度

了解所發生的事情至關重要。由於 x1x2 重要得多(根據前面所述的兩個條件),因此我們決定僅保留 x1,將數據點投射到其軸上,這相當於僅保留點的 x1 坐標,這也相當於丟棄"不重要"特征 x2。現在我們有一個 1D 數據集,而不是 2D!

這就是特征降維的本質:尋找數據的最佳低維表示。當然,會有一些錯誤,因為我們忽略了第二個特征,該特征由上面的虛線表示。但是由於數據幾乎在一條線上,所以這個誤差被保持到最小,並且這是我們對於給定信息所能做到的最好的結果(稍后會有更多關於這個的討論)。

高潮部分

我問PCA:“那你認為什么是不那么完美的數據呢?這些數據看起來是什么樣的?” 。沒有絲毫的猶豫,她說:“我不認為會有這種事情。每個人都是完美的,你只是需要改變你的視角。來,看看這個。”

她說:”不像以前那么容易了,你不覺得嗎?不。你轉一下頭“

“它實際上和我之前展示的‘完美’數據集是一樣的,只是旋轉了45度。我們所要做的就是旋轉我們自己的軸來與數據集對齊,然后像以前一樣:投影到新的x1軸上,省略新的x2軸。”

重要的是要停下來思考一下這意想不到的變化。就像工程師通常做的那樣,PCA將數據集沒有“對齊”,不太完美的問題簡化為一個完美的、容易解決的“對齊”的問題。

這是怎么發生的?本質上,PCA嘗試查找另一組軸,以使沿該軸的方差盡可能大。當我說“沿 x1軸的方差”時,是指特征 x1的方差。但是在旋轉軸之后,軸失去了意義——它們不再代表x1x2。而是,它們代表了兩者的線性組合。要了解如何做到這一點,請注意上圖中新的x1軸是一條滿足等式的直線:x2=x1x1-x2= 0(相對於舊的特征軸)。x1-x2 = 0只是特征的線性組合,特征的權重分別為1和-1。現在,此旋轉軸表示一個新特征,稱為z1,即:

同樣,旋轉的x2軸現在表示一個新特征,稱為z2

這兩個新方向z1z2就是數據集的 主成分(PC Principal Components)。第一個主成分z1,是方差最大的一個,因此是最重要的一個,攜帶最多的信息,從某種意義上說,這是數據所依賴的。第一個主成分方向上的方差現在被解釋為新組成的特征z1的方差。對於第二個主成分z2,它是與第一主成分垂直的方差第二大的那個。

顧名思義,主成分分析就是要找到這些主成分,這樣我們就可以利用其中的前幾個具有最大方差的主成分來表示我們的數據,就像我們將完美數據集投影到一條直線上所做的那樣。

這很容易推廣到二維以上的情況。我們投影到平面上,而不是直線上,我們完美的3D數據集現在近似地躺在一個平面上(或者,更好的是,一條直線):

如何找到這些魔法線

現在引出正真的麻煩:如何找到這些主要成分?

要解決這個問題就要引出一個主要公式了:

你不知道SVD會詳細討論這個問題。在這個過程中,我們會發現如何將我們的定性直覺轉化為一個優雅的數學結構並推廣到所有維度。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM