RapidMiner

RapidMiner

Getting error msg: Wrong argument types for singular function gensym13:=exp(id).

Regular Contributor

Getting error msg: Wrong argument types for singular function gensym13:=exp(id).

Inside a FeatureGeneration node, I am trying to compute a probability from a log-odds value for both a prediction value and a label value.  For the prediction is it working fine.  For the label, I am getting the error message:

Wrong argument types for singular function gensym13:=exp(id).

This is being done inside a MultipleLabelIterator operator.  The label for each run is renamed to a static name so I can perform the mathematical operations on it (a workaround for not being able to use macros inside computations).  The relevant excerpt is:


            <operator name="Rename actual column" class="ChangeAttributeName">
                <parameter key="new_name" value="actual_val"/>
                <parameter key="old_name" value="label_%{a}"/>
            </operator>
            <operator name="FeatureGeneration" class="FeatureGeneration" breakpoints="after">
                <list key="functions">
                  <parameter key="this_is_a_new_attrib" value="exp(actual_val)"/>
                </list>
                <parameter key="keep_all" value="true"/>
            </operator>


The values in the data table after executing these operators appear to be the exponentiation of (row number - 1):

1
2.718
7.389
20.086
54.598
...

But as mentioned, the corresponding near-identical code for calculations on the predictions works fine:


            <operator name="Rename prediction column" class="ChangeAttributeName">
                <parameter key="new_name" value="predict_val"/>
                <parameter key="old_name" value="prediction(label_%{a})"/>
            </operator>
            <operator name="Calculate Predicted Probability" class="FeatureGeneration">
                <list key="functions">
                  <parameter key="pred_odds" value="exp(predict_val)"/>
                </list>
                <parameter key="keep_all" value="true"/>
            </operator>


Also of interest, the value type for this this_is_a_new_attrib is "numeric" whereas both the source values of predict_val and actual_val as well as the correctly computed pred_odds column are "real".

For now, I'm going to workaround this by computing the values outside the MultipleLabelIterator loop, and before I change the roles to label1, label2, label3, as it seems (at the moment) to work properly there.  But I'd be really curious to know why it isn't working as I was attempting it above.

Also, I am running the latest CVS version of RM as of Monday, not the public 4.2 release.

Thanks,
Keith