M
的矩阵(M,N)
的Singular value decomposition表示分解
如何从scikit-learn
和numpy
包中获取所有三个矩阵?
我想我可以Sigma
获取import numpy as np
from sklearn.decomposition import PCA
model = PCA(N, copy=True, random_state=0)
model.fit(X)
Sigma = model.singular_values_
Sigma = np.diag(singular_values)
:
strncat
其他矩阵怎么样?
答案 0 :(得分:1)
您可以使用numpy.linalg.svd
获取这些矩阵,如下所示:
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
U, S, V = np.linalg.svd(a, full_matrices=True)
S
是一个1D
数组,表示Sigma
中的对角线条目。 U
和V
是分解的相应矩阵。
顺便提一下,请注意,当您使用PCA
时,数据会在应用svd之前居中(与numpy.linalg.svd
不同,其中svd直接应用于矩阵本身。请参阅第409-410行{ {3}})。
答案 1 :(得分:0)
不能对Mirian的回答发表评论,因为我没有足够的声誉,但从查看Miriam的链接,sklearn实际上称为scipy的{{1}这似乎与np.linalg.svd (discussion here)
相同因此,最好使用linalg.svd