H2O数据准备导出到POJO

时间:2018-01-30 15:59:28

标签: r h2o

我是H2O项目的新手,但很有兴趣将它用于我的Web应用程序。我已经制作了一些教程,在R中使用h2o库构建模型,然后将其导出为POJO模型。

我的问题是我需要预测的数据采用与火车数据集不同的格式。我想知道是否可以将我的R代码用于数据转换并将其导出为POJO(或类似),以便我可以实时准备新数据进行预测。

我在H2O文档页面(link)的“生产H2O”部分中找到了一些示例,例如Consumer loan applicationStorm bolt。但在第一种情况下,他们使用相同的功能集,在第二种情况下,数据准备工作使用.java代码(不确定,我在R之外的编程技能很差)。因此,我无法弄清楚如何在新数据集中使用R中的转换代码。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您有三种选择: (编辑:添加第三个选项)

  1. 您可以将预测管道保留在R中并使用h2o.predict_json()函数,该函数允许您将测试数据作为R中的JSON传递到磁盘上的MOJO / POJO以生成预测。这将允许您使用R代码进行数据调整,然后您将获取munged数据,将其转换为JSON字符串,并使用h2o.predict_json()生成预测。该函数一次需要一行,因此如果您有一个完整的数据框,则必须编写一个循环。此时的预测将在R内存中,因此您可以选择将它们写入文件/数据库,或者在纯R中使用它们执行其他操作。
  2. 将R数据清除代码转换为Java并仅使用Java应用程序中的POJO / MOJO保留应用程序Java。
  3. 继续使用R代码进行修改,使用data.table::fwrite()之类的快速I / O工具将已发送的数据写入磁盘,然后使用该新文件作为POJO / MOJO的输入并使用Java进行评分。这样您就可以一次获得整个文件,而不是#1,您必须一次获得一行。

答案 1 :(得分:-1)

在H2O进行预测之前处理数据,这是您需要处理的事情。

一种策略是以这样的方式编写您的代码,以便您可以为训练和生产环境执行相同的代码。