主成分分析PCA演算法 為什麼去均值以後的高維矩陣乘以其協方差矩陣的特徵向量矩陣就是「投影」?

時間 2021-05-09 20:55:04

1樓:WEARE

簡單點來講,把PCA轉換成乙個contrarined optimization的問題,使用lagrange multiplier,會發現剛好eigenvector的方向會讓variation最大.

2樓:

PCA的目的就是將樣本點(向量)向資料方差最大的方向投影,而樣本協方差矩陣的特徵向量就是方差依此最大的方向,因此樣本矩陣乘以特徵向量矩陣可得到降維的樣本矩陣。

3樓:不上鏡的某同學

最近在看PRML的PCA那一章,覺得講得特別清楚也特別自然,簡單轉述一下書裡的推導,也寫寫自己的看法吧。所引用的公式基本都是書裡的。

首先我們要知道推導PCA公式的目的和出發點是什麼,我們想要將原始資料(假設是D維),降到乙個比較低的維度空間中(假設是M維),如果想要將資料點在某個空間中表示出來,我們就需要知道構成這個空間的基向量(basis vector)是什麼。假設這個M維的低維空間的基是:

因此對於乙個資料點 ,我們可以將其表示為:

其中小括號內的部分是乙個scalar,就是該資料點在某個basis vector上的投影,投影的值再乘上這個方向上的單位向量,就成了資料點這個方向上的分量,將所有方向上的分量加到一起,就重建出了原始向量。

舉乙個簡單的例子,以二維空間為例,在座標系裡我們表示乙個點,例如(1,2)時,會用到該二維空間的兩個basis vector,也就是(1,0)和(0,1),分別是X軸和Y軸上的單位向量,點(1,2)在X軸的投影為1,在Y軸的投影為2,因此按照上面的寫法,我們可以將(1,2)這個點寫作:

既然要降維,那一定是要捨棄掉某些維度保留另外的維度,那麼如何去尋找這些維度?

還是假設原始資料是D維,我們需要保留M維,按照這樣的降維邏輯,對於任意的乙個資料點都可以用如下的式子來表示:

即PRML中的式(12.10)。這個式子很重要,也是所有推導的出發點

按照書上給出的解釋,我們只將資料在我們關心的這M個維度上進行投影,在其他的維度的投影我們用乙個常數去表示(注意不是直接去掉),這個常數就是樓主想要問的平均值的來歷。這也是為什麼等號右邊第一項的投影z有下標n而第二項b沒有的原因,因為第一項的投影是隨資料點的變化而變化的,而第二項是不隨資料點變化的。

到這裡為止都沒有特徵向量出現,特徵向量出現在下面的推導。

剛才這個式子只是乙個原始的數學模型,我們需要去具體求解這些basis vector究竟是什麼。(站在上帝視角也就是證明這些basis vector為什麼是協方差矩陣的特徵向量)對於變換之後的資料我們當然希望損失的資訊越少越好,也就變換後的向量和變換前的向量的差值(採用L2 norm)應該盡可能的小,因此我們很容易找到需要最小化的目標函式(省略了前面的常數項):

將原始資料也寫成兩項和的形式,然後將前面的式子帶入J的表示式我們就能得到:

其中:這裡將其中乙個求和吸收到了矩陣運算中,這裡的S就是協方差矩陣(省略了前面的常數)。可以看到損失函式完全依賴於basis vector,因此可以求解出最優的投影方向。為此我們需要知道basis vector 所滿足的正交歸一化條件,即:

利用拉格朗日乘子考慮極小化以下式子:

因為這裡不同的basis vector之間並沒有耦合在一起,因此這個式子可以拆開來一項一項優化,舉其中一項為例:

對basis vector求導並令導數為0可以得到:

這下看得很明白了,這不就是S的特徵向量嗎!引入的拉格朗日乘子中的常數就是特徵值

我們還可以將這個式子帶入到J的表示式中得到:

可以看到損失函式與特徵值有關係,因此如果要最小化損失函式的話,我們應該讓這個特徵值盡可能的小。注意這裡的特徵值所對應的特徵向量是剩下的那(D-M+1)個,因此我們捨棄掉後(D-M+1)個特徵向量,取前D個特徵向量作為我們的basis vector。

