Ada boost issue

B_MinerB_Miner Member Posts: 72 Contributor II
edited November 2018 in Help
Hi Guys-

Looks like the ada boost operator has an error. I can run the process without issue by using the Weka Ada boost and Weka decision stump.

Below is the code and then the error message.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="5.0">
  <context>
    <input>
      <location/>
    </input>
    <output>
      <location/>
      <location/>
      <location/>
    </output>
    <macros/>
  </context>
  <operator activated="true" class="process" expanded="true" name="Process">
    <process expanded="true" height="546" width="386">
      <operator activated="true" class="read_csv" expanded="true" height="60" name="Read CSV" width="90" x="45" y="30">
        <parameter key="file_name" value="C:\Documents and Settings\aiufh35\Desktop\misc\PLAT\PLAT.csv"/>
      </operator>
      <operator activated="true" class="set_role" expanded="true" height="76" name="Set Role" width="90" x="112" y="30">
        <parameter key="name" value="PLAT"/>
        <parameter key="target_role" value="label"/>
      </operator>
      <operator activated="true" class="numerical_to_binominal" expanded="true" height="76" name="Numerical to Binominal" width="90" x="271" y="-12">
        <parameter key="attribute_filter_type" value="single"/>
        <parameter key="attribute" value="PLAT"/>
        <parameter key="include_special_attributes" value="true"/>
      </operator>
      <operator activated="true" class="read_csv" expanded="true" height="60" name="Read CSV (2)" width="90" x="45" y="210">
        <parameter key="file_name" value="C:\Documents and Settings\aiufh35\Desktop\misc\PLAT\PLAT_VAL.csv"/>
      </operator>
      <operator activated="true" class="set_role" expanded="true" height="76" name="Set Role (2)" width="90" x="45" y="300">
        <parameter key="name" value="PLAT"/>
        <parameter key="target_role" value="label"/>
      </operator>
      <operator activated="true" class="numerical_to_binominal" expanded="true" height="76" name="Numerical to Binominal (2)" width="90" x="45" y="390">
        <parameter key="attribute_filter_type" value="single"/>
        <parameter key="attribute" value="PLAT"/>
        <parameter key="include_special_attributes" value="true"/>
      </operator>
      <operator activated="true" class="work_on_subset" expanded="true" height="76" name="Work on Subset" width="90" x="45" y="120">
        <parameter key="attribute_filter_type" value="single"/>
        <parameter key="attribute" value="weight"/>
        <parameter key="attributes" value="torder_dum|sq_DAYSFROMAPPTOORD|SQ_SKUSPURCHASED|SQ_RCSPONORED|SQ_FULLCADENCE|RCSPONORED2_1|PRNT_PERSONALCAREREV|PRNT_NUTRITIONREV|PRNT_HOMECAREREV|PRNT_DURABLESREV|PRNT_BEAUTYREV|PLAT|PERSONALCAREREV|Ord2_1|NUTRITIONREV|LN_TOTALORDERS|LN_GROSSIBOPRICE|IBOSPONORED2_1|IBOSPONORED|HOMECAREREV|DaysIBO90|DURABLESREV|Cadence2_1|BEAUTYREV"/>
        <parameter key="invert_selection" value="true"/>
        <parameter key="include_special_attributes" value="true"/>
        <process expanded="true">
          <connect from_port="exampleSet" to_port="example set"/>
          <portSpacing port="source_exampleSet" spacing="0"/>
          <portSpacing port="sink_example set" spacing="0"/>
          <portSpacing port="sink_through 1" spacing="0"/>
        </process>
      </operator>
      <operator activated="true" class="adaboost" expanded="true" height="76" name="AdaBoost" width="90" x="179" y="120">
        <process expanded="true" height="368" width="368">
          <operator activated="true" class="decision_stump" expanded="true" height="76" name="Decision Stump" width="90" x="65" y="42"/>
          <connect from_port="training set" to_op="Decision Stump" to_port="training set"/>
          <connect from_op="Decision Stump" from_port="model" to_port="model"/>
          <portSpacing port="source_training set" spacing="0"/>
          <portSpacing port="sink_model" spacing="0"/>
        </process>
      </operator>
      <operator activated="true" class="apply_model" expanded="true" height="76" name="Apply Model" width="90" x="196" y="243">
        <list key="application_parameters"/>
      </operator>
      <operator activated="true" class="performance" expanded="true" height="76" name="Performance" width="90" x="313" y="120"/>
      <connect from_op="Read CSV" from_port="output" to_op="Set Role" to_port="example set input"/>
      <connect from_op="Set Role" from_port="example set output" to_op="Numerical to Binominal" to_port="example set input"/>
      <connect from_op="Numerical to Binominal" from_port="example set output" to_op="Work on Subset" to_port="example set"/>
      <connect from_op="Read CSV (2)" from_port="output" to_op="Set Role (2)" to_port="example set input"/>
      <connect from_op="Set Role (2)" from_port="example set output" to_op="Numerical to Binominal (2)" to_port="example set input"/>
      <connect from_op="Numerical to Binominal (2)" from_port="example set output" to_op="Apply Model" to_port="unlabelled data"/>
      <connect from_op="Work on Subset" from_port="example set" to_op="AdaBoost" to_port="training set"/>
      <connect from_op="AdaBoost" from_port="model" to_op="Apply Model" to_port="model"/>
      <connect from_op="AdaBoost" from_port="example set" to_port="result 2"/>
      <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="result 1"/>
      <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>



