Getting values from Exampleset

alexman
alexman New Altair Community Member
edited November 5 in Community Q&A
hi

I've a process and my output is an exampleset like this

Value1 Outlier_value1    Value2  Outlier_value2      Value3 Outlier_value3 value4 value5 value6
55555    true                          9      false                    55              no              tall      brown yellow
1            false                        9      false                    66                no          short    brown blue
2            false                        3      false                    65                no          short    brown red
3            false                      2222  true                      55                no          short    vbrown green
4            false                        1      false                    69                no          short    brown  blue
5            false                        2      false                    45                no          short    brown  blue
3            false                        4      false                    999595      yes        short    brown  blue

which is the best way to get values 55555 (outlier_value1) 2222 (outlier_value2) and 999595 (outlier_value3)
in the same process?
Applying filters? thanks for your response
Tagged:

Answers

  • haddock
    haddock New Altair Community Member
    What ho!

    Because you are filtering on a group of attributes you can use the aggregation operator, like this...

    <operator name="Root" class="Process" expanded="yes">
       <operator name="ExampleSource" class="ExampleSource">
           <parameter key="attributes" value="C:\Users\CJFP\Documents\rm_workspace\filter.aml"/>
       </operator>
       <operator name="AttributeAggregation" class="AttributeAggregation">
           <parameter key="attribute_name" value="altogether"/>
           <parameter key="aggregation_attributes" value="V.*"/>
           <parameter key="aggregation_function" value="maximum"/>
       </operator>
       <operator name="ExampleFilter" class="ExampleFilter">
           <parameter key="condition_class" value="attribute_value_filter"/>
           <parameter key="parameter_string" value="altogether&gt;1000"/>
       </operator>
    </operator>


    ( I'm assuming that you want to filter the above rows as examples, your question is a little unclear. )
  • alexman
    alexman New Altair Community Member
    Hi,
    is not the maximum. I need to get values where outlier is true.

    Value1 Outlier_value1    Value2  Outlier_value2      Value3 Outlier_value3 value4 value5 value6
    55555    true                         9      false                    55              no              tall      brown yellow
    1            false                        9      false                    66                no          short    brown blue
    2            false                        3      false                    65                no          short    brown red
    3            false                      2222  true                      55                no          short    vbrown green
    4            false                        1      false                    69                no          short    brown  blue
    5            false                        2      false                    45                no          short    brown  blue
    3            false                        4      false                    999595      true         short    brown  blue

    I need to get 55555, 2222 and 999595 (in this case are the maximum, but you have to look at the outlier_valueX to get or not the value)

    which is the best way to get those values isolated?

    thanks haddock

  • land
    land New Altair Community Member
    Hi,
    there are two ways:
    You could either use the scripting operator for writing an own function (I waited nearly half a year for saying this :) )
    or you could try to build a rather complex process involving Transpose, Attribute Construction, Attribute Filter and ExampleFilter operators.
    At least now, I cannot imagine any other way around...

    Greetings,
      Sebastian
  • alexman
    alexman New Altair Community Member
    ok Sebastian,

    then I need a rapidminer api method that returns a row index where the attribute has a value ...


    for(Attribute attribute: attributes) {

                String name = attribute.getName()
                es.recalculateAttributeStatistics(attribute)
                System.out.println("Nombre del atributo "+name)
               
                if (attribute.isNominal()){
               
                }
                else{
                /*
                  is there a method of rapidminer api that returns
                  the row where this attribute has a value (true in this case)
                  after that i'd like to get values from the row --- > get the outlier
                */
                }
    }

    thanks sebastian
  • land
    land New Altair Community Member
    Hi,
    you have to iterate over the exampleset and checking every example...

    Greetings,
      Sebastian