mahout特征值分解

goucqfw6  于 2021-06-04  发布在  Hadoop
关注(0)|答案(0)|浏览(289)

我使用hadoop/mahout来分解一个非常大的稀疏矩阵。问题是,我甚至不能用200个非零值和尺寸56000x56000来完成它,用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
当然,由于异常引用了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();

如果事实并非如此,你有什么想法可以让它变得真正稀疏吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题