计算数据非常稀疏的非常大的正矩阵(65M x 3.4M)的奇异值分解(SVD)的最佳方法是什么?
少于0.1%的矩阵为非零。我需要一种方法:
- 将适合内存(我知道在线方法存在)
- 将在合理的时间内计算:3,4天
- 会足够准确,但是准确性不是我的主要关注点,我希望能够控制投入的资源。
拥有一个实现它的Haskell,Python,C#等库,将是很棒的。我没有使用mathlab或R,但如有必要,我可以使用R。
3
你有多少内存?65M * 3.4M的0.1%仍为221e9非零值。如果您每个值使用4个字节,那么在没有开销的情况下仍超过55 gb,因此稀疏性仍无法解决问题...您是否需要立即将整个集合加载到内存中?
—
2012年
我应该更精确一些。不超过250-500mb(32位整数)。可能少得多,但是据我所知,维数是问题。我有一台16GB的机器。
—
索尼娅(Sonia)2012年
这个怎么样?quora.com/…– 2012
—
按位
此页面链接到Python库,该库实现了“快速,增量,低内存,大矩阵SVD算法”:en.wikipedia.org/wiki/Latent_semantic_analysis
—
2012年