至此,我們就推導出了為什麼PCA給出的投影方向是協方差矩陣的前K個特徵向量了:因為要最小化重構誤差。

對於題主提出的第乙個問題,我猜可能是因為混淆了重構原資料投影原資料這兩個概念(不知道理解的對不對)。

當我們用PCA降維時(也就是題主所說的用原始高維矩陣去乘以特徵向量所構成的低維矩陣),我們實際得到的資料點是下面這個樣子:

這個是我們得到的投影後的資料,也就是我們用PCA希望得到的降維資料,你可以自行選擇M的值以得到期望的維度數。因此這個時候的資料點和原始資料的維度是不一樣的。但是用這個低維度的空間來重構原始資料的時候卻是這個樣子(當然這個是丟失了部分資訊的):

這個時候不管M的值是多少,重構出來的資料和原始資料的維度都是一樣的。

如果希望得到沒有損失的資料,也就是原始資料,應該用這個式子來重構:

講到這裡我們發現,其實「降維」這個觀念在PRML的PCA 推導過程中體現的並不是很明顯,因為我們只是假設資料在某些方向的投影是data-dependent,有些是常數,並沒有直接將這些維度去掉(之所以這麼做感覺是為了盡可能的減少誤差),「降維」這個點出現在之後的投影中,我們有選擇性的將原始資料投影到一部分的基底上,因此得到了資料的低維度表示。 我個人更願意將PCA理解為:用數量更少的,與原始資料維度相同的,相互正交的單位向量的線性組合去盡可能地逼近原始資料。

總得來說,投影在PCA的推導和應用都是很重要的乙個知識點,PCA的推導其實是在做一系列座標與基底之間的變換,在得到了想要的基底之後,直接做投影就行了。至於為什麼高維度的原始資料矩陣乘以特徵向量的矩陣就是最後的投影,題主將我上面寫的那個降維得到的資料點的式子寫成矩陣的乘法就知道原因了。

另外補充一點,關於計算的時候去不去平均值的問題,我個人認為是一定要去的,因為從推導中我們能看出來所求的特徵向量是基於協方差矩陣的,而協方差矩陣的定義中就去掉了平均值。

4樓:sudit

我覺得可以先從簡單點的資料來看要直觀一點,比如下面這個二維的資料集,如果要降維成乙個維度的資料,可以向橫軸或者縱軸作投影(當然其他軸也可以)。

但是從投影效果來看的話,橫軸投影的資料點要分散得更開一些,相對的縱軸投影基本上都聚到一堆了。這就說明不同方向的投影存在效果上的差異,至於怎樣的投影才是好的投影呢?可以假想兩個極端點的情況,一種是投影後的資料都等於乙個值,另一種是投影後的所有數值都不一樣,顯然後一種才是我們想要的。

所以為了衡量投影效果,我們可以引入方差這個概念作用在投影後的資料上,因為方差本身就度量的資料的離散程度。

確定了基本目標之後,現在我們來考慮獲取投影後資料的問題,如果是像剛才的散點圖,那麼直接用橫座標值就可以了。但是往往問題沒那麼簡單,比如下面這堆資料點就不能這樣辦。

但是這也不複雜,直接把點投影到斜線上,然後再計算投影點到原點的帶符號距離就可以了。但這就需要先計算投影點的座標,為了偷懶,我們可以定義一條與原投影直線相垂直的直線,然後假設這條直線的方程為

並且還規定 。於是對於任何乙個資料點 , 剛才我們提到的帶符號距離就可以表示成

用這個帶符號距離作為降維後的資料,就完成了投影這一步。接下來的任務就是找到這樣的 (其實這條直線並不是投影直線,而是投影直線的垂線,不知不覺就偷換了概念。。)。

定義資料集 ,那麼我們的任務就變成了尋找 使得 具有最大值。

有了這一基本概念之後,現在可以把問題提到高維空間中去了,其實本質沒變,但是通用性要高一點。假設原始資料維度為 d,原始資料矩陣為

按列分組後寫成

它的協方差矩陣為

好了,現在的帶符號距離值就可以寫成

向量形式為

用矩陣符號表示的話

下面我們將證明 的最大值為 的最大特徵值。根據方差的性質

