Comparison of several algorithms

csoares
csoares New Altair Community Member
edited November 5 in Community Q&A
Hi
I'm a newbie to RapidMiner and I'm trying to compare the performance of several algorithms. The way I found to do it is to add a OperatorSelect operator with all the algorithms I want to test as sub-operators. The problem with this approach is that I need to run the process for an algorithm, change the parameter of OperatorSelect, run the next algorithm and so on. Additionally, I need to store the results of each iteration somewhere and I couldn't find a way to analyze them simultaneously with RapidMiner.

I looked in the forum and found no answer for this although I think this is something I was expecting more people needed. So, what am I missing here?

Thanks in advance.
Cheers,
Carlos
Tagged:

Answers

  • IngoRM
    IngoRM New Altair Community Member
    Hi Carlos,

    here is the basic setup:

    <operator name="Root" class="Process" expanded="yes">
        <operator name="ExampleSetGenerator" class="ExampleSetGenerator">
            <parameter key="number_examples" value="200"/>
            <parameter key="target_function" value="sum classification"/>
        </operator>
        <operator name="NoiseGenerator" class="NoiseGenerator">
            <list key="noise">
            </list>
            <parameter key="random_attributes" value="1"/>
        </operator>
        <operator name="ParameterIteration" class="ParameterIteration" expanded="yes">
            <parameter key="keep_output" value="true"/>
            <list key="parameters">
              <parameter key="OperatorSelector.select_which" value="1,2,3"/>
            </list>
            <operator name="XValidation" class="XValidation" expanded="yes">
                <parameter key="local_random_seed" value="100"/>
                <operator name="OperatorSelector" class="OperatorSelector" expanded="yes">
                    <parameter key="select_which" value="3"/>
                    <operator name="DecisionTree" class="DecisionTree">
                    </operator>
                    <operator name="NaiveBayes" class="NaiveBayes">
                    </operator>
                    <operator name="LinearRegression" class="LinearRegression">
                    </operator>
                </operator>
                <operator name="OperatorChain" class="OperatorChain" expanded="yes">
                    <operator name="ModelApplier" class="ModelApplier">
                        <list key="application_parameters">
                        </list>
                    </operator>
                    <operator name="Performance" class="Performance">
                    </operator>
                </operator>
            </operator>
            <operator name="ProcessLog" class="ProcessLog">
                <list key="log">
                  <parameter key="which" value="operator.ParameterIteration.value.iteration"/>
                  <parameter key="performance" value="operator.XValidation.value.performance"/>
                </list>
            </operator>
        </operator>
    </operator>
    Please note that you will have to adapt the parameter list of the ParameterIteration operator if you want to use more or less than three inner operators.

    Cheers,
    Ingo