如何使用宏

MartinLiebigMartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3362年RM数据科学家
2018年11月编辑 知识库

在复杂的过程或有多个过程的项目中,您通常需要使用变量对它们进行参数化。RapidMiner中的进程变量称为宏。宏是一种强大的资产,可用于完全操作您的分析流程。宏存储可以称为基本类型的东西。您还可以存储通过连接运行的对象。这通常可以使用Remember和Recall操作符来完成。

如何设置宏

通常,有两种设置宏的方法。第一种方法是使用上下文面板,另一种是使用操作符。

背景面板

你可以通过view->show panel激活面板。放置该面板的常见位置是Parameter面板旁边。在上下文面板中,您可以通过单击小的“+”按钮来设置新的宏。

Macros1.png

如果您将单个进程视为编程函数,则该面板为您提供了定义函数参数的选项。

最佳实践:作为最佳实践,我们建议在宏的开头使用小写字母,而不是驼峰大小写,以便更容易识别宏。

使用操作符生成宏

除了在上下文面板中设置宏之外,还可以设置和修改宏。如果在操作符树中搜索宏,可以看到一些处理宏的操作符。我们将讨论三个最重要的问题。

Macros2.png

设置宏将与上下文菜单非常相似的宏设置为常数值。

生成的宏为您提供了使用从生成属性中了解的接口生成宏的选项。例如,使用此操作符,您可以基于当前日期(使用date_now()函数)生成宏。

提取宏从示例集中提取宏。通常使用的选项是提取示例集的示例数,统计数据,如示例集的平均值或最大值,甚至单个单元格值。

如何在通用操作符中使用宏

要在进程的任何地方使用宏,您可以键入%{myMacro},它将被宏的当前值所替换。这是一种真正的直接替代,适用于流程中的任何值字段。

Macros3.png

如何在生成属性中使用宏

在“生成属性”和“生成宏”中,除了%-符号之外,还有更多的选项。即:

%符号

%{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})将计算宏中包含的任何内容,这可能会失败,例如,如果属性名称包含“-”

符号之间的区别体现在这个过程中:

扰流板
< ?xml version="1.0" encoding="UTF-8"?> <过程version = " 7.2.002-SNAPSHOT”>
> <上下文
<输入/ >
<输出/ >
<宏/ >
> < /上下文

<过程扩展= " true " >


< /操作符>

<列出关键= "宏" >

< / >列表
< /操作符>



< /操作符>



<过程扩展= " true " >

<列出关键= " function_descriptions " >


< / >列表
< /操作符>






> < /过程
<过程扩展= " true " >

<列出关键= " function_descriptions " >

< / >列表
< /操作符>






> < /过程
< /操作符>

<列出关键= " function_descriptions " >

< / >列表
< /操作符>











> < /过程
< /操作符>
> < /过程
添加注释折叠

宏和执行进程

您可以使用宏来参数化ex

提供的宏

有一些宏已经存在,可以在整个过程中使用:

  • %{process_name}:将被进程名替换(不带路径和扩展名)
  • %{process_file}:将被进程的文件名(带扩展名)所替换
  • %{process_path}:将被进程文件的完整绝对路径取代
  • %{execution_count}:将被当前操作符被应用的次数取代。
  • %{operator_name}:将被当前操作符的名称替换。
  • %{t}:将被当前时间替换

宏的高级用例

- RapidMin乐鱼平台进入er数据科学服务主管
德国多特蒙德
yyhuang LunioDatalytics pschlunder Pavithra_Rao Montse 华语 kayman ChristianK lionelderkrikor

评论

  • arellanoarellano 成员职位:3.贡献我

    你好,

    我试图使用用户输入从一个网站填充我的数据集与宏,但有一些颠簸。

    你能帮我吗?

  • MontseMontse 成员职位:19Maven
    @mschmitz

    好帖子!
    我想提取一个日期单元格值。我假设Extract宏操作符将值的类型更改为标称类型,因为当我用这个保存的值生成新属性时,我获得了标称类型。

    你知道如何保存日期值保持日期类型当我试图恢复值?
    我附上一个样本。

    提前感谢,
    Montse
    rfuentealba
  • sgenzersgenzer 管理员,版主,员工,RapidMiner认证分析师,社区经理,成员,大学教授,PM版主职位:2959年社区经理
    @Montse你是对的——宏只是名义上的。如果它们是日期,则需要来回转换。

    斯科特

    rfuentealba
  • MontseMontse 成员职位:19Maven
    谢谢你!@sgenzer!我刚才照你说的做了。
    我只是想知道有没有别的方法,但这很好。
    最好的问候,
    Montse
    sgenzer
  • SGolbertSGolbert RapidMiner注册分析师、会员职位:344独角兽
    你好,

    自RM的第一个版本以来,宏就没有很好地老化。是否正在进行全面改革?

    问候,
    塞巴斯蒂安。
  • 华语华语 成员职位:3.贡献我
    为什么arellano的问题被忽略了吗?
  • Telcontar120Telcontar120 主持人,RapidMiner认证分析师,RapidMiner认证专家,会员职位:1635年独角兽
    我不认为这是一个问题——这更像是一种评论,他们遇到了问题。我不确定有人能帮上什么忙,除非这个问题更具体,并准确地描述了正在发生的“颠簸”(更像上面蒙瑟的问题)。
    布莱恩·T。
    Lindon合资企业
    乐鱼平台进入来自认证RapidMiner专家的数据科学咨询
    MartinLiebig varunm1 IngoRM
  • varunm1varunm1 主持人,职位:1207年独角兽
    你好@huayu

    作为@Telcontar120提到,回答这类问题真的很有挑战性,我认为用户可能已经创建了另一个帖子,详细解释了他的问题,或者他只是离开了。这就是为什么我们在“问问题”页面上有一个横幅,建议提出一个好问题的方法,这些是从社区获得答案的最佳方法。

    问候,
    Varun
    https://www.varunmandalapu.com/

    是安全的。遵循预防措施并保持社交距离

    Telcontar120 Edin_Klapic IngoRM SGolbert
  • sgenzersgenzer 管理员,版主,员工,RapidMiner认证分析师,社区经理,成员,大学教授,PM版主职位:2959年社区经理
    @SGolbert据我所知没有。如果你能写出一些对宏的改进,我将推动Prod Ideas。

    斯科特

  • SGolbertSGolbert RapidMiner注册分析师、会员职位:344独角兽

    首先,我不喜欢“宏”这个名字,它与其他上下文中的宏没有任何关系。一个主要的改进是将它们类型化,从字符串转换来回是浪费时间。

    除此之外,他们都很好。从训练方面来看,应该解释一下,宏并不是将数据输入RM Web服务的唯一方法,但是也可以使用POST命令发送大量数据。


    问候,
    塞巴斯蒂安。

  • sgenzersgenzer 管理员,版主,员工,RapidMiner认证分析师,社区经理,成员,大学教授,PM版主职位:2959年社区经理
    @SGolbert我完全同意这个名字——对我来说总是很奇怪。我在每次培训中都做了一些“RapidMiner术语”……

    RapidMiner
    在其他地方可以称为....
    属性
    例子
    ExampleSet 数据表
    过程 工作流
    全局变量
    脚本

    我相信我们都可以加入其中微笑:

    每个软件包都有自己独特的词汇……我不确定RapidMiner在这方面有多大不同。我想说,在这一点上,改变一些基本的词汇项目将是可怕的……很多材料都建立在它的基础上。但把它列入想法清单并没有坏处眨眼:

    斯科特



    Tghadially
登录注册置评。