大型稀疏矩阵分解

时间:2015-01-03 16:32:41

标签: python r sparse-matrix svd matrix-factorization

如何 svd nmf 一个非常稀疏的维度矩阵(70000,70000)?该矩阵的稀疏版本可以存储为磁盘上小于700M的二进制文件。我可以用稀疏格式(如磁盘上的文件或可存储在内存中)对其进行分解,而无需重建整个矩阵,这些矩阵将无法存储在内存中(甚至难以存储在磁盘上)?

我知道 py 中的 R sklearn pymf 中有 irlba >。但似乎他们需要重建矩阵(?我没有挖掘太多。)。 svd 的问题是我无法保存矩阵 S,V和D ,但是,如果我指定一个K并且只保存对应于k个最大特征值的矩阵 S_k,V_k和D_k ,该怎么办?至于 nmf ,我想把它分解为大小为(70000,100)的 W 和大小为(100,70000)的 H 它们可以存储在内存中。

如果有某些方法可以这样做,那么计算 svd nmf 的预计时间是多少?任何帮助将不胜感激!

为什么NMF(非负矩阵分解)不是标签?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用rARPACK包,该包提供适用于稀疏矩阵的svds()函数,并允许您仅检索一些奇异值/向量。

有关示例,请参阅README页面。