在RapidMiner的过程测试或单元测试


什么是过程测试?
的流程测试扩展为RapidMiner用户和扩展开发人员简化了测试RapidMiner过程。
流程测试扩展允许创建基于流程的单元测试。进程可以作为测试运行,从而自动将进程的结果保存为预期结果。稍后,可能会再次重新运行进程,以自动将当时创建的结果与先前创建的预期结果进行比较。如果结果仍然相同,则测试通过,如果不是这样,则测试失败。
在RapidMiner中实现过程测试的好处和步骤:
- 非常强大的方式来监控端到端数据科学工作流的每个阶段的流程预期结果的变化。乐鱼平台进入
例如,如果来自外部数据源的流程输入数据发生了变化,那么训练模型的性能矩阵可能与之前作为预期结果(基准或参考矩阵)存储的训练模型的矩阵不同。
'执行流程测试'操作符在这个扩展帮助检测这些变化和标记这样的过程执行结果一个失败.进一步的RapidMiner服务器调度功能可以帮助向系统管理员或流程开发人员发送关于执行状态的自动电子邮件警报。
类似地,我们可以扩展相同的概念来检测给定ExampleSet属性权重的变化,评分结果的变化,ETL,数据清理,特征工程,特征选择工作流,如果冠军机器学习模型发生变化,则发送警报,等等。
我如何使用它?
1)从扩展>>市场下载RapidMiner Studio中的扩展并重新启动RapidMiner Studio:下载扩展
一旦Studio重新启动,你会发现一个新的菜单选项叫做测试和2新加入的营办商Operator >>扩展文件夹测试- Studio中的菜单选项
加工测试操作员
2)选择您希望执行进程测试的RapidMiner进程。将流程保存在Repository中,导航到T测试>>运行并按预期结果存储.这将运行当前流程并将所有输出端口作为预期结果存储在流程的当前存储库位置中。
请注意:这是流程测试框架中非常重要和必需的步骤,因为它创建给定流程的预期结果,并在再次运行相同流程时用作比较结果的参考。
在下面的示例中,我创建了001抽样过程从“泰坦尼克号”的数据中抽取100个样本或例子。当按预期结果运行并存储选项,则输出端口的处理结果存储在存储库中,如下所示:
对数据进行采样并存储过程输出的预期结果执行过程测试操作者对这个过程进行测试,检查输出结果是否有任何变化。
(在存储库中将此过程保存为'执行过程')
执行Process测试Process 001采样结果,如果没有变化01抽样处理输出将与存储的预期结果相同。01 sampling-expected-port-0,测试结果将是成功如下图所示:
01样品检测结果
现在让我们对01抽样处理并检查如何执行过程检测过程的实际结果与过程的预期结果之间的变化;
将样本大小更改为1000并保存该过程
如果我们重新开始执行过程,结果是a失败因为预期的结果01 sampling-expected-port-0”有100个样品存储,但是更新了吗01抽样1000个样品的处理结果如下:
结果:失败,带有适当的错误消息
此外,我们可以将此过程扩展到运行批量测试。”“执行进程测试”操作符在选定的存储库位置下执行所有流程。位置可以是单个进程、文件夹或存储库。底层文件夹也是递归执行的。结果包含每个已执行流程的位置、结果(成功或失败)和错误消息。
进程的名称中包含字符串“NOTEST”,则不会被执行。
工艺的批量测试
4)计划在RapidMiner服务器上运行此进程,以便在任何给定进程失败时发送自动电子邮件更改:
当流程测试中的流程失败时,发送自动电子邮件提醒
下面是一个示例警报电子邮件,当上述进程被触发按时间表执行时,发送了失败进程列表:
邮件提醒示例
注意:
- 执行流程测试在RapidMiner服务器上,请确保安装扩展RapidMiner Server主目录下的jar文件,以及你打算运行/调度这个进程的作业代理;
- 要使用发送邮件接线员,一定要把你的电子邮件设置在工作室和服务器上相应地。
额外的特点:
扩展开发人员可以测试他们开发的操作符是否用户友好。流程测试扩展有一个名为'的操作符预期用户错误”。该操作符是一个嵌套操作符,即它有一个子流程.
操作符首先尝试执行子流程.如果一个UserError (由i18n_key参数定义:i18n_key映射到特定的用户错误)在执行Subprocess期间发生,此操作符成功运行并写入日志条目。如果没有UserError,或者在执行子流程期间存在UserError这与i18n_key形参所指定的不同,操作符抛出aUserError本身,其中包含有关失败原因的信息。
在这个操作符的帮助部分有一个示例教程过程来演示'Expect User Error'操作符的功能:
预期用户错误
你可以在RapidMiner Studio的社区存储库中找到与这篇文章相关的所有数据和过程。
希望这篇文章对你有用。请随意发表关于过程测试的评论、反馈和问题。
欢呼,
评论
这似乎是一个非常有用的功能来测试开发人员所做的过程。我有几个问题希望你能帮助我: