Learning process for Vote module

inthewoods
inthewoods New Altair Community Member
edited November 5 in Community Q&A
Hey all - I'm a newbie so please excuse what may be a stupid question.  I'm trying to put together a simple test of an Ensemble Learning system using Adaboost.  Here's what I've got so far:

<?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.11" expanded="true" name="Process">
    <process expanded="true" height="298" width="605">
      <operator activated="true" class="retrieve" compatibility="5.0.11" expanded="true" height="60" name="Retrieve" width="90" x="45" y="30">
        <parameter key="repository_entry" value="SPY_multi_data_v1"/>
      </operator>
      <operator activated="true" class="series:windowing" compatibility="5.0.2" expanded="true" height="76" name="Windowing" width="90" x="179" y="30">
        <parameter key="horizon" value="1"/>
        <parameter key="window_size" value="1"/>
        <parameter key="create_label" value="true"/>
        <parameter key="label_attribute" value="ROC-1"/>
      </operator>
      <operator activated="true" class="series:sliding_window_validation" compatibility="5.0.2" expanded="true" height="112" name="Validation" width="90" x="313" y="30">
        <process expanded="true" height="315" width="286">
          <operator activated="true" class="adaboost" compatibility="5.0.11" expanded="true" height="76" name="AdaBoost" width="90" x="112" y="30">
            <process expanded="true" height="297" width="603">
              <operator activated="true" class="vote" compatibility="5.0.11" expanded="true" height="60" name="Vote" width="90" x="246" y="30">
                <process expanded="true" height="331" width="714">
                  <portSpacing port="source_training set 1" spacing="0"/>
                  <portSpacing port="sink_base model 1" spacing="0"/>
                </process>
              </operator>
              <connect from_port="training set" to_op="Vote" to_port="training set"/>
              <connect from_op="Vote" from_port="model" to_port="model"/>
              <portSpacing port="source_training set" spacing="0"/>
              <portSpacing port="sink_model" spacing="0"/>
            </process>
          </operator>
          <connect from_port="training" to_op="AdaBoost" to_port="training set"/>
          <connect from_op="AdaBoost" 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" height="315" width="286">
          <operator activated="true" class="apply_model" compatibility="5.0.11" expanded="true" height="76" name="Apply Model" width="90" x="63" y="31">
            <list key="application_parameters"/>
          </operator>
          <operator activated="true" class="performance" compatibility="5.0.11" expanded="true" height="76" name="Performance" width="90" x="112" y="165"/>
          <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_op="Retrieve" from_port="output" to_op="Windowing" to_port="example set input"/>
      <connect from_op="Windowing" from_port="example set output" to_op="Validation" to_port="training"/>
      <connect from_op="Validation" from_port="training" to_port="result 1"/>
      <connect from_op="Validation" from_port="averagable 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>
I get an error on the Vote module which is asking for a Base Learner - but I'm not clear on what a Base Learner would be for a Vote.  I'm sure it'll seem obvious when I see it but I'm stuck so far.

Any help greatly appreciated!
Tagged:

Answers

  • SebastianLoh
    SebastianLoh New Altair Community Member
    Hi inthewoods,

    you missed to put some modeling operators into the Voting meta learner. Eg. you could but a Naaive Bayes, Decision Stump and a k-NN inside and let them vote.

    Take a look into the RM help http://rapid-i.com/wiki/index.php?title=Vote

    However, it seems to me a little bit odd to perform a AdaBoost on a Voting Meta Learner since the AdaBoost needs a lerner which can process attribute weights:

    http://en.wikipedia.org/wiki/AdaBoost

    I hope I could help,

    Ciao Sebastian