在生产中部署预测模型似乎没有太多的选择,考虑到大数据的爆炸,这是令人惊讶的。
我理解开源PMML可以作为XML规范来导出模型。然后,这可以用于数据库中的评分/预测。然而,要使这一工作顺利进行,您需要使用Zementis的PMML插件,这意味着解决方案并不是真正的开源。是否有一种更容易打开的方法将PMML映射到SQL进行评分?
另一种选择是使用JSON而不是XML来输出模型预测。但在这种情况下,R模型会在哪里呢?我假设它总是需要映射到SQL...unless,R模型可以与数据位于同一台服务器上,然后使用R脚本对传入的数据运行吗?
还有其他选择吗?
发布于 2014-03-11 01:09:21
答案实际上取决于您的生产环境是什么。
如果您的“大数据”在Hadoop上,您可以尝试这个相对较新的开源PMML“评分引擎”( 模式 )。
否则,您别无选择(除非编写定制的特定于模型的代码),只能在服务器上运行R。您将使用save
将已安装的模型保存在.RData文件中,然后使用load
并在服务器上运行相应的predict
。(这肯定会很慢,但您可以尝试使用更多的硬件。)
你是如何做到这一点的取决于你的平台。通常有一种方法可以添加用R编写的“定制”函数,术语是UDF (用户定义函数)。在Hadoop中,您可以将此类函数添加到Pig (例如https://github.com/cd-wood/pigaddons)中,也可以使用RHadoop编写简单的映射--减少加载模型的代码,并在R中调用predict
。如果数据位于Hive中,则可以使用蜂巢变换调用外部R脚本。
还有一些特定于供应商的方法,可以将用R编写的函数添加到各种SQL数据库中。同样,在文档中查找UDF。例如,PostgreSQL有PL/R。
发布于 2014-11-23 19:59:11
发布于 2017-03-02 21:25:21
您可以使用水管工( RESTful )为R脚本创建https://github.com/trestletech/plumberAPI。
我以部署信用模型为例,写了一篇关于它的博客文章(http://www.knowru.com/blog/how-create-restful-api-for-machine-learning-credit-model-in-r/)。
通常,我不推荐PMML,因为您使用的包可能不支持向PMML的转换。
https://stackoverflow.com/questions/22309236
复制相似问题