【问题标题】:SVD not producing reduced dimensionsSVD 不产生减小的尺寸
【发布时间】:2018-12-31 03:34:50
【问题描述】:

运行以下代码:

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 的大小?

【问题讨论】:

    标签: python machine-learning scipy scikit-learn svd


    【解决方案1】:

    打印了单数 values 而不是 vectors。有两个单数values 是合适的,因为n_components=2。

    转换后的输出将由

      svd.transform(X)
    

    或回到原来的空间

      svd.inverse_transform(X)
    

    最后一个用于在原始矩阵和转换后的矩阵之间进行任何统计比较。

    【讨论】:

      猜你喜欢
      • 2015-01-27
      • 2021-08-10
      • 2021-11-25
      • 2012-10-05
      • 2018-01-30
      • 2012-04-22
      • 2020-01-24
      • 2011-12-26
      • 1970-01-01
      相关资源
      最近更新 更多