如何使用宏
在复杂的过程或有多个过程的项目中,您通常需要使用变量对它们进行参数化。RapidMiner中的进程变量称为宏。宏是一种强大的资产,可用于完全操作您的分析流程。宏存储可以称为基本类型的东西。您还可以存储通过连接运行的对象。这通常可以使用Remember和Recall操作符来完成。
如何设置宏
通常,有两种设置宏的方法。第一种方法是使用上下文面板,另一种是使用操作符。
背景面板
你可以通过view->show panel激活面板。放置该面板的常见位置是Parameter面板旁边。在上下文面板中,您可以通过单击小的“+”按钮来设置新的宏。
如果您将单个进程视为编程函数,则该面板为您提供了定义函数参数的选项。
最佳实践:作为最佳实践,我们建议在宏的开头使用小写字母,而不是驼峰大小写,以便更容易识别宏。
使用操作符生成宏
除了在上下文面板中设置宏之外,还可以设置和修改宏。如果在操作符树中搜索宏,可以看到一些处理宏的操作符。我们将讨论三个最重要的问题。
设置宏将与上下文菜单非常相似的宏设置为常数值。
生成的宏为您提供了使用从生成属性中了解的接口生成宏的选项。例如,使用此操作符,您可以基于当前日期(使用date_now()函数)生成宏。
提取宏从示例集中提取宏。通常使用的选项是提取示例集的示例数,统计数据,如示例集的平均值或最大值,甚至单个单元格值。
如何在通用操作符中使用宏
要在进程的任何地方使用宏,您可以键入%{myMacro},它将被宏的当前值所替换。这是一种真正的直接替代,适用于流程中的任何值字段。
如何在生成属性中使用宏
在“生成属性”和“生成宏”中,除了%-符号之外,还有更多的选项。即:
%符号
%{myMacro}以字符串的形式插入当前宏值。如果你有一个像foo这样的字符串存储在你的宏中,你可以做这样的操作
concat (% {myMacro},“酒吧”}
前缀(% {myMacro 1}
等等......请记住,您总是将其解释为字符串。如果你在宏中存储了一个1
concat (% {myMacro},“酒吧”)
还给你1bar。操作,比如
%{myMacro} + 1
不要工作。
Eval
eval()对myMacro的字符串求值。如果你在宏中存储了一个1,你可以这样做
eval (% {myMacro} + 1
得到2。
你也可以把整个方程放到宏中。如果你在宏中存储一个根号(2)并计算
eval (% {myMacro})
得到1.41....
#符号
#{attribute_macro}符号原则上是编写eval(%{attribute_macro})的快捷方式,它允许您访问给定属性的值。
但两者之间有两个重要的区别:
当宏不包含有效的属性名时,#{}将失败
另一方面
* eval(%{attribute_macro})将计算宏中包含的任何内容,这可能会失败,例如,如果属性名称包含“-”
符号之间的区别体现在这个过程中:
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文
<过程扩展= " true " >
< /操作符>
<列出关键= "宏" >
< / >列表
< /操作符>
< /操作符>
<过程扩展= " true " >
<列出关键= " function_descriptions " >
< / >列表
< /操作符>
> < /过程
<过程扩展= " true " >
<列出关键= " function_descriptions " >
< / >列表
< /操作符>
> < /过程
< /操作符>
<列出关键= " function_descriptions " >
< / >列表
< /操作符>
> < /过程
< /操作符>
> < /过程
添加注释折叠
宏和执行进程
您可以使用宏来参数化ex
提供的宏
有一些宏已经存在,可以在整个过程中使用:
- %{process_name}:将被进程名替换(不带路径和扩展名)
- %{process_file}:将被进程的文件名(带扩展名)所替换
- %{process_path}:将被进程文件的完整绝对路径取代
- %{execution_count}:将被当前操作符被应用的次数取代。
- %{operator_name}:将被当前操作符的名称替换。
- %{t}:将被当前时间替换
宏的高级用例
- 参数化SQL查询
- 参数化Web服务
- 在web应用程序中使用宏
德国多特蒙德
评论
你好,
我试图使用用户输入从一个网站填充我的数据集与宏,但有一些颠簸。
你能帮我吗?
好帖子!
我想提取一个日期单元格值。我假设Extract宏操作符将值的类型更改为标称类型,因为当我用这个保存的值生成新属性时,我获得了标称类型。
你知道如何保存日期值保持日期类型当我试图恢复值?
我附上一个样本。
提前感谢,
Montse
斯科特
我只是想知道有没有别的方法,但这很好。
最好的问候,
Montse
Lindon合资企业
乐鱼平台进入来自认证RapidMiner专家的数据科学咨询
作为@Telcontar120提到,回答这类问题真的很有挑战性,我认为用户可能已经创建了另一个帖子,详细解释了他的问题,或者他只是离开了。这就是为什么我们在“问问题”页面上有一个横幅,建议提出一个好问题的方法,这些是从社区获得答案的最佳方法。
Varun
https://www.varunmandalapu.com/
是安全的。遵循预防措施并保持社交距离
斯科特
我相信我们都可以加入其中
每个软件包都有自己独特的词汇……我不确定RapidMiner在这方面有多大不同。我想说,在这一点上,改变一些基本的词汇项目将是可怕的……很多材料都建立在它的基础上。但把它列入想法清单并没有坏处
斯科特