2013-08-24 3 views
-1

Я создал поток процессов в RapidMiner, который использует некоторые циклы. Я не совсем уверен, к чему должен подключиться оператор Store Model, чтобы сохранить параметры модели, полученные в результате этого процесса, в новом процессе.RapidMiner: где/как работает оператор Store (Model) в этом потоке процесса

В прилагаемом примере мои данные заменены некоторыми образцовыми данными, однако остальная часть процесса - это то, что у меня есть для моего фактического набора данных.

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<process version="5.3.012"> 
    <context> 
    <input/> 
    <output/> 
    <macros/> 
    </context> 
    <operator activated="true" class="process" compatibility="5.3.012" expanded="true" name="Process"> 
    <process expanded="true"> 
     <operator activated="true" class="retrieve" compatibility="5.3.012" expanded="true" height="60" name="Retrieve Sonar" width="90" x="45" y="30"> 
     <parameter key="repository_entry" value="//Samples/data/Sonar"/> 
     </operator> 
     <operator activated="true" class="numerical_to_binominal" compatibility="5.3.012" expanded="true" height="76" name="Numerical to Binominal" width="90" x="179" y="30"> 
     <parameter key="attribute_filter_type" value="single"/> 
     <parameter key="attribute" value="20_OV_COVER"/> 
     </operator> 
     <operator activated="true" class="set_role" compatibility="5.3.012" expanded="true" height="76" name="Set Role" width="90" x="45" y="120"> 
     <parameter key="attribute_name" value="class"/> 
     <parameter key="target_role" value="label"/> 
     <list key="set_additional_roles"/> 
     </operator> 
     <operator activated="true" class="normalize" compatibility="5.3.012" expanded="true" height="94" name="Normalize" width="90" x="179" y="120"/> 
     <operator activated="true" class="nominal_to_numerical" compatibility="5.3.012" expanded="true" height="94" name="Nominal to Numerical (2)" width="90" x="45" y="210"> 
     <list key="comparison_groups"/> 
     </operator> 
     <operator activated="true" class="replace_missing_values" compatibility="5.3.012" expanded="true" height="94" name="Replace Missing Values" width="90" x="179" y="210"> 
     <list key="columns"/> 
     </operator> 
     <operator activated="true" class="independent_component_analysis" compatibility="5.3.012" expanded="true" height="94" name="ICA" width="90" x="313" y="210"> 
     <parameter key="number_of_components" value="700"/> 
     </operator> 
     <operator activated="true" class="optimize_selection_forward" compatibility="5.3.012" expanded="true" height="94" name="Forward Selection" width="90" x="514" y="75"> 
     <parameter key="maximal_number_of_attributes" value="100"/> 
     <parameter key="speculative_rounds" value="10"/> 
     <process expanded="true"> 
      <operator activated="true" class="x_validation" compatibility="5.3.012" expanded="true" height="112" name="Validation" width="90" x="112" y="30"> 
      <parameter key="number_of_validations" value="5"/> 
      <process expanded="true"> 
       <operator activated="true" class="naive_bayes" compatibility="5.3.012" expanded="true" height="76" name="Naive Bayes" width="90" x="112" y="30"/> 
       <connect from_port="training" to_op="Naive Bayes" to_port="training set"/> 
       <connect from_op="Naive Bayes" from_port="model" to_port="model"/> 
       <portSpacing port="source_training" spacing="0"/> 
       <portSpacing port="sink_model" spacing="0"/> 
       <portSpacing port="sink_through 1" spacing="0"/> 
      </process> 
      <process expanded="true"> 
       <operator activated="true" class="apply_model" compatibility="5.3.012" expanded="true" height="76" name="Apply Model" width="90" x="45" y="30"> 
       <list key="application_parameters"/> 
       </operator> 
       <operator activated="true" class="performance" compatibility="5.3.012" expanded="true" height="76" name="Performance" width="90" x="276" y="30"/> 
       <connect from_port="model" to_op="Apply Model" to_port="model"/> 
       <connect from_port="test set" to_op="Apply Model" to_port="unlabelled data"/> 
       <connect from_op="Apply Model" from_port="labelled data" to_op="Performance" to_port="labelled data"/> 
       <connect from_op="Performance" from_port="performance" to_port="averagable 1"/> 
       <portSpacing port="source_model" spacing="0"/> 
       <portSpacing port="source_test set" spacing="0"/> 
       <portSpacing port="source_through 1" spacing="0"/> 
       <portSpacing port="sink_averagable 1" spacing="0"/> 
       <portSpacing port="sink_averagable 2" spacing="0"/> 
      </process> 
      </operator> 
      <connect from_port="example set" to_op="Validation" to_port="training"/> 
      <connect from_op="Validation" from_port="averagable 1" to_port="performance"/> 
      <portSpacing port="source_example set" spacing="0"/> 
      <portSpacing port="sink_performance" spacing="0"/> 
     </process> 
     </operator> 
     <connect from_op="Retrieve Sonar" from_port="output" to_op="Numerical to Binominal" to_port="example set input"/> 
     <connect from_op="Numerical to Binominal" from_port="example set output" to_op="Set Role" to_port="example set input"/> 
     <connect from_op="Set Role" from_port="example set output" to_op="Normalize" to_port="example set input"/> 
     <connect from_op="Normalize" from_port="example set output" to_op="Nominal to Numerical (2)" to_port="example set input"/> 
     <connect from_op="Nominal to Numerical (2)" from_port="example set output" to_op="Replace Missing Values" to_port="example set input"/> 
     <connect from_op="Replace Missing Values" from_port="example set output" to_op="ICA" to_port="example set input"/> 
     <connect from_op="ICA" from_port="example set output" to_op="Forward Selection" to_port="example set"/> 
     <connect from_op="ICA" from_port="original" to_port="result 1"/> 
     <connect from_op="ICA" from_port="preprocessing model" to_port="result 2"/> 
     <connect from_op="Forward Selection" from_port="example set" to_port="result 3"/> 
     <connect from_op="Forward Selection" from_port="attribute weights" to_port="result 4"/> 
     <connect from_op="Forward Selection" from_port="performance" to_port="result 5"/> 
     <portSpacing port="source_input 1" spacing="0"/> 
     <portSpacing port="sink_result 1" spacing="18"/> 
     <portSpacing port="sink_result 2" spacing="0"/> 
     <portSpacing port="sink_result 3" spacing="0"/> 
     <portSpacing port="sink_result 4" spacing="0"/> 
     <portSpacing port="sink_result 5" spacing="0"/> 
     <portSpacing port="sink_result 6" spacing="0"/> 
    </process> 
    </operator> 
