如何 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(非负矩阵分解)不是标签?