python不同库里的svd

#from scipy.linalg import svd
#from scipy.sparse.linalg import svds
#from numpy.linalg import svd

上述三者的区别在于:

scipy.linalg.svd(data_matrix_array_like, full_matrices=True, compute_uv=True, overwrite_a=False, check_finite=True, lapack_driver=‘gesdd’)
只能通过full_matrices调整s中元素的数量,If True (default), U and Vh are of shape (M, M), (N, N). If False, the shapes are (M, K) and (K, N), where K = min(M, N).不可以自行设定feature数量。
https://docs.scipy.org/doc/scipy/reference/generated/scipy.linalg.svd.html

scipy.sparse.linalg.svds(data_matrix_array_like, k=6, ncv=None, tol=0, which=‘LM’, v0=None, maxiter=None, return_singular_vectors=True, solver=‘arpack’)
可以通过k值自行设定s中元素数量, U and Vh are of shape (M, k), (k, N)
https://docs.scipy.org/doc/scipy-0.15.1/reference/generated/scipy.sparse.linalg.svds.html

numpy.linalg.svd(data_matrix_array_like)等效于scipy.linalg.svd(A,full_matrices=False),即 the shapes are (M, K) and (K, N), where K=min(M,N)

你可能感兴趣的:(推荐系统)