How to average two predictions?

Unknown
edited November 5 in Community Q&A
I would like to combine two predictions of two different regression techniques, for example a SimpleLinearRegression and a SupportVectorRegression. The actual prediction on which the regression performance shall then be computed, should simply be the average of these two single predictions. I'm sure that there is an appropriate operator in Rapidminer, but I could not find it yet...

Thank you for your help :)
Tagged:

Answers

  • haddock
    haddock New Altair Community Member
    God aften og velkommen!

    You've probably looked at stacking, ensembles, etc., but if all else fails you could try this....
    <operator name="Root" class="Process" expanded="yes">
        <description text="This learner creates a linear regression model and an SVM model allowing average numerical predictions for the loaded data set."/>
        <operator name="ExampleSetGenerator" class="ExampleSetGenerator">
            <parameter key="target_function" value="random"/>
        </operator>
        <operator name="LinearRegression" class="LinearRegression">
            <parameter key="keep_example_set" value="true"/>
        </operator>
        <operator name="IOStorer" class="IOStorer">
            <parameter key="name" value="model1"/>
            <parameter key="io_object" value="Model"/>
        </operator>
        <operator name="LibSVMLearner" class="LibSVMLearner">
            <parameter key="keep_example_set" value="true"/>
            <parameter key="svm_type" value="nu-SVR"/>
            <list key="class_weights">
            </list>
        </operator>
        <operator name="ModelApplier" class="ModelApplier">
            <list key="application_parameters">
            </list>
        </operator>
        <operator name="ChangeAttributeNamesReplace" class="ChangeAttributeNamesReplace">
            <parameter key="replace_what" value="\(|\)"/>
        </operator>
        <operator name="ChangeAttributeRole" class="ChangeAttributeRole">
            <parameter key="name" value="predictionlabel"/>
        </operator>
        <operator name="IORetriever" class="IORetriever">
            <parameter key="name" value="model1"/>
            <parameter key="io_object" value="Model"/>
        </operator>
        <operator name="ModelApplier (2)" class="ModelApplier">
            <list key="application_parameters">
            </list>
        </operator>
        <operator name="ChangeAttributeNamesReplace (2)" class="ChangeAttributeNamesReplace">
            <parameter key="replace_what" value="\(|\)"/>
            <parameter key="replace_by" value="_"/>
        </operator>
        <operator name="ChangeAttributeRole (2)" class="ChangeAttributeRole">
            <parameter key="name" value="prediction_label_"/>
        </operator>
        <operator name="AttributeAggregation" class="AttributeAggregation">
            <parameter key="attribute_name" value="nu"/>
            <parameter key="aggregation_attributes" value="pred.*"/>
            <parameter key="aggregation_function" value="average"/>
        </operator>
        <operator name="FeatureNameFilter" class="FeatureNameFilter">
            <parameter key="skip_features_with_name" value="pred.*"/>
        </operator>
        <operator name="ChangeAttributeRole (3)" class="ChangeAttributeRole">
            <parameter key="name" value="nu"/>
            <parameter key="target_role" value="prediction"/>
        </operator>
    </operator>
  • Thank you haddock, that was exactly the process I needed, it helped me a lot!