从RapidMiner中使用ModelOps web服务评分新数据

sgenzersgenzer 12管理员,版主,员工,RapidMiner认证分析师,社区管理员,会员,大学教授,PM版主职位:2959年社区经理
编辑2020年3月 知识库
这是一篇KB文章,目的是帮助说明一个有趣的情况——当您在远程RapidMiner服务器上部署了一个RapidMiner模型(通过ModelOps),并希望使用RapidMiner通过web服务对新数据进行评分。

示例部署

我从标准的Titanic训练数据集构建了一个决策树模型,并将其部署到远程RapidMiner服务器上。我不打算在这里解释如何做到这一点-请参阅RapidMiner学院它很好地解释了如何做到这一点:





最重要的是,我已经激活了ModelOps中的“集成”功能来生成一个计分URL:



如果我从ModelOps屏幕上测试这个web服务,您可以在右上方看到请求,在右下方看到响应:



对一行数据进行评分

现在让我们使用RapidMiner中的各种方法为一个新的数据行评分:

方法1:使用GET Page操作符(Web Mining扩展)使用GET请求

Web Mining扩展可以通过RapidMiner市场免费获得。这不是我们拥有的最现代化的工具,但它可以达到我们的目的。

这是相当直接的。只需输入您在ModelOps屏幕(见上面)的Test URL窗口中看到的URL,以及您想要的数据。例如,我们可以为以下内容打分:
passenger_class:第一
no_of_siblings_or_spouses_on_board: 2
性别:女
no_of_parents_or_children_on_board: 1
passenger_fare: 123
年龄:32
URL是:
http://partnersrv.www.turtlecreekpls.com:8080/api/rest/process/titanic_deployment_score?passenger_class=First&no_of_siblings_or_spouses_on_board=2&sex=Female&no_of_parents_or_children_on_board=1&passenger_fare=123&age=32
过程如下所示:



回复是这样的:



我个人喜欢使用JSON阅读器比如这个观察人们的反应。如果你这样做,你会看到一个正确的响应从模型评分引擎:



根据模型的预测,这位乘客有78.8%的生还机会。

如果你想把这个响应转换成一个ExampleSet,最简单的方法是通过JSON to Data操作符(文本处理扩展):




方法2:使用Get Page操作符(Web Mining扩展)使用POST请求

使用Get Page操作符使用POST请求非常类似于Get请求,但有一个关键的区别:您不会在URL中提交查询。相反,你应该在“查询参数”部分输入查询:



在查询参数菜单内部:



你会得到类似上面的回复:


[注意:这实际上不是一个正常意义上的POST请求-因为我们通常会发送一个JSON数组作为数据对象。]但是ModelOps web服务查询目前不接受JSON数组…]

对多行数据进行评分

由于ModelOps目前不接受允许我们在一个查询中对多行数据进行评分的JSON数组,因此我们不能通过web服务查询一次发送多行数据。然而,这很容易通过循环操作符来实现。

在这里,我使用Titanic unlabelled数据集,只过滤前三行(只是为了演示),然后使用循环示例操作符遍历它们。迭代宏被命名为%{example},它从1开始逐行递增。之后,我将把所有的结果一起添加回一个ExampleSet:



在循环示例中,我使用Extract宏操作符来获取循环中第n个示例的参数:



附加的宏如下所示:



Get Page操作符与上面的操作符完全相同,但查询参数略有调整:





注意,查询值现在是Extract宏设置的宏值。

结果如下:



我希望这讲得通。祝你好运,让这些模型投入部署!!

斯科特
varunm1 (删除用户) yyhuang
    登录注册置评。