今天看书,发现svd公式,在网上查阅了一下资料,主要用到如下的两句: 主要是两条语句: from numpy import *; U,Sigma,VT=linalg.svd([[1,1],[7,7]]);
用到的实例(李航《统计学习方法》第15章奇异值分解):
from numpy import * A = array([[1,0,0,0],[0,0,0,4],[0,3,0,0],[0,0,0,0],[2,0,0,0]]) U,sigma,V = linalg.svd(A) U array([[ 0. , 0. , -0.4472136 , 0. , -0.89442719], [-1. , 0. , 0. , 0. , 0. ], [ 0. , -1. , 0. , 0. , 0. ], [ 0. , 0. , 0. , 1. , 0. ], [ 0. , 0. , -0.89442719, 0. , 0.4472136 ]])
sigma array([ 4. , 3. , 2.23606798, -0. ])
V array([[-0., -0., -0., -1.], [-0., -1., -0., -0.], [-1., -0., -0., -0.], [-0., -0., -1., -0.]])