奇異值分解 SVD 原理與在降維中的應用

2021-09-23 13:27:09 字數 663 閱讀 5363

在主成分分析(pca)原理總結中,我們講到要用pca降維,需要找到樣本協方差矩陣xtxxtx的最大的d個特徵向量,然後用這最大的d個特徵向量張成的矩陣來做低維投影降維。可以看出,在這個過程中需要先求出協方差矩陣xtxxtx,當樣本數多樣本特徵數也多的時候,這個計算量是很大的。

注意到我們的svd也可以得到協方差矩陣xtxxtx最大的d個特徵向量張成的矩陣,但是svd有個好處,有一些svd的實現演算法可以不求先求出協方差矩陣xtxxtx,也能求出我們的右奇異矩陣vv。也就是說,我們的pca演算法可以不用做特徵分解,而是做svd來完成。這個方法在樣本量很大的時候很有效。實際上,scikit-learn的pca演算法的背後真正的實現就是用的svd,而不是我們我們認為的暴力特徵分解。

另一方面,注意到pca僅僅使用了我們svd的右奇異矩陣,沒有使用左奇異矩陣,那麼左奇異矩陣有什麼用呢?

假設我們的樣本是m×nm×n的矩陣x,如果我們通過svd找到了矩陣xxtxxt最大的d個特徵向量張成的m×dm×d維矩陣u,則我們如果進行如下處理:

x′d×n=utd×mxm×nxd×n′=ud×mtxm×n

可以得到乙個d×nd×n的矩陣x『,這個矩陣和我們原來的m×nm×n維樣本矩陣x相比,行數從m減到了d,可見對行數進行了壓縮。也就是說,左奇異矩陣可以用於行數的壓縮。相對的,右奇異矩陣可以用於列數即特徵維度的壓縮,也就是我們的pca降維。    

奇異值分解 SVD 原理與在降維中的應用

奇異值分解 singular value decomposition,以下簡稱svd 是在機器學習領域廣泛應用的演算法,它不光可以用於降維演算法中的特徵分解,還可以用於推薦系統,以及自然語言處理等領域。是很多機器學習演算法的基石。本文就對svd的原理做乙個總結,並討論在在pca降維演算法中是如何運用...

奇異值分解 SVD

最近不小心接觸到了svd,然後認真看下去之後發現這東西真的挺強大的,把乙個推薦問題轉化為純數學矩陣問題,看了一些部落格,把乙個寫個比較具體的博文引入進來,給自己看的,所以把覺得沒必要的就去掉了,博文下面附原始部落格位址。一 基礎知識 1.矩陣的秩 矩陣的秩是矩陣中線性無關的行或列的個數 2.對角矩陣...

SVD奇異值分解

原文出處 今天我們來講講奇異值分解和它的一些有意思的應用。奇異值分解是乙個非常,非常,非常大的話題,它的英文是 singular value decomposition,一般簡稱為 svd。下面先給出它大概的意思 對於任意乙個 m n 的矩陣 m 不妨假設 m n 它可以被分解為 m udv t 其...