在生产中部署R模型的选项
classification
machine-learning
r
12
0

在生产中部署预测模型的似乎没有太多选择,鉴于大数据的爆炸式增长,这令人惊讶。

我了解开源PMML可用于将模型导出为XML规范。然后可以将其用于数据库内评分/预测。但是,似乎要执行此操作,您需要使用Zementis的PMML插件,这意味着该解决方案并不是真正的开源。有没有更简单的开放方式将PMML映射到SQL进行评分?

另一个选择是使用JSON而不是XML来输出模型预测。但是在这种情况下,R模型将坐在哪里?我假设它将始终需要映射到SQL ...除非R模型可以与数据位于同一服务器上,然后使用R脚本针对传入数据运行?

还有其他选择吗?

参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

答案实际上取决于您的生产环境。

如果您的“大数据”在Hadoop上,则可以尝试使用这种称为Pattern的相对较新的开源PMML“评分引擎”。

否则,您别无选择(缺少编写自定义模型的代码),只能在服务器上运行R。您将使用save将拟合的模型save到.RData文件中,然后在服务器上load并运行相应的predict 。 (这注定会很慢,但是您总是可以尝试向它扔更多的硬件。)

实际操作方式取决于您的平台。通常,有一种方法可以添加用R编写的“自定义”函数。该术语是UDF(用户定义函数)。在Hadoop中,您可以将这些功能添加到Pig(例如https://github.com/cd-wood/pigaddons ),也可以使用RHadoop编写简单的map-reduce代码,这些代码将加载模型并在R中调用predict 。数据位于Hive中,则可以使用Hive TRANSFORM调用外部R脚本。

还有一些特定于供应商的方法,可以将用R编写的函数添加到各种SQL数据库中。再次在文档中查找UDF。例如,PostgreSQL具有PL / R。

收藏
评论

以下是到目前为止我发现的在生产中部署R模型的替代方案的列表。请注意,使用这些产品的工作流程彼此之间有很大的不同,但是它们都以某种方式定位以促进将经过培训的R模型作为服务公开的过程:

收藏
评论

您可以使用plumber( https://github.com/trestletech/plumber )为R脚本创建RESTful API。

我以部署信用模型为例,写了一篇有关它的博客文章( http://www.knowru.com/blog/how-create-restful-api-for-machine-learning-credit-model-in-r/ ) 。

通常,我不建议您使用PMML,因为您使用的软件包可能不支持翻译为PMML。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题