统计学习方法第15章作业:SVD的理论与实践及其应用
发布时间
阅读量:
阅读量
SVD矩阵分解
import numpy as np
class SVD:
def __init__(self,x):
self.x = np.array(x)
def get_r_rv(self,x):
x = np.array(x)
s_matrix = x.T.dot(x)
r_list, r_v = np.linalg.eig(s_matrix)
return r_list,r_v
def get_matrix_rank(self):
return np.linalg.matrix_rank(self.x)
def get_V_M(self,x):
r_list, r_v = self.get_r_rv(x)
index_rank = np.argsort(-r_list)
r_list = r_list[index_rank]
r_list_ = r_list[r_list > 0]
r_max = len(r_list_)
V = r_v[:,index_rank]
全部评论 (0)
还没有任何评论哟~
