我想在Java中使用机器学习算法。Mahout结合Hadoop运行太慢,而Weka因为数据量太大无法工作。所以,是否可以从Java中调用H2O库,或者有其他更好的Java选项?
回答:
你可以用R语言实现你的机器学习算法,然后通过命令行调用底层系统来执行。我在几年前做生物信息学论文时发现这是最好的选择。
我记得曾经尝试过使用某种Java/R集成库直接从Java中调用R引擎,但发现它太慢且操作繁琐,所以我最终选择编写简单的R脚本,让Java通过命令行接口来调用这些脚本。
这样做的缺点是,慢速进程可能难以跟踪;你可能要等到R操作完成并返回状态码后才能得到结果。
你需要编写一些Java代码来发出R命令,并等待进程的响应/结果,最好不要完全锁定你的Java应用程序(可以使用单独的线程或后台进程)。