Scoring analysis available in RM5?

Robertk
Robertk New Altair Community Member
edited November 5 in Community Q&A
Hello,

I'd like to know if there are some methods in RM5 to do a scoring analysis (in particular: weighted score tables). I have seen this in SAP BW and I am also looking for it in RM5:

Info about weighted score tables:
English, German


Thank you
Tagged:

Answers

  • IngoRM
    IngoRM New Altair Community Member
    Hi Robert,

    sure, something like this is a piece of cake for RapidMiner. Here is an example process for RapidMiner:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <process version="5.0">
      <context>
        <input/>
        <output/>
        <macros/>
      </context>
      <operator activated="true" class="process" expanded="true" name="Process">
        <process expanded="true" height="566" width="480">
          <operator activated="true" class="generate_direct_mailing_data" expanded="true" height="60" name="Generate Direct Mailing Data" width="90" x="45" y="30"/>
          <operator activated="true" class="select_attributes" expanded="true" height="76" name="Select Attributes" width="90" x="179" y="30">
            <parameter key="attribute_filter_type" value="single"/>
            <parameter key="attribute" value="label"/>
            <parameter key="invert_selection" value="true"/>
            <parameter key="include_special_attributes" value="true"/>
          </operator>
          <operator activated="true" class="discretize_by_user_specification" expanded="true" height="94" name="Discretize" width="90" x="45" y="165">
            <parameter key="attribute_filter_type" value="single"/>
            <parameter key="attribute" value="age"/>
            <list key="classes">
              <parameter key="Below 10" value="10.0"/>
              <parameter key="Between 10 and 19" value="19.0"/>
              <parameter key="Between 20 and 39" value="39.0"/>
              <parameter key="Between 40 and 49" value="49.0"/>
              <parameter key="Between 50 and 59" value="59.0"/>
              <parameter key="Over 60" value="Infinity"/>
            </list>
          </operator>
          <operator activated="true" class="generate_copy" expanded="true" height="76" name="Generate Copy" width="90" x="45" y="345">
            <parameter key="attribute_name" value="age"/>
            <parameter key="new_name" value="age_value"/>
          </operator>
          <operator activated="true" class="map" expanded="true" height="76" name="Map" width="90" x="179" y="345">
            <parameter key="attribute_filter_type" value="single"/>
            <parameter key="attribute" value="age_value"/>
            <list key="value_mappings">
              <parameter key="Below 10" value="0"/>
              <parameter key="Between 10 and 19" value="5"/>
              <parameter key="Between 20 and 39" value="3"/>
              <parameter key="Between 40 and 49" value="2"/>
              <parameter key="Between 50 and 59" value="1"/>
              <parameter key="Over 60" value="0"/>
            </list>
          </operator>
          <operator activated="true" class="parse_numbers" expanded="true" height="76" name="Parse Numbers" width="90" x="313" y="345">
            <parameter key="attribute_filter_type" value="single"/>
            <parameter key="attribute" value="age_value"/>
          </operator>
          <operator activated="true" class="generate_attributes" expanded="true" height="76" name="Generate Attributes" width="90" x="45" y="480">
            <list key="function_descriptions">
              <parameter key="score" value="2 * age_value + 0.0001 * earnings"/>
            </list>
          </operator>
          <connect from_op="Generate Direct Mailing Data" from_port="output" to_op="Select Attributes" to_port="example set input"/>
          <connect from_op="Select Attributes" from_port="example set output" to_op="Discretize" to_port="example set input"/>
          <connect from_op="Discretize" from_port="example set output" to_op="Generate Copy" to_port="example set input"/>
          <connect from_op="Generate Copy" from_port="example set output" to_op="Map" to_port="example set input"/>
          <connect from_op="Map" from_port="example set output" to_op="Parse Numbers" to_port="example set input"/>
          <connect from_op="Parse Numbers" from_port="example set output" to_op="Generate Attributes" to_port="example set input"/>
          <connect from_op="Generate Attributes" from_port="example set output" to_port="result 1"/>
          <portSpacing port="source_input 1" spacing="0"/>
          <portSpacing port="sink_result 1" spacing="450"/>
          <portSpacing port="sink_result 2" spacing="0"/>
        </process>
      </operator>
    </process>
    The first operator generates data similar to that used in the links you provided. The next operator (Discretize) defines the different age groups. The next three operators map each age group to the value used for scoring. The last operator finally calculates the score and adds it as a new column to your data set.

    I have also uploaded the process to myExperiment and you can easily download and use the process with our new Community Extension. Just search for "Weighted Score Tables" in the myExperiment view of RapidMiner.

    Cheers,
    Ingo
  • Robertk
    Robertk New Altair Community Member
    Nice! Thank you very much!!