Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.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
R H2O数据准备导出到POJO_R_H2o - Fatal编程技术网

R H2O数据准备导出到POJO

R H2O数据准备导出到POJO,r,h2o,R,H2o,我是H2O项目的新手,但对将其用于我的web应用程序很感兴趣。我制作了一些教程,用R中的h2o库构建模型,然后将其导出为POJO模型 我的问题是,我需要预测的数据与我用于train数据集的格式不同。我想知道是否可以将我的R代码与数据转换一起使用,并将其导出为POJO(或类似文件),以便我可以准备实时预测的新数据 我在H2O文档页面()的“Productionizing H2O”部分找到了一些示例,如消费者贷款申请和风暴螺栓。但在第一种情况下,它们使用相同的特性集,而在第二种情况下,数据准备是用.

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

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

我在H2O文档页面()的“Productionizing H2O”部分找到了一些示例,如
消费者贷款申请
风暴螺栓
。但在第一种情况下,它们使用相同的特性集,而在第二种情况下,数据准备是用.java代码完成的(对此不确定,我在R之外的编程技能很差)。因此,我不知道如何在新的数据集上使用R中的转换代码


有什么建议吗?

在H2O做出预测之前处理数据挖掘是您需要处理的事情

一种策略是编写咀嚼代码,这样您就可以在培训和生产环境中执行相同的代码。

您有四种选择: (编辑:添加了第三个选项) (编辑2:为MOJO添加了第四个选项-推荐)

  • 您可以将预测管道保存在R中,并使用
    h2o.predict_json()
    函数,该函数允许您将测试数据作为R中的json传递到磁盘上的MOJO/POJO以生成预测。这将允许您使用R代码进行数据搜索,然后获取搜索数据,将其转换为JSON字符串,并使用
    h2o.predict_JSON()
    生成预测。函数要求一次只有一行,因此如果有一个完整的数据帧,就必须编写一个循环。此时,预测将在R内存中,因此您可以选择将它们写入文件/数据库,或者在纯R中对它们执行其他操作
  • 直接从Java应用程序中使用POJO/MOJO,将R数据挖掘代码翻译成Java,并使应用程序仅为Java
  • 继续使用R代码进行munging,使用快速I/O工具(如
    data.table::fwrite()
    )将munged数据写入磁盘,然后使用该新文件作为POJO/MOJO的输入,并使用Java进行评分。这样,您可以一次为整个文件打分,而不是一次为一行打分
  • 我们现在有两个方便的函数,和,它允许您使用有效的MOJO模型对R中的数据集进行评分。这里可以做的是在R中编写一些数据转换代码,然后将转换后的data.frame传递给
    h2o.mojo\u predict\u df()
    (假设您已使用函数将模型导出为mojo格式)。这允许您将评分管道完全保留在R中,但您将获得使用优化MOJO模型的速度
    我明白,所以这就是为什么我要寻求帮助来找到最好的方法。谢谢你的回答,艾琳!第一个选项正是我在没有h2o的情况下使用skparklyr软件包中的模型所做的。但我看不到从R实时协调整个流程的效率如此之高。这是我尝试h2o的主要动机。实际上,我在h2o网页()上看到了这个方案,指出数据准备导出到POJO的方式与模型相同。所以我对此感到有点失望。你不必一直使用R,只是为了数据挖掘,即使你是从R调用预测代码,它也是用Java评分的(因此速度更快)。你知道rsparkling(通过Sparkyr的H2O)会有帮助吗?这样,您可以在Spark中进行咀嚼(而不是R),但您仍然可以使用它来编排@安德烈。我添加了第三个选项。根据你的3个选项,我将尝试比较:1。将新数据集加载到R,转换并写入磁盘,使用存储为POJO的模型在Java中对其进行评分。2.将新数据集和h2o模型加载到R,在同一会话中进行转换和预测,将结果写入磁盘。@EmmaNej我刚刚添加了第四个选项,您可能会感兴趣。