SVD 不产生缩小的尺寸
SVD not producing reduced dimensions
运行 下面的代码:
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]
我希望矩阵的每一行都缩小到一定大小,但矩阵却缩小了。是否可以使用 TruncatedSVD 以便将数据集的每一行缩小到大小 2,而不是将整个矩阵缩小到大小 2?
打印了单数 values
而不是 vectors
。有两个单数 values
是合适的,因为 n_components
=2.
转换后的输出将通过
获得
svd.transform(X)
或回原space为
svd.inverse_transform(X)
需要最后一个来执行原始矩阵和转换后矩阵之间的任何统计比较。
运行 下面的代码:
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]
我希望矩阵的每一行都缩小到一定大小,但矩阵却缩小了。是否可以使用 TruncatedSVD 以便将数据集的每一行缩小到大小 2,而不是将整个矩阵缩小到大小 2?
打印了单数 values
而不是 vectors
。有两个单数 values
是合适的,因为 n_components
=2.
转换后的输出将通过
获得 svd.transform(X)
或回原space为
svd.inverse_transform(X)
需要最后一个来执行原始矩阵和转换后矩阵之间的任何统计比较。