Pca

理解主成分分析、特徵向量和特徵值

  • September 15, 2010

在今天的模式識別課上,我的教授談到了 PCA、特徵向量和特徵值。

我理解它的數學原理。如果我被要求找到特徵值等。我會像機器一樣正確地做。但我不明白。我沒有明白它的目的。我沒有感覺到它。

我堅信以下引用:

除非你能向你的祖母解釋,否則你並不真正理解某事。 - 艾爾伯特愛因斯坦

好吧,我無法向外行或祖母解釋這些概念。

  1. 為什麼選擇 PCA、特徵向量和特徵值?對這些概念有什麼需求?
  2. 你會如何向外行解釋這些?

想像一下一場盛大的家庭晚餐,每個人都開始向您詢問有關 PCA 的問題。首先你向你的曾祖母解釋過;然後給你祖母;然後給你媽媽;然後給你的配偶;最後,送給你的女兒(她是一名數學家)。每次下一個人都少了一個門外漢。以下是對話的方式。

曾祖母:聽說你在學“Pee-See-Ay”。我想知道那是什麼…

**你:**啊,就是總結一些數據的方法。看,我們的桌子上放著一些酒瓶。我們可以通過顏色、烈度、年份等來描述每種葡萄酒。 可視化最初在這裡找到。Color of Wine Chart

我們可以列出酒窖中每種葡萄酒的不同特徵。但其中許多將測量相關屬性,因此將是多餘的。如果是這樣,我們應該可以總結出每一款酒的特點都比較少!這就是 PCA 所做的。

奶奶:這很有趣!那麼這個 PCA 東西會檢查哪些特徵是冗餘的並丟棄它們?

**你:**很好的問題,奶奶!不,PCA 沒有選擇某些特徵並丟棄其他特徵。相反,它構建了一些新的特徵,這些特徵最終很好地總結了我們的葡萄酒清單。當然,這些新特性是使用舊特性構建的;例如,一個新的特徵可能被計算為葡萄酒年齡減去葡萄酒酸度水平或其他類似的組合(我們稱之為線性組合)。

事實上,PCA 找到了可能的最佳特徵,即總結葡萄酒列表的特徵以及唯一可能的特徵(在所有可能的線性組合中)。這就是它如此有用的原因。

母親:嗯,這聽起來確實不錯,但我不確定我是否理解。當您說這些新的 PCA 特徵“總結”了葡萄酒清單時,您的實際意思是什麼?

**你:**我想我可以對這個問題給出兩個不同的答案。第一個答案是您正在尋找一些葡萄酒特性(特徵)在葡萄酒之間存在很大差異。事實上,想像一下你想出一個與大多數葡萄酒相同的屬性。這不會很有用,不是嗎?葡萄酒非常不同,但您的新財產讓它們看起來都一樣!這肯定是一個糟糕的總結。相反,PCA 會尋找盡可能多地表現出葡萄酒差異的屬性。

第二個答案是您尋找可以讓您預測或“重建”原始葡萄酒特徵的屬性。再一次,假設你想出了一個與原始特徵無關的屬性;如果你只使用這個新屬性,你就無法重建原來的屬性!這又是一個糟糕的總結。因此,PCA 尋找允許盡可能重建原始特徵的屬性。

令人驚訝的是,事實證明這兩個目標是等效的,因此 PCA 可以用一塊石頭殺死兩隻鳥。

配偶:但是親愛的,PCA 的這兩個“目標”聽起來如此不同!為什麼它們是等價的?

**你:*嗯。或許我應該畫一點(拿一張餐巾紙開始塗鴉)*。讓我們挑選兩個葡萄酒特徵,也許是葡萄酒的深色和酒精含量——我不知道它們是否相關,但讓我們想像一下它們是相關的。以下是不同葡萄酒的散點圖:

PCA exemplary data

這個“酒雲”中的每個點都顯示了一種特定的酒。您會看到這兩個屬性 (X $ x $ 和是 $ y $ 在這個數字上)是相關的。一個新的屬性可以通過在這個酒雲的中心畫一條線並將所有點投影到這條線上來構建。這個新屬性將由線性組合給出在1X+在2是 $ w_1 x + w_2 y $ ,其中每一行對應於一些特定的值在1 $ w_1 $ 和在2 $ w_2 $ .

