How to average two predictions?

torstentorsten Member Posts: 4 Contributor I
edited November 2018 in Help
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 :)

Answers

  • haddockhaddock Member Posts: 849 Maven
    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>
  • torstentorsten Member Posts: 4 Contributor I
    Thank you haddock, that was exactly the process I needed, it helped me a lot!
Sign In or Register to comment.