2016-06-02 9 views
0

Ich habe einige Daten, bei denen ein Attribut Informationen enthält, die in neue Beispiele (Zeilen) aufgeteilt werden müssen.Rapidminer generieren neue Beispiele aus aufgeteilten Attributen

Das Attribut heißt: 'Gruppe' und ein Wert wie folgt aussieht: 'A + B + C'

ich dieses Attribut zu spalten geschaffen, jetzt habe ich drei Attribute:

'GROUP_1': 'A', 'Gruppe_2': 'B', 'Gruppe_3': 'C'

Diese Gruppe hat ein anderes Attribut, z "Wert": "3". Jetzt möchte ich, dass mein Beispielsatz Beispiele mit den Attributen "Group" und "Value" enthält, anstatt ein zusammengeführtes Beispiel zu haben.

Meine Tabelle sieht wie folgt aus:

Example Set.

Ich kann meinen Prozess manuell multiplizieren und eine Teilmenge mit jeder Gruppe auswählen, dann Name zu Gruppieren und zusammenführen, aber dies ist eine statische Lösung und die Anzahl der Group_x ist nicht behoben.

Gibt es eine Möglichkeit, diesen Prozess abhängig von der Anzahl der group_x-Attribute zu automatisieren? (Unter Verwendung eines Makro-Operator kann ich nur alle Attribute zählen)

Die ExampleSet sollte wie folgt aussehen:

enter image description here

Antwort

0