</process> 
+0

Было бы гораздо больше смысла, если вы спрашивали об этом в RapidMiner форумах сообщества, так как это по сути является использование приложения вопрос, а не программирования вопрос. –

ответ

0

Передний Оператор выбор выводит набор весов, и они могут быть использованы для выбора атрибутов, которые оператор нашел, чтобы дать лучшую производительность. Первое, что нужно сделать, это использовать эти веса с помощью оператора Select by Weight, чтобы предоставить примерный набор, который использовался для построения модели.

Оттуда вы можете просто перестроить модель с помощью этого примера, установленного вне оператора Forward Selection. Если вы также хотели получить оценку производительности по невидимым данным, вы можете использовать блок проверки достоверности для всех данных, но если нет, то просто использование оператора модели создаст нужную вам модель.

Когда я это пробовал, оценочная производительность, полученная мной, была отличной от той, что была произведена оператором прямого выбора, потому что разбиение в блоке проверки отличается из-за разных случайных чисел. Кроме того, блок Validation внутри Forward Selection дает среднюю производительность для 10 моделей, построенных на 10 разделах данных. Эти 10 моделей могут быть разными, поэтому нет ни одной истинной модели, которая может быть сохранена.

Надеюсь, что это поможет.

рассматривает

Эндрю

+0

Я заметил, что это крест, размещенный от statsexchange. http://stats.stackexchange.com/questions/68220/where-how-is-the-store-model-operator-connected-in-this-process-flow-in-rapidm Возможно, оригинальный плакат был бы таким добрым, как для выполнения некоторого домашнего хозяйства. – awchisholm