2010-12-15 16 views
1

Ich habe Rapidminer verwendet und eine Reihe von Prozessen erstellt, die einen Standardsatz von Aufgaben vorgeben. Jetzt möchte ich dem Benutzer erlauben, die Parameter eines Prozesses beim Start dynamisch festzulegen.Runtime pompt für Rapidminer

Zum Beispiel möchte ich beim Schreiben einer CSV den Benutzer auffordern, eine Zeichenkette einzugeben, die den Speicherort enthält, an dem sie gespeichert werden soll (entweder am Anfang des Skripts oder in einer anderen Phase während des Vorgangs) .

Ist via Rapidminer dies möglich ist, oder sollte ich ein Skript zu generieren und runt er on the fly verarbeiten erschaffen?

Antwort

1

die Parameter, die Sie an Ihre Prozesse übergeben ändern wollen glaube ich, dass Sie die bearbeiten müssen .xml-Datei Ihres Prozesses, zum Beispiel

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<process version="5.0"> 
    <context> 
    <input/> 
    <output/> 
    <macros/> 
    </context> 
    <operator activated="true" class="process" compatibility="5.0.10" expanded="true" name="Process"> 
    <process expanded="true" height="145" width="212"> 
     <operator activated="true" class="generate_data" compatibility="5.0.10" expanded="true" height="60" name="Generate Data" width="90" x="112" y="30"> 
     <parameter key="number_examples" value="10"/> 
     </operator> 
     <operator activated="true" class="write_csv" compatibility="5.0.10" expanded="true" height="60" name="Write CSV" width="90" x="271" y="39"> 
     <parameter key="csv_file" value="C:\Users\wessel\Desktop\gendata.csv"/> 
     </operator> 
     <connect from_op="Generate Data" from_port="output" to_op="Write CSV" to_port="input"/> 
     <connect from_op="Write CSV" from_port="through" 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> 

Sie können sehen, dass der Wert für den write_csv-Operator den Pfad der Datei enthält, in die geschrieben werden soll. Wenn Sie die Parameter wie beschrieben ändern, müssen Sie ein Skript schreiben, um die Werte vom Benutzer abzurufen, die entsprechenden Werte in der XML-Datei auf diese gewünschten Werte bearbeiten und den Prozess dann bei RapidMiner auslösen.

+0

Hatte gehofft es könnte einen schnelleren Weg geben - aber ich denke, das ist die einzige Lösung. – eamo

0

Es ist möglich, ein Groovy-Skript zu erstellen, mit dem Benutzer zur Laufzeit Eingabeaufforderungen eingeben können. Dadurch müssen Sie den Prozess nicht jedes Mal bearbeiten.

Hier ist ein example basierend auf einem Original aus dem RapidMiner Forum.