現在仔細看這裡——下面是這些投影對於不同線條的樣子(紅點是藍點的投影):

PCA animation: variance and reconstruction error

正如我之前所說,PCA 將根據“最佳”的兩個不同標準找到“最佳”線。首先,沿著這條線的值的變化應該是最大的。注意紅點的“點差”(我們稱之為“方差”)隨著線的旋轉是如何變化的;你能看到它什麼時候達到最大值嗎?其次,如果我們從新的特徵(紅點的位置)重構原始的兩個特徵(藍點的位置),重構誤差將由連接紅線的長度給出。觀察這些紅線的長度是如何隨著線的旋轉而變化的;你能看到總長度何時達到最小值嗎?

如果你盯著這個動畫看一段時間,你會注意到“最大方差”和“最小誤差”同時達到,即當線指向我在酒雲兩側標記的洋紅色刻度時. 這條線對應於將由 PCA 建造的新葡萄酒產地。

順便說一下,PCA 代表“主成分分析”,這個新屬性被稱為“第一主成分”。而不是說“屬性”或“特徵”,我們通常說“特徵”或“變量”。

女兒:很好,爸爸!我想我明白為什麼這兩個目標會產生相同的結果:本質上是因為畢達哥拉斯定理,不是嗎?無論如何,我聽說 PCA 在某種程度上與特徵向量和特徵值有關;他們在這張照片上的什麼位置?

**你:**精彩的觀察。在數學上,紅點的散佈是用酒雲中心到每個紅點的平均平方距離來衡量的;如您所知,它被稱為方差。另一方面,總重構誤差被測量為相應紅線的平均平方長度。但是因為紅線和黑線之間的夾角總是90∘ $ 90^\circ $ ,這兩個量之和等於酒雲中心到每個藍點的平均平方距離;這正是畢達哥拉斯定理。當然,這個平均距離不取決於黑線的方向,所以方差越大,誤差越低(因為它們的總和是恆定的)。這種手搖的論點可以變得精確(見這裡)。

順便說一下,你可以想像黑線是一根實心桿,每條紅線都是一個彈簧。彈簧的能量與其長度的平方成正比(這在物理學中被稱為胡克定律),因此桿將自行定向,以使這些平方距離的總和最小化。在存在一些粘性摩擦的情況下,我模擬了它的外觀:

PCA animation: pendulum

Regarding eigenvectors and eigenvalues. You know what a covariance matrix is; in my example it is a 2×2 $ 2\times 2 $ matrix that is given by (1.070.630.630.64).$$ \begin{pmatrix}1.07 &0.63\0.63 & 0.64\end{pmatrix}. $$ What this means is that the variance of the x $ x $ variable is 1.07 $ 1.07 $ , the variance of the y $ y $ variable is 0.64 $ 0.64 $ , and the covariance between them is 0.63 $ 0.63 $ . As it is a square symmetric matrix, it can be diagonalized by choosing a new orthogonal coordinate system, given by its eigenvectors (incidentally, this is called spectral theorem); corresponding eigenvalues will then be located on the diagonal. In this new coordinate system, the covariance matrix is diagonal and looks like that: (1.52000.19),$$ \begin{pmatrix}1.52 &0\0 & 0.19\end{pmatrix}, $$ meaning that the correlation between points is now zero. It becomes clear that the variance of any projection will be given by a weighted average of the eigenvalues (I am only sketching the intuition here). Consequently, the maximum possible variance (1.52 $ 1.52 $ ) will be achieved if we simply take the projection on the first coordinate axis. It follows that the direction of the first principal component is given by the first eigenvector of the covariance matrix. (More details here.)

You can see this on the rotating figure as well: there is a gray line there orthogonal to the black one; together they form a rotating coordinate frame. Try to notice when the blue dots become uncorrelated in this rotating frame. The answer, again, is that it happens precisely when the black line points at the magenta ticks. Now I can tell you how I found them (the magenta ticks): they mark the direction of the first eigenvector of the covariance matrix, which in this case is equal to (0.81,0.58) $ (0.81, 0.58) $ .


Per popular request, I shared the Matlab code to produce the above animations.

引用自:https://stats.stackexchange.com/questions/2691

comments powered by Disqus