Python SVD不产生降维

Python SVD不产生降维,python,machine-learning,scipy,scikit-learn,svd,Python,Machine Learning,Scipy,Scikit Learn,Svd,运行以下代码: from sklearn.decomposition import TruncatedSVD import numpy as np X = np.matrix('1 2 3 4 5; 3 4 5 6 7; 1 1 1 1 1; 2 3 4 5 6; 2 3 4 5 6') svd = TruncatedSVD(n_components=2, n_iter=7, random_state=42) svd.fit(X) print(svd.singular_values_) 产生:

运行以下代码:

from sklearn.decomposition import TruncatedSVD
import numpy as np
X = np.matrix('1 2 3 4 5; 3 4 5 6 7; 1 1 1 1 1; 2 3 4 5 6; 2 3 4 5 6')
svd = TruncatedSVD(n_components=2, n_iter=7, random_state=42)
svd.fit(X)
print(svd.singular_values_)
产生:

[19.32338258  1.26762989]

我希望矩阵的每一行都缩小到一定的大小,但矩阵却缩小了。是否可以使用截断SVD将数据集的每一行缩小为2,而不是将整个矩阵缩小为2?

打印的是奇异值而不是向量。具有两个单数
是合适的,因为
n\u分量
=2

转换后的输出将通过以下方式获得:

  svd.transform(X)
或者回到原来的空间作为

  svd.inverse_transform(X)
最后一个需要在原始矩阵和变换矩阵之间执行任何统计比较