multi label modeling operator - use several models

LeMarcLeMarc Member Posts: 72 Contributor II
Hi,
the goal is to apply several models for/within the multi label modeling operator. Therefore I use the Loop Parameters Operator within the Multi Label Modeling Operator. However it doesnt work. Below is the process with the titanic data set. Does anyone have another suggestion? Thanks!


<process version="9.7.000">
  <context>
    <input/>
    <output/>
    <macros/>
  </context>
  <operator activated="true" class="process" compatibility="9.7.000" expanded="true" name="Process">
    <parameter key="logverbosity" value="init"/>
    <parameter key="random_seed" value="2001"/>
    <parameter key="send_mail" value="never"/>
    <parameter key="notification_email" value=""/>
    <parameter key="process_duration_for_mail" value="30"/>
    <parameter key="encoding" value="SYSTEM"/>
    <process expanded="true">
      <operator activated="true" class="retrieve" compatibility="9.7.000" expanded="true" height="68" name="Retrieve Titanic Training" width="90" x="45" y="34">
        <parameter key="repository_entry" value="//Samples/data/Titanic Training"/>
      </operator>
      <operator activated="true" class="set_role" compatibility="9.7.000" expanded="true" height="82" name="Set Role" width="90" x="179" y="34">
        <parameter key="attribute_name" value="Survived"/>
        <parameter key="target_role" value="Survived"/>
        <list key="set_additional_roles">
          <parameter key="Passenger Class" value="Passenger Class"/>
        </list>
      </operator>
      <operator activated="true" class="time_series:multi_label_model_learner" compatibility="9.7.000" expanded="true" height="103" name="Multi Label Modeling" width="90" x="313" y="34">
        <parameter key="attribute_filter_type" value="subset"/>
        <parameter key="attribute" value=""/>
        <parameter key="attributes" value="Survived|Passenger Class"/>
        <parameter key="use_except_expression" value="false"/>
        <parameter key="value_type" value="attribute_value"/>
        <parameter key="use_value_type_exception" value="false"/>
        <parameter key="except_value_type" value="time"/>
        <parameter key="block_type" value="attribute_block"/>
        <parameter key="use_block_type_exception" value="false"/>
        <parameter key="except_block_type" value="value_matrix_row_start"/>
        <parameter key="invert_selection" value="false"/>
        <parameter key="include_special_attributes" value="true"/>
        <parameter key="add_macros" value="false"/>
        <parameter key="current_label_name_macro" value="current_label_attribute"/>
        <parameter key="current_label_type_macro" value="current_label_type"/>
        <parameter key="enable_parallel_execution" value="true"/>
        <process expanded="true">
          <operator activated="true" class="concurrency:loop_parameters" compatibility="9.7.000" expanded="true" height="103" name="Loop Parameters" width="90" x="313" y="34">
            <list key="parameters">
              <parameter key="Select Subprocess.select_which" value="[1.0;2;2;linear]"/>
            </list>
            <parameter key="error_handling" value="fail on error"/>
            <parameter key="log_performance" value="true"/>
            <parameter key="log_all_criteria" value="false"/>
            <parameter key="synchronize" value="false"/>
            <parameter key="enable_parallel_execution" value="true"/>
            <process expanded="true">
              <operator activated="true" class="select_subprocess" compatibility="9.7.000" expanded="true" height="103" name="Select Subprocess" width="90" x="313" y="34">
                <parameter key="select_which" value="1"/>
                <process expanded="true">
                  <operator activated="true" class="concurrency:cross_validation" compatibility="9.7.000" expanded="true" height="145" name="Cross Validation" width="90" x="179" y="34">
                    <parameter key="split_on_batch_attribute" value="false"/>
                    <parameter key="leave_one_out" value="false"/>
                    <parameter key="number_of_folds" value="10"/>
                    <parameter key="sampling_type" value="automatic"/>
                    <parameter key="use_local_random_seed" value="false"/>
                    <parameter key="local_random_seed" value="1992"/>
                    <parameter key="enable_parallel_execution" value="true"/>
                    <process expanded="true">
                      <operator activated="true" class="concurrency:parallel_random_forest" compatibility="9.7.000" expanded="true" height="103" name="Random Forest" width="90" x="112" y="34">
                        <parameter key="number_of_trees" value="100"/>
                        <parameter key="criterion" value="gain_ratio"/>
                        <parameter key="maximal_depth" value="10"/>
                        <parameter key="apply_pruning" value="false"/>
                        <parameter key="confidence" value="0.1"/>
                        <parameter key="apply_prepruning" value="false"/>
                        <parameter key="minimal_gain" value="0.01"/>
                        <parameter key="minimal_leaf_size" value="2"/>
                        <parameter key="minimal_size_for_split" value="4"/>
                        <parameter key="number_of_prepruning_alternatives" value="3"/>
                        <parameter key="random_splits" value="false"/>
                        <parameter key="guess_subset_ratio" value="true"/>
                        <parameter key="subset_ratio" value="0.2"/>
                        <parameter key="voting_strategy" value="confidence vote"/>
                        <parameter key="use_local_random_seed" value="false"/>
                        <parameter key="local_random_seed" value="1992"/>
                        <parameter key="enable_parallel_execution" value="true"/>
                      </operator>
                      <connect from_port="training set" to_op="Random Forest" to_port="training set"/>
                      <connect from_op="Random Forest" from_port="model" to_port="model"/>
                      <portSpacing port="source_training set" 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="9.7.000" expanded="true" height="82" name="Apply Model" width="90" x="112" y="34">
                        <list key="application_parameters"/>
                        <parameter key="create_view" value="false"/>
                      </operator>
                      <operator activated="true" class="performance_classification" compatibility="9.7.000" expanded="true" height="82" name="Performance" width="90" x="246" y="34">
                        <parameter key="main_criterion" value="first"/>
                        <parameter key="accuracy" value="true"/>
                        <parameter key="classification_error" value="false"/>
                        <parameter key="kappa" value="false"/>
                        <parameter key="weighted_mean_recall" value="false"/>
                        <parameter key="weighted_mean_precision" value="false"/>
                        <parameter key="spearman_rho" value="false"/>
                        <parameter key="kendall_tau" value="false"/>
                        <parameter key="absolute_error" value="false"/>
                        <parameter key="relative_error" value="false"/>
                        <parameter key="relative_error_lenient" value="false"/>
                        <parameter key="relative_error_strict" value="false"/>
                        <parameter key="normalized_absolute_error" value="false"/>
                        <parameter key="root_mean_squared_error" value="false"/>
                        <parameter key="root_relative_squared_error" value="false"/>
                        <parameter key="squared_error" value="false"/>
                        <parameter key="correlation" value="false"/>
                        <parameter key="squared_correlation" value="false"/>
                        <parameter key="cross-entropy" value="false"/>
                        <parameter key="margin" value="false"/>
                        <parameter key="soft_margin_loss" value="false"/>
                        <parameter key="logistic_loss" value="false"/>
                        <parameter key="skip_undefined_labels" value="true"/>
                        <parameter key="use_example_weights" value="true"/>
                        <list key="class_weights"/>
                      </operator>
                      <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="performance 1"/>
                      <portSpacing port="source_model" spacing="0"/>
                      <portSpacing port="source_test set" spacing="0"/>
                      <portSpacing port="source_through 1" spacing="0"/>
                      <portSpacing port="sink_test set results" spacing="0"/>
                      <portSpacing port="sink_performance 1" spacing="0"/>
                      <portSpacing port="sink_performance 2" spacing="0"/>
                    </process>
                  </operator>
                  <connect from_port="input 1" to_op="Cross Validation" to_port="example set"/>
                  <connect from_op="Cross Validation" from_port="model" to_port="output 1"/>
                  <connect from_op="Cross Validation" from_port="performance 1" to_port="output 2"/>
                  <portSpacing port="source_input 1" spacing="0"/>
                  <portSpacing port="source_input 2" spacing="0"/>
                  <portSpacing port="sink_output 1" spacing="0"/>
                  <portSpacing port="sink_output 2" spacing="0"/>
                  <portSpacing port="sink_output 3" spacing="0"/>
                </process>
                <process expanded="true">
                  <operator activated="true" class="concurrency:cross_validation" compatibility="9.7.000" expanded="true" height="145" name="Cross Validation (2)" width="90" x="179" y="34">
                    <parameter key="split_on_batch_attribute" value="false"/>
                    <parameter key="leave_one_out" value="false"/>
                    <parameter key="number_of_folds" value="10"/>
                    <parameter key="sampling_type" value="automatic"/>
                    <parameter key="use_local_random_seed" value="false"/>
                    <parameter key="local_random_seed" value="1992"/>
                    <parameter key="enable_parallel_execution" value="true"/>
                    <process expanded="true">
                      <operator activated="true" class="naive_bayes" compatibility="9.7.000" expanded="true" height="82" name="Naive Bayes" width="90" x="112" y="34">
                        <parameter key="laplace_correction" value="true"/>
                      </operator>
                      <connect from_port="training set" to_op="Naive Bayes" to_port="training set"/>
                      <connect from_op="Naive Bayes" from_port="model" to_port="model"/>
                      <portSpacing port="source_training set" 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="9.7.000" expanded="true" height="82" name="Apply Model (2)" width="90" x="112" y="34">
                        <list key="application_parameters"/>
                        <parameter key="create_view" value="false"/>
                      </operator>
                      <operator activated="true" class="performance_classification" compatibility="9.7.000" expanded="true" height="82" name="Performance (2)" width="90" x="246" y="34">
                        <parameter key="main_criterion" value="first"/>
                        <parameter key="accuracy" value="true"/>
                        <parameter key="classification_error" value="false"/>
                        <parameter key="kappa" value="false"/>
                        <parameter key="weighted_mean_recall" value="false"/>
                        <parameter key="weighted_mean_precision" value="false"/>
                        <parameter key="spearman_rho" value="false"/>
                        <parameter key="kendall_tau" value="false"/>
                        <parameter key="absolute_error" value="false"/>
                        <parameter key="relative_error" value="false"/>
                        <parameter key="relative_error_lenient" value="false"/>
                        <parameter key="relative_error_strict" value="false"/>
                        <parameter key="normalized_absolute_error" value="false"/>
                        <parameter key="root_mean_squared_error" value="false"/>
                        <parameter key="root_relative_squared_error" value="false"/>
                        <parameter key="squared_error" value="false"/>
                        <parameter key="correlation" value="false"/>
                        <parameter key="squared_correlation" value="false"/>
                        <parameter key="cross-entropy" value="false"/>
                        <parameter key="margin" value="false"/>
                        <parameter key="soft_margin_loss" value="false"/>
                        <parameter key="logistic_loss" value="false"/>
                        <parameter key="skip_undefined_labels" value="true"/>
                        <parameter key="use_example_weights" value="true"/>
                        <list key="class_weights"/>
                      </operator>
                      <connect from_port="model" to_op="Apply Model (2)" to_port="model"/>
                      <connect from_port="test set" to_op="Apply Model (2)" to_port="unlabelled data"/>
                      <connect from_op="Apply Model (2)" from_port="labelled data" to_op="Performance (2)" to_port="labelled data"/>
                      <connect from_op="Performance (2)" from_port="performance" to_port="performance 1"/>
                      <portSpacing port="source_model" spacing="0"/>
                      <portSpacing port="source_test set" spacing="0"/>
                      <portSpacing port="source_through 1" spacing="0"/>
                      <portSpacing port="sink_test set results" spacing="0"/>
                      <portSpacing port="sink_performance 1" spacing="0"/>
                      <portSpacing port="sink_performance 2" spacing="0"/>
                    </process>
                  </operator>
                  <connect from_port="input 1" to_op="Cross Validation (2)" to_port="example set"/>
                  <connect from_op="Cross Validation (2)" from_port="model" to_port="output 1"/>
                  <connect from_op="Cross Validation (2)" from_port="performance 1" to_port="output 2"/>
                  <portSpacing port="source_input 1" spacing="0"/>
                  <portSpacing port="source_input 2" spacing="0"/>
                  <portSpacing port="sink_output 1" spacing="0"/>
                  <portSpacing port="sink_output 2" spacing="0"/>
                  <portSpacing port="sink_output 3" spacing="0"/>
                </process>
              </operator>
              <connect from_port="input 1" to_op="Select Subprocess" to_port="input 1"/>
              <connect from_op="Select Subprocess" from_port="output 1" to_port="output 1"/>
              <connect from_op="Select Subprocess" from_port="output 2" to_port="performance"/>
              <portSpacing port="source_input 1" spacing="0"/>
              <portSpacing port="source_input 2" spacing="0"/>
              <portSpacing port="sink_performance" spacing="0"/>
              <portSpacing port="sink_output 1" spacing="0"/>
              <portSpacing port="sink_output 2" spacing="0"/>
              <portSpacing port="sink_output 3" spacing="0"/>
            </process>
          </operator>
          <connect from_port="training set" to_op="Loop Parameters" to_port="input 1"/>
          <connect from_op="Loop Parameters" from_port="output 1" to_port="model"/>
          <connect from_op="Loop Parameters" from_port="output 2" to_port="output 1"/>
          <portSpacing port="source_training set" spacing="0"/>
          <portSpacing port="source_input 1" spacing="0"/>
          <portSpacing port="sink_model" spacing="0"/>
          <portSpacing port="sink_output 1" spacing="0"/>
          <portSpacing port="sink_output 2" spacing="0"/>
        </process>
      </operator>
      <connect from_op="Retrieve Titanic Training" from_port="output" to_op="Set Role" to_port="example set input"/>
      <connect from_op="Set Role" from_port="example set output" to_op="Multi Label Modeling" to_port="training set"/>
      <connect from_op="Multi Label Modeling" from_port="model" to_port="result 1"/>
      <connect from_op="Multi Label Modeling" from_port="output 1" to_port="result 2"/>
      <portSpacing port="source_input 1" spacing="0"/>
      <portSpacing port="sink_result 1" spacing="0"/>
      <portSpacing port="sink_result 2" spacing="0"/>
      <portSpacing port="sink_result 3" spacing="0"/>
    </process>
  </operator>
</process>




Best Answers

Answers

  • LeMarcLeMarc Member Posts: 72 Contributor II
    edited July 2020
    @hbajpai yes im trying to use several models inside the multi label modeling operator. I want the models to run at the same time. Therefore the output of the MLM Operator should be several models for each selected label. [RF & NB model for "survived ; RF & NB model for "passenger class"]
    In your approach only one single model will be the output depending on which model you select. 
  • LeMarcLeMarc Member Posts: 72 Contributor II
    edited July 2020
    Using the Optimize Parameters Grid works. Thank you!
     
    thanks @hbajpai for the hint, that the output of the MLM Operator will select automatically the best model.

Sign In or Register to comment.