【问题标题】:large sparse matrix, svd大稀疏矩阵,svd
【发布时间】:2014-07-14 15:55:10
【问题描述】:

我想计算 SVD ,但我没有为此找到好的 java 库。现在,我在 hashmap 中有数据存储,因为矩阵不适合内存,因为大小约为 400 000 X 10 000 并且大多数为 0。我尝试了 MTJ、JBLAS、Jama 等,但其中大多数不支持稀疏矩阵或太慢。我需要在最多 2-3 分钟内完成此计算。有人可以推荐我一些东西吗? 我还在 R 中阅读了有关 irbla 的信息,但是可以将我的数据从 java 发送到 R,进行计算并将其发送回我的 java 程序?

【问题讨论】:

    标签: java matrix svd


    【解决方案1】:

    在尝试将非负矩阵分解 (NNMF) 和概率潜在语义分析应用于大型稀疏术语文档矩阵时,我遇到了类似的问题。我尝试了 Jblas1 和 Jama2 但我最终使用了 Matlab。因为我是用 Java 编写整个应用程序,所以我最终通过 Matlab Runtime Compiler (MRC) 用 Ja​​va 调用 Matlab。

    做什么:
    Matlab 有一个称为Matlab Builder JA 的功能。使用此工具生成一个 .jar 文件,其中包含您的 matlab 代码,然后可以由您的 java 程序调用。这个 .jar 需要 MRC 才能工作。

    1Jblas 比 Jama 快得多,但我遇到了问题,无法使用 jdk 运行 64 位。
    2 Jama 使用了 doube[][] 和这导致了内存问题。
    也许上面的内容已经改变,因为我要回到 2012 年 7 月,现在还没有清晰的图像。

    【讨论】:

    • 好的,谢谢。我会检查一下。你能写一些java代码吗?我是否应该创建双 [][] 矩阵以将其传递给 matlab 代码,因为这是不可能的
    • 就我而言,我将术语文档矩阵存储在 .txt 文件中(空格分隔)。所以我调用了我的 matlab 代码,加载了 txt 文件并完成了剩下的工作......
    猜你喜欢
    • 2011-06-24
    • 2023-03-02
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多