循环、分支和附加教程挑战过程

MickMcWilliamsMickMcWilliams 成员职位:11因素二世
2018年11月编辑 帮助

我是《RM》新手,正尝试着完成循环、分支和追加教程的挑战。我试图使用提取宏操作符来创建一个宏来保存最小乘客类组(第二类N=277)中示例数量的值,这样我就可以将设置宏操作符中的“最大大小”宏设置为该值。我将非常感激,如果有人能请提供如何做到这一点的描述。谢谢!

nocibambi

最佳答案

  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,成员职位:1761年独角兽
    解决方案接受

    对不起,我一直很忙。明天出发前我会尽量回答这个问题。

答案

  • MickMcWilliamsMickMcWilliams 成员职位:11因素二世

    加上这个请求…我相信我离弄清楚怎么做只有一步之遥了。我只需要学习如何在分支操作符“表达式”参数内的正则表达式中引用我的循环控制宏(“loop_value”)。当我使用“eval(%{class_size_First})

  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,成员职位:1761年独角兽

    如果没有过程,就很难理解。您介意附加该流程的XML和正在输入的数据的快照吗?

  • MickMcWilliamsMickMcWilliams 成员职位:11因素二世

    谢谢你愿意帮我,托马斯。我在这里附上了导出的过程。正如您将看到的,所使用的数据是在循环、分支和追加RapidMiner教程中使用的Titanic数据集。希望这将为您提供您需要的建议。再次感谢!

    Process.rmp 7.4 k
  • MickMcWilliamsMickMcWilliams 成员职位:11因素二世

    为了提供更多的信息…我遇到的问题是嵌入在第一个循环值操作符(循环值(3))中的分支操作符中的“表达式”参数的语法。使用语法“eval(%{class_size_First})

  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,成员职位:1761年独角兽

    好吧,我周一有脑子,所以请原谅我。它看起来像%{class_size_First}不会工作,因为我不认为你可以嵌入宏%{class_size_%{loop_value}}内宏,但我没有尝试过。您可以尝试过滤器示例并按%{loop_value}过滤,然后提取类大小?

  • MickMcWilliamsMickMcWilliams 成员职位:11因素二世

    谢谢,托马斯!似乎一个表达式不能从另一个宏中调用宏(这将是一个很好的功能,可以在一些即将到来的RM升级中添加)。根据您的建议,我使用过滤器示例操作符来解决这个问题,并且该过程现在正确地找到具有最低N个示例(277)的乘客类别。但是,我需要执行第二个Loop Values操作符来重复调用Sample操作符,以便将两个较大的乘客类别子示例中的示例采样到277个示例。但是,启动第二个循环值运算符子流程的Filter Examples运算符需要“exa”输入,因此不能接受第一个循环值运算符的“out”输出作为输入。有办法绕过这个吗?我附上了process .rmp文件的当前版本供您参考。再次感谢你在这个问题上支持我!

  • MickMcWilliamsMickMcWilliams 成员职位:11因素二世

    只是想知道托马斯或其他人是否愿意/能够花几分钟时间帮助我解决这个尚未解决的问题。我知道,例如,在Excel, SPSS或R中工作,我可以用几分钟相对简单的编程来做同样的事情。这是非常基本的功能,所以我希望它必须很容易在RapidMiner中实现,这只是我相对缺乏对RM的熟悉,这阻碍了我。如果能尽快解决这个问题,我将非常感激。谢谢!

  • MickMcWilliamsMickMcWilliams 成员职位:11因素二世

    谢谢你,托马斯。碰巧的是,今天我得到了答案。所需要做的就是在两个Loop Values操作符之间插入一个Append操作符。这将IOCollectionObject(由第一个循环值操作符中的Filter examples操作符生成的三个示例)转换为一个单独的示例对象,作为第二个循环值操作符的输入。所以,问题现在解决了。再次感谢您的帮助!

    MartinLiebig nocibambi
  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,成员职位:1761年独角兽

    哈!我很高兴我再次检查了这个线程,我正要开始这个。太棒了,我很高兴你找到了解决方案,我希望你能留在社区,尽你所能提供帮助!

  • nocibambinocibambi 成员职位:2贡献我

    嗨MickMcWilliams,

    我正在努力做同样的练习,并阅读了这篇文章,但可能我仍然不了解RM循环和分支是如何工作的。你能在这个论坛上分享你的解决方案吗,这样我就可以检查我做错了什么?

    很多谢谢!

    安德拉斯

  • Thomas_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,成员职位:1761年独角兽

    @nocibambi在美国,如果你想引起某人的注意,我建议你在他们的社区名后面加上“@”符号。就像我为了引起你的注意所做的那样。:)

    nocibambi
  • MickMcWilliamsMickMcWilliams 成员职位:11因素二世

    引用我之前的帖子(https://community.www.turtlecreekpls.com/t5/Getting-Started-Forum/Looping-Branching-and-Appending-tutorial-challenge-process/m-p/38899#M597)...所需要做的就是在两个循环值操作符之间插入一个追加操作符。这将IOCollectionObject(由第一个循环值操作符中的Filter examples操作符生成的三个示例)转换为一个单独的示例对象,作为第二个循环值操作符的输入。所以,问题现在解决了。再次感谢您的帮助!”希望这对你有所帮助…

    nocibambi
  • nocibambinocibambi 成员职位:2贡献我

    你好,

    @Thomas_Ott谢谢你的提示!

    @MickMcWilliams谢谢您的及时回复。我确实读了那篇文章,我在两个循环之间使用了Append对象(实际上,甚至在我写这篇文章之前)。但是,它仍然不起作用,我想找出问题是什么,所以这就是我问的原因。

  • sgenzersgenzer 12管理员,版主,员工,RapidMiner认证分析师,社区经理,成员,大学教授,PM版主职位:2959年社区经理

    你好@nocibambi欢迎来到这个社区!我建议在这里发布您的XML过程(参见https://youtu.be/KkgB5QXWXJ8和“在发布前阅读”,当你回复),并附上你的数据集。这样我们就可以复制你正在做的事情,帮助你做得更好。

    斯科特

  • SHSguySHSguy 成员职位:24贡献我

    @sgenzer

    我也尝试了这个练习(多次),直到我能告诉我,我一字不差地遵循了教程的说明。然而,我一直得到不可能的参数错误。与前面的阶段不同,循环过程的内部不提供引导标记(不确定是设计还是错误),因为前面的注释通过添加过程从教程中转移了。我还在YouTube上观看了一个视频,视频中这个人也遇到了一些麻烦(https://www.youtube.com/watch?v=lhSCmAL0SIs).尝试了分支的各种输入选项,但都没有改变错误。

    截屏2018-05-12 at 12.44.22 pm.png

    谢谢,

  • sgenzersgenzer 12管理员,版主,员工,RapidMiner认证分析师,社区经理,成员,大学教授,PM版主职位:2959年社区经理

    你好@SHSguy嗯,以前从未看过这个视频,但我马上就担心了,因为它是从2016年使用7.1版本到2018年使用8.2版本。同样,如果您发布了XML和数据集,则更容易找出问题所在。


    斯科特

  • Tuhin321Tuhin321 成员职位:1新手
    你好,

    这次讨论很有帮助。我是RapidMiner的新手,一直面临着同样的问题@MickMcWilliams感谢你的想法,我已经能够解决这个问题,有三个不同的“IOCollectionObject”和收集他们到一个例子集。然而,一个非常奇怪的事情不断发生,我能够得到所需的解决方案(831个总数的例子:277每个从三个乘客类)只有当我有一个断点在第一个循环>分支(断点后)或在该分支下面的子级别在'then'子句。如果没有该断点,则包括所有示例(总共1309个)。知道是什么原因造成的吗?

    我在这里附上了代码(使用泰坦尼克数据)。提前感谢!
    LBAown.rmp 10.6 k
登录注册置评。