容易知道協方差矩陣 為實對稱矩陣,於是它擁有一組可以作為單位正交基的特徵向量

滿足以及相對應的特徵值

並不失一般性的假設

利用這組基向量,我們可以將 分解成

那麼其中 是最大的特徵值,上述公式取等號的條件是,與 相對應的係數 為 1,其他的係數為 0,這時有 。再考慮到約束

於是可以得出結論

並且當 時,等號成立,對應的 就為

從這裡你就看到了一絲端倪,所謂的 「原來的高維矩陣(去均值以後)乘以這個「k個特徵向量分別作為列向量組成特徵向量矩陣」」已初具雛形。這裡得到的 其實是第一主成分。下面我們再計算第二主成分,同樣是要找到一條直線或者超平面來計算帶符號距離,但是它必須要和計算第一主成分時的基線正交,否則得到的第二主成分將有一部分含有第一主成分的資訊。

於是計算第二主成分的超平面係數向量 必須滿足條件

以及當然

接下來我們將證明,滿足上述條件的 必然使 的最大值為 第二大的特徵值 ,並且 。首先對 進行分解

考慮到 與 正交,所以

也就是說,第乙個方向上的分量為 0。然後根據方差的性質

同樣,根據 ,可得

於是有其中取等號的條件是,不等式中 , 其餘係數為 0。於是我們就證明了,當 時, 取得最大值 。

基於同樣的方法,我們還能尋找第三主成分,第四主成分等等。將這些主成分 按列合併,形成新的資料矩陣

也就是說

如果你把 理解成代表低維空間的矩陣的話,那麼確實「把高維空間裡的向量投影到低維空間,就是用這個高維向量乘以代表這個低維空間的矩陣就行了」。按照史博的說法,上面的推導算是理解主成分分析的第一和第二層境界吧。

至於為何要有去均值這個操作?我認為是由於需要對資料進行歸一化的關係,因為原始資料每個維度上的數值量級很可能不一樣,如果不歸一化,它們的方差就沒有可比性了。而為了歸一化,首先去均值,應該要方便一點。

5樓:圓的哲思

去均值後的原始矩陣乘以k個特徵向量組成的矩陣,得到原始矩陣的投影。實際上是將中心化的原始矩陣投影到特徵基準上,去除資料相關性。

6樓:小楊

今年做畢業設計時用到KPCA(核主成分分析)和主成分分析(PCA),當時思考了一下,收穫了不少。現看到這個題目,試著回答一下,算是提供一種思路吧。

以下正文:

首先PCA的目的是資料維數壓縮,盡可能降低原資料的維數,但要不損失資訊或者損失少量資訊。為此,它在後面處理時選擇了特徵值最大(目前我的理解是絕對值最大)的特徵值對應的特徵向量組成變換矩陣。

可以說PCA基於一點假設,即認為資料在各維上是隨機的(或者說每個資料看成乙個隨機向量),然後構建協方差矩陣。這個協方差矩陣是對稱矩陣,主對角元素是各維資料的方差,而其他的則是各維資料之間的協方差,反映了各維資料之間的「線性」相關性,並且不為零時說明存在著相關性,那麼也就存在著「冗餘資訊」(可以聯想解線性方程組時的多餘/無效方程組)。

維數壓縮,那麼就要去掉/捨棄多餘的維(或者說不太重要、影響小的維)!那麼先去掉各維之間的相關性,那麼最好是全部去掉相關性,即使得壓縮後的資料的協方差矩陣能是乙個對角陣那該多好啊(^_^)!

這就是PCA的思想。

那我們就試著把目標資料(變換後的資料)的協方差矩陣變成乙個對角陣!於是可以描述為:給定資料集X,求線性變換使得變換後的資料集的協方差矩陣是乙個對角陣。

下面就是矩陣對角化的問題了。簡單推導一下以更加理解:

資料集X為N個M維的特徵資料構成的M*N的矩陣,記是乙個M維隨機向量,表示變換後的資料向量,CX和CY分別表示原資料(隨機向量)和變換後資料(隨機向量)的協方差矩陣。有:

將CX對角化,即

矩陣B為Cx的特徵列向量構成的可逆矩陣。可見,當B為正交陣(先相似求特徵向量再正交化)時,若取即為變換矩陣,它可使協方差矩陣

