【发布时间】:2020-10-01 08:25:07
【问题描述】:
我使用 SVD 将稀疏矩阵 R 分解为 U、Sigma 和 Vt。我使用 k = 20 项。原始矩阵的形状为:98720 x 24875,只有 0 和 1 的值。
(np.min(R) = 0, np.max(R) = 1, np.mean(R) = 0.0003790496241336341,
' 类型的稀疏矩阵 以压缩稀疏行格式存储 930817 个元素>, scipy.sparse.csr.csr_matrix)
重构后的矩阵:R_reconstructed = np.dot(np.dot(U, np.diag(sigma)), Vt) 具有不同范围内的值(-1,5, 3.82)。
(98720, 24875)
-1.5699363645844981 3.821880643066242
有人可以解释一下为什么会这样吗?为了获得相同范围的重构矩阵,解决方案是什么?
【问题讨论】:
-
你能把
np.dot(np.dot(U, np.diag(sigma)), Vt)减少到np.dot(U * sigma, Vt)吗?