Advertisement

统计学习方法第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)

还没有任何评论哟~