Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java应用程序中嵌入H2o?_Java_Machine Learning_H2o_Sparkling Water - Fatal编程技术网

如何在Java应用程序中嵌入H2o?

如何在Java应用程序中嵌入H2o?,java,machine-learning,h2o,sparkling-water,Java,Machine Learning,H2o,Sparkling Water,我正在尝试在Java应用程序中启动嵌入式H2o并训练模型。但是,我没有得到文档()中确切解释的内容。谁能帮我举个例子吗 谢谢,这里要了解的关键问题是您是真的想在应用程序中训练模型,还是只想为模型打分。大多数人一开始只想给模特打分 得分 得分很容易,也很自然。请参见此处的MOJO和POJO javadoc api: 按照javadoc中显示的模式使用easyapi。下面包含了相关代码的片段: EasyPredictModelWrapper model = new EasyPredictMod

我正在尝试在Java应用程序中启动嵌入式H2o并训练模型。但是,我没有得到文档()中确切解释的内容。谁能帮我举个例子吗


谢谢,

这里要了解的关键问题是您是真的想在应用程序中训练模型,还是只想为模型打分。大多数人一开始只想给模特打分

得分

得分很容易,也很自然。请参见此处的MOJO和POJO javadoc api:

按照javadoc中显示的模式使用easyapi。下面包含了相关代码的片段:

EasyPredictModelWrapper model = new EasyPredictModelWrapper(MojoModel.load("GBM_model.zip"));
RowData row = new RowData();
row.put("AGE", "68");
...
BinomialModelPrediction p = model.predictBinomial(row);
延期培训的评分和保存

许多人会做的是在他们的实时应用程序中评分,并保存新数据(在某处)以供推迟培训。然后离线培训模型,并将其再次投入生产进行评分。这是一个非常典型的模型生命周期,易于理解和管理

培训

在应用程序中嵌入H2O进行实际培训更为复杂

如果我要嵌入H2O,我会采用以下两种方法之一:

支持良好的选项1。将H2O实例作为一个单独的进程(或分布式情况下的一组进程)启动,并使用R或Python与之通信

文档丰富的H2O API是R API和Python API。(还有一个REST API有很多生成的文档,但我不认为使用起来特别容易。) 您可以在以下网站找到大量文档和示例:

支持良好的选项2。编写一个Spark应用程序,并使用Sparking Water和Scala或Pybarkling和Python

这实际上并不需要太多的火花,因为在起泡水中嵌入的H2O实际上根本不依赖火花的一面。关于起泡水的Scala和Python API有很好的文档记录。《起泡水用户指南》是一个很好的起点:

。。。还有其他更难的选择:

(更难)选项3。您可以将H2O作为maven依赖项包括在内,并直接从Java调用它

这里最大的问题是JavaAPI没有很好的文档记录,并且您找不到关于如何使用它的友好示例。Java API的最佳文档是源代码本身,以及h2o-3项目github中的单元测试(搜索“测试”目录):

(更难)选项4。有些人直接从RESTAPI调用H2O

我不建议这样做,因为这很难,但如果您想尝试,学习如何使用REST API的最佳方法是打开R日志记录,并查看R客户端和H2O之间的消息有效负载:

# R program.
h2o.init()
h2o.startLogging()
h2o.importFile("test.csv")
...

这里要理解的关键是,您是真的想在应用程序中训练模型,还是只想为模型打分。大多数人一开始只想给模特打分

得分

得分很容易,也很自然。请参见此处的MOJO和POJO javadoc api:

按照javadoc中显示的模式使用easyapi。下面包含了相关代码的片段:

EasyPredictModelWrapper model = new EasyPredictModelWrapper(MojoModel.load("GBM_model.zip"));
RowData row = new RowData();
row.put("AGE", "68");
...
BinomialModelPrediction p = model.predictBinomial(row);
延期培训的评分和保存

许多人会做的是在他们的实时应用程序中评分,并保存新数据(在某处)以供推迟培训。然后离线培训模型,并将其再次投入生产进行评分。这是一个非常典型的模型生命周期,易于理解和管理

培训

在应用程序中嵌入H2O进行实际培训更为复杂

如果我要嵌入H2O,我会采用以下两种方法之一:

支持良好的选项1。将H2O实例作为一个单独的进程(或分布式情况下的一组进程)启动,并使用R或Python与之通信

文档丰富的H2O API是R API和Python API。(还有一个REST API有很多生成的文档,但我不认为使用起来特别容易。) 您可以在以下网站找到大量文档和示例:

支持良好的选项2。编写一个Spark应用程序,并使用Sparking Water和Scala或Pybarkling和Python

这实际上并不需要太多的火花,因为在起泡水中嵌入的H2O实际上根本不依赖火花的一面。关于起泡水的Scala和Python API有很好的文档记录。《起泡水用户指南》是一个很好的起点:

。。。还有其他更难的选择:

(更难)选项3。您可以将H2O作为maven依赖项包括在内,并直接从Java调用它

这里最大的问题是JavaAPI没有很好的文档记录,并且您找不到关于如何使用它的友好示例。Java API的最佳文档是源代码本身,以及h2o-3项目github中的单元测试(搜索“测试”目录):

(更难)选项4。有些人直接从RESTAPI调用H2O

我不建议这样做,因为这很难,但如果您想尝试,学习如何使用REST API的最佳方法是打开R日志记录,并查看R客户端和H2O之间的消息有效负载:

# R program.
h2o.init()
h2o.startLogging()
h2o.importFile("test.csv")
...

我建议将问题重命名为:“在Java应用程序中嵌入H2O的不同方式是什么?”我建议将问题重命名为:“在Java应用程序中嵌入H2O的不同方式是什么?”