奇異值分解 SVD 的數學解釋和numpy例項

2021-08-07 10:23:08 字數 848 閱讀 9589

reference:  

奇異值分解(singular value decomposition,svd)是一種矩陣分解(matrix decomposition)的方法。除此之外,矩陣分解還有很多方法,例如特徵分解(eigendecomposition)、lu分解(lu decomposition)、qr分解(qr decomposition)和極分解(polar decomposition)等。這篇文章主要說下奇異值分解,這個方法在機器學習的一些演算法裡占有重要地位。

python 中可以使用 numpy 包的linalg.svd()來求解 svd。

import numpy as np

a = np.array([[2, 4], [1, 3], [0, 0], [0, 0]])

print(np.linalg.svd(a))

輸出

(array([[-0.81741556, -0.57604844,  0.        ,  0.        ],

[-0.57604844, 0.81741556, 0. , 0. ],

[ 0. , 0. , 1. , 0. ],

[ 0. , 0. , 0. , 1. ]]),

array([ 5.4649857 , 0.36596619]),

array([[-0.40455358, -0.9145143 ],

[-0.9145143 , 0.40455358]]))

數學基礎 奇異值分解SVD

之前看到過很多次奇異值分解這個概念,但我確實沒有學過。大學線性代數課教的就是坨屎,我也沒怎麼去上課,後來查了點資料算是搞清楚了,現在寫點東西總結一下。奇異值分解,就是把乙個矩陣拆成一組矩陣之和。在數學裡面,因式分解,泰勒展開,傅利葉展開,特徵值分解,奇異值分解都是這個路數。就是把當前資料表示成一組某...

奇異值分解 SVD

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

SVD奇異值分解

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