如何理解pca和svd的關系?


主成分分析和奇異值分解進行降維有何共同點?

矩陣的奇異值分解

當矩陣不是方陣,無法為其定義特征值與特征向量,可以用一個相似的概念來代替:奇異值。

通常用一種叫奇異值分解的算法來求取任意矩陣的奇異值:

抽象的概念要用具體的方式理解,來看幾張圖:

上圖中的紅色區域是一個以原點為中心的單位圓。圓當中的任意一點可以用向量 x 標示,且 x 滿足:

給定一個 2×2 的方陣:

 

利用 MATLAB 對 A 做奇異值分解:

即:

 

所以:

先看 V' 對 x 做了什么:

 

V' 使 x 旋轉了一個角度。

 

再看 SV' 對 x 做了什么:

 

S 在 V'x 的基礎上,在兩個主方向進行了伸縮變換。

最后看 USV' 對 x 做了什么:

U 在 SV'x 的基礎上,進行了旋轉變換。

至此,奇異值分解的幾何意義可謂一目了然:

A 是一個線性變換,把 A 分解成 USV',S 給出了變換后橢圓長短軸的長度, U 和 V' 一起確定了變換后的方向,所以 U、S、V' 包含了這個線性變換的全部信息。S 矩陣的對角線元素稱為 A 的奇異值,與特征值一樣,大的奇異值對應長軸,小的奇異值對應短軸,大的奇異值包含更多信息。

當矩陣是對稱方陣時,其特征值與奇異值相等。

網上有一個很經典的案例來說明 SVD 的應用:

有一張 25×15 的圖片:

 

把它用矩陣表示:

這個矩陣的秩等於 3。即矩陣只有 3 種線性無關的列,其他的列都是冗余的:

對 M 做奇異值分解,得到 3 個不為零的奇異值:

它們分別對應着 3 個線性無關的列。

另一種更一般的情況,處理一張有噪聲的圖片

它的奇異值為:

 

可以想象在15維空間中有一個超橢球體,它有15個軸,其中有3個軸是主要的軸(對應着3個最大的奇異值),有這3個軸就可以大致勾勒出超橢球體的形狀,因為它們包含了大部分信息。

如果 S 中的對角線元素從大到小排列,我們就只保留 S 左上角的 3×3 的子矩陣,並相應保留 U 和 V 的前 3 列,簡化后的 U、S、V 依然保留了 M 的大部分信息:

 

主成分分析

案例1

假如有 m 條1維數據,由於混入了噪音,變成了2維。

在坐標系中把他們繪制出來:

主成分分析(PCA)可以用來排除這些噪音,把原來的維度提取出來。

首先將數據歸一化,並將其所包含的信息用 協方差矩陣(協方差矩陣表示不同維度之間的相關關系,這是一個對稱矩陣)來表示:

Σ 有2個奇異值,例如:

顯然前者包含了大部分信息,對應的矩陣 U 的第一列就是主成分的方向:

 

於是就通過降維對數據實現了去噪。

在更一般的情況下,假設有 m 條 n 維的數據,對協方差矩陣進行奇異值分解得到 n 個從大到小排列的奇異值:

如果希望信息利用率在99%以上,可利用如下不等式來確定主成分的維度 p:

 

參見以下鏈接文章.

https://my.oschina.net/findbill/blog/535044


免責聲明!

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



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