即達到了要求。此時沒有進行壓縮。

取,那麼A也是正交陣,或者至少是正交向量組構成的矩陣。然後選擇特徵值最大(目前我的理解是絕對值最大)的K個特徵值對應的特徵向量(注此時的特徵向量已經不再是原來的特徵向量了,是正交化後的向量,正交化後的向量是原來特徵向量的線性組合,仍然是和與原特徵值對應的特徵向量)進行投影得到新資料,也就是PCA處理後的資料。

首先說明:這裡的投影,實質上是做內積運算,即資料向量(組)和特徵向量(組)之間點積運算(用向量組的話通過矩陣乘法可以一次性變換所有的資料!)。

下面進行對映/投影。

一般我們計算得到的特徵值和特徵向量,然後正交化、單位化後得到矩陣B,我們假設已經對B按特徵值絕對值大小排好順序,從正交矩陣B中取K個特徵向量,組成矩陣,它是乙個M*K(K≤M)的矩陣,矩陣中的K個單位正交列向量組就是投影所選擇的方向。

投影:

這裡是乙個K維列向量。即對映/投影時,是用矩陣的轉置去乘以原資料,這樣仍然得到乙個列向量,或者用原資料去乘以矩陣,這樣得到的是乙個行向量即。

【說明】:直接用矩陣的轉置去乘資料,將同時得到變換後資料的K個維的值,如果只取其中乙個向量,則只能得到新資料的乙個維的值。可以參考直角座標系,取向量(2,3),目標向量組取x、y軸的單位向量,列向量的兩維分別表示x和y值,即有

【如果把原資料以列(行)向量形式組成乙個矩陣X,那麼將一次性得到所有變換後的資料,並且也是列(行)向量形式。】

回到問題。

1——「對映後的低維空間」:

我們先假設沒有進行正交化,直接用Cx的特徵向量進行投影,那麼根據向量空間的知識,「低維空間下」就是所選的Cx的特徵向量構成的空間。

於是現在正交化了,那麼就是由所選的特徵向量正交化後的向量構成的空間,此時向量間是正交且是單位的,而原特徵向量則不一定正交(對於實對稱矩陣,取決於其特徵值的特點,互不相同則必正交,存在重根則必不完全互相正交)。

所以「對映後的低維空間」是乙個以B的列向量為基(是單位正交向量組)的線性空間,基的列向量之間相互正交。

2——「…相乘就是投影」

如上面解釋的那樣,那樣運算,才是投影運算;並且按題主所說"資料乘以向量組",那麼在原資料是列向量時得到的新資料是行向量形式。

最後,扯一點其他的,MATLAB中有求特徵值和特徵向量組的函式(是eig),那個其實已經做好了正交化工作。

(首答)

主成分分析PCA演算法 為什麼要對資料矩陣進行均值化?

我叫平沢唯 只有居中,才能使均方誤差最小 以下來自位維基百科 多維資料處理之主成分分析 PCA 我叫平沢唯 部落格園 劉理理 PCA可以從SVD演變過來,SVD其實就是在單位圓上找乙個向量,讓資料X在其上的投影的長度平方和最大化,非中心化時中心偏移了 0,0 這時候也可以找那個最大化投影,但不能準確...

如何通俗易懂地講解什麼是 PCA 主成分分析?

白瞳西伯利亞騎士 橫看成嶺側成峰,遠近高低各不同。樣本的差異資訊分散在各個維度上,旋轉一下角度,原來分散的樣本資訊集中到了少數新維度上,捨棄其他維度,資訊損失很少,達到降維的目的。樣本差異資訊就是方差,新的維度就是主成分,是舊維度的線性組合。有多少個舊維度就能構建多少個新維度,彼此不相干,叫作正交。...

PCA(主成分分析)和EOF(經驗正交函式分解)有什麼區別?

tina 我理解的PCA和EOF都是一回事,EOF本身就是多元統計分析中的主分量分析PCA在氣象場序列中的應用,多元正態變數X x1,x2,x3,xp 可理解為空間上網格點資料序列,也可理解為任何一組具有不同物理意義的多元正態變數。EOF著重是分解,對於任一網格點的原序列而言,X LY將氣象場要素X...