2017-04-03 8 views
0

Ich versuche, eine Beispielmenge von kommerziellen Eigenschaften in rapidminer zu filtern. Viele der Eigenschaften werden dupliziert, da die Transaktionshistorie der Eigenschaft in der Datentabelle enthalten ist und viele der Eigenschaften mehr als einmal über den Zeitraum der Datentabelle verkauft wurden. Was ich tun möchte, ist alle bis auf die letzte Transaktion für jede Eigenschaft herauszufiltern.Den 'neuesten' Beispiel-Datensatz in Rapidminer filtern

Ich kann nicht herausfinden, wie alle außer dem Datensatz mit dem letzten Transaktionsdatum gefiltert werden. Jede Hilfe wäre willkommen.

+0

Vielleicht brauchte ich nur etwas Schlaf, denn als ich heute Morgen aufwachte, fand ich eine scheinbar einfache und peinlich offensichtliche Lösung. Ich fand, dass das 'Remove Duplicates' funktioniert, wenn ich das Beispiel nach Datum sortiert habe. Dieser Operator speichert das erste Vorkommen eines Beispiels in einem Beispielsatz, der, wenn nach Datum sortiert, der letzte ist. –

Antwort

0

Sie sollten ein eigenständiges reproduzierbares Beispiel veröffentlichen, das Daten enthält, die zeigen, was Sie bisher versucht haben.

Ohne dies könnte der allgemeine Hinweis in diese Richtung gehen. Verwenden Sie den Operator Aggregate, um das maximale Datum für eine bestimmte Eigenschaft zu finden, und verwenden Sie dann den Operator Join, um den ursprünglichen Beispielsatz mit dem Beispielsatz mit Maxima zu verknüpfen.

Hier ist ein Spielzeugbeispiel, das den Iris-Datensatz verwendet, der in Ihrem Fall anwendbar sein könnte.

<?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="retrieve" compatibility="7.4.000" expanded="true" height="68" name="Retrieve Iris" width="90" x="112" y="187"> 
     <parameter key="repository_entry" value="//Samples/data/Iris"/> 
     </operator> 
     <operator activated="true" class="aggregate" compatibility="7.4.000" expanded="true" height="82" name="Aggregate" width="90" x="313" y="187"> 
     <list key="aggregation_attributes"> 
      <parameter key="a1" value="maximum"/> 
     </list> 
     <parameter key="group_by_attributes" value="label"/> 
     </operator> 
     <operator activated="true" class="join" compatibility="7.4.000" expanded="true" height="82" name="Join" width="90" x="514" y="187"> 
     <parameter key="use_id_attribute_as_key" value="false"/> 
     <list key="key_attributes"> 
      <parameter key="label" value="label"/> 
      <parameter key="a1" value="maximum(a1)"/> 
     </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="right"/> 
     <connect from_op="Aggregate" from_port="original" to_op="Join" to_port="left"/> 
     <connect from_op="Join" from_port="join" 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>