機器學習中SVD和PCA一直沒有搞的特別清楚,應該如何理解呢?

時間 2021-05-06 02:21:55

1樓:江南周公子

PCA目的是使得降維後的方差最大, 用SVD可以求出協方差矩陣的右奇異矩陣,PCA演算法可以不用做特徵分解,而是做SVD來完成

2樓:張良懷

雖然SVD分解和PCA是兩個相關性很強的概念,但是他們其實不是對等層級的概念

PCA是一種機器學習方法,他通過求特徵的協方差,對其協方差矩陣進行特徵分解。所以PCA使用了矩陣分解(特徵分解)的手段,實現一種特徵降維和主成分分析的效果。

SVD本身是一種矩陣分解方法,可以認為是一種線性代數領域的數學手段,它其實是和PCA中用到的特徵分解是對等的概念,都是一種矩陣分解的方法。

矩陣的分解存在多種方法:

對於方陣,可以進行特徵分解;

對於非方陣,不能進行特徵分解,可做SVD分解。

因為PCA是對特徵的協方差矩陣做分解,而協方差矩陣必為方陣,所以肯定是可做特徵分解的。這也是PCA的直接解法。

而SVD分解,常是用在直接對特徵矩陣本身進行分解。

特徵矩陣,一般行數表示樣本數量,列數表示特徵數量,對N個樣本,特徵維度為M的矩陣A,其SVD分解可表示為:

U的維度為(N,N),其實就是 的特徵分解矩陣,V的維度為(M,M),其實就是 的特徵分解矩陣(具體如何證明這裡不詳細講,但是大家可以通過下標的關係,去記憶這個對應關係)。

這就巧了,PCA裡面需要求特徵的協方差矩陣,那不就是我們要的 嗎?(注意這個A需要先減均值去中心化),所以SVD就可以恰巧解決PCA的問題了。SVD分解後的右奇異矩陣,對應著PCA所需的主成分特徵矩陣

但是這個結論,我相信強迫症看到肯定不爽。右奇異矩陣好像有一點多餘??

其實不多餘,左奇異矩陣對應著對特徵維度進行PCA的特徵矩陣,右奇異矩陣對應著對樣本維度進行PCA的特徵矩陣。

同樣,特徵的協方差矩陣是,而其實就是樣本的協方差矩陣。

(這裡的前提是,矩陣表示資料集時,每列代表乙個特徵,每行代表乙個樣本。如果表示上關係調換了,也就是說矩陣做了轉置,那麼左右奇藝矩陣代表的含義也會對掉。)

這樣看的話,理論是不是就完整優雅了?

3樓:HarryYang

我怎麼覺得大多數答主回答的都和我理解的不一樣呢?

PCA是一種統計方法,所謂的principal components是作者的定義,就是X矩陣中主導資訊的幾個成分。

SVD是PCA的實現方法,其本身定義是矩陣的一類分解。PCA就像建築專業,是設計建築的。SVD是土木專業,看懂建築圖紙,實現這一工程的。

4樓:Chenllliang

對於特徵降維來說二者的結果是一樣的。為什麼?

設資料矩陣 的維數為 , 為樣本數量, 為特徵維度。

PCA 的想法是求 的協方差矩陣 的特徵值最大的k個特徵向量。因為協方差矩陣是乙個實對稱矩陣,可以分解出 p 個線性無關的特徵向量,因為線性無關所以這些特徵向量在原始空間裡是正交的,符合PCA原始的要求,在正交條件下找K個方差最大的方向。

而SVD在降維的時候求的是 和 這兩個對稱陣的特徵向量,最後求出的奇異值實際上是 即右奇異矩陣(和協方差矩陣只差乙個係數)的特徵值的平方根,並且是按照大小排列的。 現在就不難看出,降序排列下,同位置的奇異值和協方差矩陣的特徵值對應的特徵向量是相同的,只不過差別了乙個係數 ,所以說如果都取前k個最大的,那麼最後k個正交基應該是相同的。

額外說一點,PCA和SVD特徵降維本質上其實都是假設了最優基是正交的這個前提條件,所以可以利用實對稱矩陣的特徵值分解來解決。而這個前提條件可能並不正確,因為最優的一組基完全可能不是正交的。(個人實驗也發現有的時候截斷SVD比SVD效果更好,說明正交基不一定最優,因為截斷SVD做了運算簡化)

除了特徵降維,SVD由於還計算了左奇異矩陣,還可以對 進行降維,這被應用在了推薦系統中。

5樓:夜吾夜

PCA是主成份分析,是一種線性降維的方法。SVD是矩陣分解的一種方式。二者之間的聯絡在於SVD可以用來做PCA(當然SVD也有很多其他的用途)。

事實上,上面回答中提到的用XXT的特徵值分解與X的奇異值分解兩種辦法來求Y=PX中的變換矩陣P,是一種方法。

6樓:兩尺

稍微有點線性代數基礎,再看這篇文章CodingLabs - PCA的數學原理,幫你理清向量基變換和協方差矩陣,就能理解PCA了

7樓:潘曉

8樓:

blog.csdn.net/Dark_Scope/article/details/53150883剛寫了篇部落格,希望有幫助。

9樓:張大帥

每一條訓練資料可以看做是高維空間中的乙個點,空間需要一組基來表示。通俗的說,就是座標軸。原始特徵的表示並不一定好。

pca可以理解為給資料找一組新的基,通常這組新的基比原來維度低,即傳說中的降維。這樣要解決的事情就是用比原來少的維度,還能刻畫原來的資料。怎麼做?

svd就是一種方法。svd分解之後,保留奇異值最大的那部分,就實現了這一點,因為奇異值大的那部分「更能代表原來的資訊」。

降維有什麼用?一方面是可以降低訊雜比,讓資料更容易被學習,其實就是對資料進行了一次去冗,通俗的說就是撈幹的。另外也是為了效能,畢竟維度太高是算不動的。

EVA中,為什麼真希波一直沒老?

沈俊俊 劇場版裡借用了部分漫畫版的設定,應該也是乙個本體的轉殖體,但是保有了本體的記憶,或者是本體將意識傳給這個轉殖體進入NERV,如果是唯當時的學妹,那時候根本沒開始eva的製造,更別說有什麼作為駕駛員了,時間對不上的 我認為痞子就是在影射觀眾,Q和老劇場版正好相隔14年。痞子非常不希望EVA變成...

俄語中的字首 , , , , , , 這些區別是什麼?一直沒搞清楚這些字首?

凱麗的咖哩鴨 有專門歸納詞根詞綴的詞典可以去找一下,yandex上面直接搜詞也很快,最後還是得自己去理解,其實多見一些字首之後自己就能區分開了,加油。 以沫 1,和 是一對相反意義的字首,表示進入到某處,而 表示從某處出來 2,和 是一對相反意義的字首,y表示從某處離開,而 表示到達 3,表示穿過,...

高中數學,一直卡在110多的困境中,基本沒怎麼上過120,如何進一步提公升?

冰晶凝星 當前 110 120 建議 多看書,複習錯題!看書是把基礎給打好,很多你這個分數段的學生的基礎是不紮實的,前面的題會因 不仔細 出錯,這個時候就要多看書,同時總結乙個錯題本,經常翻看,考試時爭取做對除了12,16,20,21之外的題,上120沒問題。大概一段時間後 120 130 建議 多...