error:

Message: Cannot clone com.rapidminer.example.set.RemappedExampleSet: java.lang.reflect.InvocationTargetException. Target: java.lang.UnsupportedOperationException: The method getNominalMapping() is not supported by numerical attributes! You probably tried to execute an operator on a numerical data which is only able to handle nominal values. You could use one of the discretization operators before this application.. Cause: java.lang.UnsupportedOperationException: The method getNominalMapping() is not supported by numerical attributes! You probably tried to execute an operator on a numerical data which is only able to handle nominal values. You could use one of the discretization operators before this application..


Answers

  • haddockhaddock Member Posts: 849 Maven
    Hi there,

    The error message more probably indicates that something is awry with your data, rather than the operator; if you replace your datasources with a generator the problem disappears, like this..
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <process version="5.0">
      <context>
        <input>
          <location/>
        </input>
        <output>
          <location/>
          <location/>
          <location/>
        </output>
        <macros/>
      </context>
      <operator activated="true" class="process" expanded="true" name="Process">
        <process expanded="true" height="478" width="915">
          <operator activated="true" class="generate_nominal_data" expanded="true" height="60" name="Generate Nominal Data" width="90" x="-8" y="79"/>
          <operator activated="true" class="multiply" expanded="true" height="94" name="Multiply" width="90" x="45" y="255"/>
          <operator activated="true" class="adaboost" expanded="true" height="76" name="AdaBoost" width="90" x="179" y="120">
            <process expanded="true" height="478" width="915">
              <operator activated="true" class="decision_stump" expanded="true" height="76" name="Decision Stump" width="90" x="65" y="42"/>
              <connect from_port="training set" to_op="Decision Stump" to_port="training set"/>
              <connect from_op="Decision Stump" from_port="model" to_port="model"/>
              <portSpacing port="source_training set" spacing="0"/>
              <portSpacing port="sink_model" spacing="0"/>
            </process>
          </operator>
          <operator activated="true" class="apply_model" expanded="true" height="76" name="Apply Model" width="90" x="196" y="243">
            <list key="application_parameters"/>
          </operator>
          <operator activated="true" class="performance" expanded="true" height="76" name="Performance" width="90" x="313" y="120"/>
          <connect from_op="Generate Nominal Data" from_port="output" to_op="Multiply" to_port="input"/>
          <connect from_op="Multiply" from_port="output 1" to_op="AdaBoost" to_port="training set"/>
          <connect from_op="Multiply" from_port="output 2" to_op="Apply Model" to_port="unlabelled data"/>
          <connect from_op="AdaBoost" from_port="model" to_op="Apply Model" to_port="model"/>
          <connect from_op="AdaBoost" from_port="example set" to_port="result 2"/>
          <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="result 1"/>
          <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>
    Perhaps you could put in a break to check your data - as far as I can make out your numerical to binominal operators just fill numerical columns with "true", which may not be what you want, like this..
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <process version="5.0">
      <context>
        <input>
          <location/>
        </input>
        <output>
          <location/>
          <location/>
        </output>
        <macros/>
      </context>
      <operator activated="true" class="process" expanded="true" name="Process">
        <process expanded="true" height="478" width="915">
          <operator activated="true" breakpoints="after" class="generate_data" expanded="true" height="60" name="Generate Data" width="90" x="50" y="34"/>
          <operator activated="true" class="numerical_to_binominal" expanded="true" height="76" name="Numerical to Binominal" width="90" x="217" y="33"/>
          <connect from_op="Generate Data" 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_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>
    Anyways, good luck!

  • B_MinerB_Miner Member Posts: 72 Contributor II
    Hmmm thanks Haddock, I'll look at this. I thought since the process worked with other model operators as well as the Weka Ada boost the data was not at fault.

    Regarding the numeric to binomial operator I had a target column coded 0,1 but it came through csv operator as numeric so I was <I thought> changing it to a type of nominal...
Sign In or Register to comment.