2017-02-23 138 views
1

我想反转表格中一组属性的分数。我选择了这些属性并将它们发送给“循环属性”功能。在我已经指定“生成属性”的函数中。对于每个属性,我想将它放在分母中,如下所示:1/[Attribute]。看来我必须在公式中指定一个属性名称。有没有我失踪的通配符选项?其他解决方案?使用RapidMiner中的循环属性函数通过数学表达式生成属性

Screen shot of Generate Attributes

回答

1

你正在寻找的通配符参数属性名称宏。 这个宏(与过程变量类似)可以在Generate Attributes Operator中生成所需的函数表达式,正如我在下面附加的过程中所做的那样(只需复制&将xml文件粘贴到RapidMiner内部的进程中)。 使用Loop Attribtes时,请注意使用RapidMiner 7.4的新选项,其中可以重复使用当前的ExampleSet,也可以为每次迭代返回一个包含单个示例集的集合。

有关宏的详细信息,下面一起来看看:

http://community.rapidminer.com/t5/RapidMiner-Studio-Knowledge-Base/How-to-Use-Macros/ta-p/32966

特别%{}宏和 EVAL (%{}宏)之间的区别也很重要。

样品处理:

<?xml version="1.0" encoding="UTF-8"?><process version="7.4.000"> 
    <context> 
    <input/> 
    <output/> 
    <macros/> 
    </context> 
    <operator activated="true" class="process" compatibility="7.4.000" expanded="true" name="Process"> 
    <process expanded="true"> 
     <operator activated="true" class="generate_data" compatibility="7.4.000" expanded="true" height="68" name="Generate Data" width="90" x="112" y="85"/> 
     <operator activated="true" class="concurrency:loop_attributes" compatibility="7.4.000" expanded="true" height="82" name="Loop Attributes" width="90" x="313" y="85"> 
     <parameter key="reuse_results" value="true"/> 
     <parameter key="enable_parallel_execution" value="false"/> 
     <process expanded="true"> 
      <operator activated="true" class="generate_attributes" compatibility="7.4.000" expanded="true" height="82" name="Generate Attributes" width="90" x="380" y="34"> 
      <list key="function_descriptions"> 
       <parameter key="%{loop_attribute}_new" value="1/eval(%{loop_attribute})"/> 
      </list> 
      </operator> 
      <connect from_port="input 1" to_op="Generate Attributes" to_port="example set input"/> 
      <connect from_op="Generate Attributes" from_port="example set output" to_port="output 1"/> 
      <portSpacing port="source_input 1" spacing="0"/> 
      <portSpacing port="source_input 2" spacing="0"/> 
      <portSpacing port="sink_output 1" spacing="0"/> 
      <portSpacing port="sink_output 2" spacing="0"/> 
     </process> 
     </operator> 
     <connect from_op="Generate Data" from_port="output" to_op="Loop Attributes" to_port="input 1"/> 
     <connect from_op="Loop Attributes" from_port="output 1" to_port="result 1"/> 
     <portSpacing port="source_input 1" spacing="0"/> 
     <portSpacing port="sink_result 1" spacing="0"/> 
     <portSpacing port="sink_result 2" spacing="0"/> 
    </process> 
    </operator> 
</process>