2017-05-15 4 views
1

申し訳ありません私はRapidMinerを完全に新しくしており、基本的なチュートリアルのみ行っています。ラピッドマイナーロー最大

私は

MatchID Value1 Value2 Value3 
1   5  1  2 
1   4.5  1.5  2 
... 

のようなデータセットを持っているし、(属性を生成する)(例えば、値1のための)列ごとの最高値を取得し、それとのさらなる計算を行うpossibiltyがあるかどうかを知りたいです。

ありがとうございます。

答えて

3

多くの方法があります。ここではAggregate演算子を使用して最大値を見つけ、Joinをこれに元に戻し、Generate Attributesを計算に使用します。

<?xml version="1.0" encoding="UTF-8"?><process version="7.2.003"> 
    <context> 
    <input/> 
    <output/> 
    <macros/> 
    </context> 
    <operator activated="true" class="process" compatibility="7.2.003" expanded="true" name="Process"> 
    <process expanded="true"> 
     <operator activated="true" class="retrieve" compatibility="7.2.003" expanded="true" height="68" name="Retrieve Iris" width="90" x="45" y="34"> 
    <parameter key="repository_entry" value="//Samples/data/Iris"/> 
     </operator> 
     <operator activated="true" class="aggregate" compatibility="7.2.003" expanded="true" height="82" name="Aggregate" width="90" x="179" y="34"> 
    <parameter key="use_default_aggregation" value="true"/> 
    <parameter key="default_aggregation_function" value="maximum"/> 
    <list key="aggregation_attributes"/> 
     </operator> 
     <operator activated="true" class="join" compatibility="7.2.003" expanded="true" height="82" name="Join" width="90" x="313" y="34"> 
    <parameter key="join_type" value="outer"/> 
    <parameter key="use_id_attribute_as_key" value="false"/> 
    <list key="key_attributes"/> 
     </operator> 
     <operator activated="true" class="generate_attributes" compatibility="7.2.003" expanded="true" height="82" name="Generate Attributes" width="90" x="447" y="34"> 
    <list key="function_descriptions"> 
     <parameter key="deltaA1" value="[maximum(a1)]-a1"/> 
     <parameter key="deltaA2" value="[maximum(a2)]-a2"/> 
     <parameter key="deltaA3" value="[maximum(a3)]-a3"/> 
     <parameter key="deltaA4" value="[maximum(a4)]-a4"/> 
    </list> 
     </operator> 
     <connect from_op="Retrieve Iris" from_port="output" to_op="Aggregate" to_port="example set input"/> 
     <connect from_op="Aggregate" from_port="example set output" to_op="Join" to_port="left"/> 
     <connect from_op="Aggregate" from_port="original" to_op="Join" to_port="right"/> 
     <connect from_op="Join" from_port="join" to_op="Generate Attributes" to_port="example set input"/> 
     <connect from_op="Generate Attributes" from_port="example set output" 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> 
0

もう一つの方法は、maxを設定statisticsExtract Macro演算子を使用することです。これは、与えられた属性の最大値をマクロ値として保存します。 Generate Attributes

利点は、元のデータセットを変更せず、joinまたはmultiply演算子を使用する必要がないことです。

<?xml version="1.0" encoding="UTF-8"?><process version="7.5.000"> 
    <context> 
    <input/> 
    <output/> 
    <macros/> 
    </context> 
    <operator activated="true" class="process" compatibility="7.5.000" expanded="true" name="Process"> 
    <process expanded="true"> 
     <operator activated="true" class="retrieve" compatibility="7.5.000" expanded="true" height="68" name="Retrieve Iris" width="90" x="45" y="34"> 
     <parameter key="repository_entry" value="//Samples/data/Iris"/> 
     </operator> 
     <operator activated="true" class="extract_macro" compatibility="7.5.000" expanded="true" height="68" name="Extract Macro" width="90" x="179" y="34"> 
     <parameter key="macro" value="maxA1"/> 
     <parameter key="macro_type" value="statistics"/> 
     <parameter key="statistics" value="max"/> 
     <parameter key="attribute_name" value="a1"/> 
     <list key="additional_macros"/> 
     <description align="center" color="transparent" colored="false" width="126">extract maximum of attribute a1 and store it in a macro</description> 
     </operator> 
     <operator activated="true" class="generate_attributes" compatibility="7.5.000" expanded="true" height="82" name="Generate Attributes" width="90" x="313" y="34"> 
     <list key="function_descriptions"> 
      <parameter key="DifferenceA1" value="parse(%{maxA1})-a1"/> 
     </list> 
     <description align="center" color="transparent" colored="false" width="126">calculate the difference of a1 from the maximum using the macro value</description> 
     </operator> 
     <connect from_op="Retrieve Iris" from_port="output" to_op="Extract Macro" to_port="example set"/> 
     <connect from_op="Extract Macro" from_port="example set" to_op="Generate Attributes" to_port="example set input"/> 
     <connect from_op="Generate Attributes" from_port="example set output" 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> 

ヒント:マクロ値はテキストとして保存されているいるので、あなたが最初にその数値を使用するようにparseに持っています。

0

第3のオプションはSortに設定されており、最大値の例はFilter Example Rangeの演算子でのみ保持されます。これは、ある属性が最大値であるときに、他の属性の値に主に関心がある場合に便利です。

<?xml version="1.0" encoding="UTF-8"?><process version="7.5.000"> 
    <context> 
    <input/> 
    <output/> 
    <macros/> 
    </context> 
    <operator activated="true" class="process" compatibility="7.5.000" expanded="true" name="Process"> 
    <process expanded="true"> 
     <operator activated="true" class="retrieve" compatibility="7.5.000" expanded="true" height="68" name="Retrieve Iris" width="90" x="45" y="34"> 
     <parameter key="repository_entry" value="//Samples/data/Iris"/> 
     </operator> 
     <operator activated="true" class="sort" compatibility="7.5.000" expanded="true" height="82" name="Sort" width="90" x="179" y="34"> 
     <parameter key="attribute_name" value="a1"/> 
     <parameter key="sorting_direction" value="decreasing"/> 
     <description align="center" color="transparent" colored="false" width="126">sorting the example set on a1 decreasing</description> 
     </operator> 
     <operator activated="true" class="filter_example_range" compatibility="7.5.000" expanded="true" height="82" name="Filter Example Range" width="90" x="313" y="34"> 
     <parameter key="first_example" value="1"/> 
     <parameter key="last_example" value="1"/> 
     <description align="center" color="transparent" colored="false" width="126">only keeping the first example, which has the maximum for a1</description> 
     </operator> 
     <connect from_op="Retrieve Iris" from_port="output" to_op="Sort" to_port="example set input"/> 
     <connect from_op="Sort" from_port="example set output" to_op="Filter Example Range" to_port="example set input"/> 
     <connect from_op="Filter Example Range" from_port="example set output" 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>