Mahout特征值分解

时间:2013-06-05 05:35:28

标签: hadoop mahout eigenvector

我正在使用Hadoop / Mahout来分解将成为非常大的稀疏矩阵。问题是,我甚至无法用200个非零值和尺寸56000 x 56000来完成它,这是在一秒钟内用Python解决的。我怀疑计算在某些时候会变得密集!

此时我正在使用单节点/核心。这有关系吗?所有操作都是从Java文件运行,而不是从命令行运行。我得到的例外是和老人但是好人:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at org.apache.mahout.math.DenseMatrix.<init>(DenseMatrix.java:50)
at org.apache.mahout.math.solver.EigenDecomposition.<init>(EigenDecomposition.java:70)
at myhadoop.MyHadoop.main(MyHadoop.java:84)

Java结果:1

当然,由于Exceptions引用了DenseMatrix,我很担心。如果它以某种方式使用重写方法,我可能会更少关心,但如果写入实际零,那就不好了。另外,我的程序运行得很慢。

代码:

SparseRowMatrix A = new SparseRowMatrix();    
// Matrix A is then created by adding elements one by one in a 
// somewhat ordered fashion.    
B SparseRowMatrix = A;    
B.transpose();    
A.plus(B);    
EigenDecomposition eigDec = new EigenDecomposition(A, true);    
myEig = eigDec.getRealEigenvalues();

如果实际上没有关于如何使这个真正稀疏的任何想法?

0 个答案:

没有答案