Der Pivot Betreiber dies tun wird. Hier ein Beispiel: Die Subprocess erstellt die Daten, die Ihren Daten entsprechen. Die einzigen Operatoren, die Sie benötigen, sind die Pivot, um die Arbeit zu erledigen und Select Attributes, um die Attribute für das Endergebnis auszuwählen.

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<process version="7.0.000"> 
    <context> 
    <input/> 
    <output/> 
    <macros/> 
    </context> 
    <operator activated="true" class="process" compatibility="6.0.002" expanded="true" name="Process"> 
    <process expanded="true"> 
     <operator activated="true" class="subprocess" compatibility="7.0.000" expanded="true" height="82" name="Subprocess (2)" width="90" x="179" y="187"> 
     <process expanded="true"> 
      <operator activated="true" class="generate_data_user_specification" compatibility="7.0.000" expanded="true" height="68" name="Generate Data by User Specification" width="90" x="179" y="85"> 
      <list key="attribute_values"> 
       <parameter key="Value" value="3"/> 
       <parameter key="Group_1" value="&quot;A&quot;"/> 
       <parameter key="Group_2" value="&quot;B&quot;"/> 
       <parameter key="Group_3" value="&quot;C&quot;"/> 
      </list> 
      <list key="set_additional_roles"/> 
      </operator> 
      <operator activated="true" class="generate_data_user_specification" compatibility="7.0.000" expanded="true" height="68" name="Generate Data by User Specification (2)" width="90" x="179" y="187"> 
      <list key="attribute_values"> 
       <parameter key="Value" value="13"/> 
       <parameter key="Group_1" value="&quot;B&quot;"/> 
       <parameter key="Group_2" value="&quot;C&quot;"/> 
       <parameter key="Group_3" value="&quot;D&quot;"/> 
      </list> 
      <list key="set_additional_roles"/> 
      </operator> 
      <operator activated="true" class="generate_data_user_specification" compatibility="7.0.000" expanded="true" height="68" name="Generate Data by User Specification (3)" width="90" x="179" y="289"> 
      <list key="attribute_values"> 
       <parameter key="Value" value="11"/> 
       <parameter key="Group_1" value="&quot;D&quot;"/> 
       <parameter key="Group_2" value="&quot;A&quot;"/> 
       <parameter key="Group_3" value="&quot;B&quot;"/> 
      </list> 
      <list key="set_additional_roles"/> 
      </operator> 
      <operator activated="true" class="generate_data_user_specification" compatibility="7.0.000" expanded="true" height="68" name="Generate Data by User Specification (4)" width="90" x="179" y="391"> 
      <list key="attribute_values"> 
       <parameter key="Value" value="32"/> 
       <parameter key="Group_1" value="&quot;C&quot;"/> 
       <parameter key="Group_2" value="&quot;Missing&quot;"/> 
       <parameter key="Group_3" value="&quot;Missing&quot;"/> 
      </list> 
      <list key="set_additional_roles"/> 
      </operator> 
      <operator activated="true" class="generate_data_user_specification" compatibility="7.0.000" expanded="true" height="68" name="Generate Data by User Specification (5)" width="90" x="179" y="493"> 
      <list key="attribute_values"> 
       <parameter key="Value" value="5"/> 
       <parameter key="Group_1" value="&quot;A&quot;"/> 
       <parameter key="Group_2" value="&quot;C&quot;"/> 
       <parameter key="Group_3" value="&quot;Missing&quot;"/> 
      </list> 
      <list key="set_additional_roles"/> 
      </operator> 
      <operator activated="true" class="append" compatibility="7.0.000" expanded="true" height="166" name="Append" width="90" x="514" y="85"/> 
      <operator activated="true" class="declare_missing_value" compatibility="7.0.000" expanded="true" height="82" name="Declare Missing Value" width="90" x="648" y="85"> 
      <parameter key="mode" value="nominal"/> 
      <parameter key="nominal_value" value="Missing"/> 
      </operator> 
      <operator activated="true" class="generate_id" compatibility="7.0.000" expanded="true" height="82" name="Generate ID" width="90" x="782" y="85"/> 
      <connect from_op="Generate Data by User Specification" from_port="output" to_op="Append" to_port="example set 1"/> 
      <connect from_op="Generate Data by User Specification (2)" from_port="output" to_op="Append" to_port="example set 2"/> 
      <connect from_op="Generate Data by User Specification (3)" from_port="output" to_op="Append" to_port="example set 3"/> 
      <connect from_op="Generate Data by User Specification (4)" from_port="output" to_op="Append" to_port="example set 4"/> 
      <connect from_op="Generate Data by User Specification (5)" from_port="output" to_op="Append" to_port="example set 5"/> 
      <connect from_op="Append" from_port="merged set" to_op="Declare Missing Value" to_port="example set input"/> 
      <connect from_op="Declare Missing Value" from_port="example set output" to_op="Generate ID" to_port="example set input"/> 
      <connect from_op="Generate ID" from_port="example set output" to_port="out 1"/> 
      <portSpacing port="source_in 1" spacing="0"/> 
      <portSpacing port="sink_out 1" spacing="0"/> 
      <portSpacing port="sink_out 2" spacing="0"/> 
     </process> 
     </operator> 
     <operator activated="true" class="de_pivot" compatibility="7.0.000" expanded="true" height="82" name="De-Pivot (2)" width="90" x="313" y="187"> 
     <list key="attribute_name"> 
      <parameter key="Group" value="Group.*"/> 
     </list> 
     <parameter key="index_attribute" value="Value1"/> 
     <parameter key="create_nominal_index" value="true"/> 
     </operator> 
     <operator activated="true" class="select_attributes" compatibility="7.0.000" expanded="true" height="82" name="Select Attributes" width="90" x="447" y="187"> 
     <parameter key="attribute_filter_type" value="subset"/> 
     <parameter key="attributes" value="Group|Value|id"/> 
     </operator> 
     <connect from_op="Subprocess (2)" from_port="out 1" to_op="De-Pivot (2)" to_port="example set input"/> 
     <connect from_op="De-Pivot (2)" from_port="example set output" to_op="Select Attributes" to_port="example set input"/> 
     <connect from_op="Select 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> 

Hoffe, dass hilft.

+0

Danke Chris, das funktioniert perfekt! Gibt es eine Möglichkeit, nur bestimmte Attribute für das De-Pivoting zu übernehmen (z. B. für 'Group_1' nur 'Value'-Attribute und für' Group_2 'nur' Id'-Attribute?) – Ali

+0

Es wird möglich - es könnte kompliziert sein. Ich schlage vor, eine neue Frage mit einem bearbeiteten Datenbeispiel zu veröffentlichen (Sie könnten das Beispiel verwenden, das ich gab, um Daten zu erzeugen, um die Frage alleine zu machen), mein Name ist Andrew :) – awchisholm

+0

Es tut mir so leid Andrew! Danke für Ihre Hilfe. Ich habe noch ein paar Fragen, die ich stellen werde :). Übrigens. Das habe ich mit einer Menge Loops geschafft: D. – Ali