How to convert predicted value back to its original value after normalisation?

dass
dass New Altair Community Member
edited November 2024 in Community Q&A

Hi everyone, i'm having trouble to transform the predicted data to its original value after normalisation. Is there any method of doing so?thank you very much.

Tagged:

Answers

  • MartinLiebig
    MartinLiebig
    Altair Employee

    Hi,

     

    sure. You can use a De-Normalize Operator to convert the preprocessing normalization model into a de-normalization model. This can be applied using Apply Model.

     

    Have a nice Sunday,

    Martin

  • dass
    dass New Altair Community Member

    Hi @mschmitz, thank you very much for the reply. i have tried the method you suggessted, but the conversion seems like only applicable to the original dataset not for the predicted value. i have included the code here, i'm not sure if i have made some mistakes here. thank you very much.

    <?xml version="1.0" encoding="UTF-8"?><process version="8.1.001">
    <context>
    <input/>
    <output/>
    <macros/>
    </context>
    <operator activated="true" class="process" compatibility="8.1.001" expanded="true" name="Process">
    <process expanded="true">
    <operator activated="true" class="generate_data" compatibility="8.1.001" expanded="true" height="68" name="Generate Data" width="90" x="45" y="85"/>
    <operator activated="true" class="split_data" compatibility="8.1.001" expanded="true" height="103" name="Split Data" width="90" x="112" y="187">
    <enumeration key="partitions">
    <parameter key="ratio" value="0.8"/>
    <parameter key="ratio" value="0.2"/>
    </enumeration>
    <parameter key="sampling_type" value="linear sampling"/>
    </operator>
    <operator activated="true" class="normalize" compatibility="8.1.001" expanded="true" height="103" name="Normalize" width="90" x="179" y="34">
    <parameter key="include_special_attributes" value="true"/>
    </operator>
    <operator activated="true" class="support_vector_machine" compatibility="8.1.001" expanded="true" height="124" name="SVM" width="90" x="380" y="34"/>
    <operator activated="true" class="multiply" compatibility="8.1.001" expanded="true" height="103" name="Multiply" width="90" x="246" y="136"/>
    <operator activated="true" class="denormalize" compatibility="8.1.001" expanded="true" height="82" name="De-Normalize" width="90" x="581" y="187"/>
    <operator activated="true" class="apply_model" compatibility="8.1.001" expanded="true" height="82" name="Apply Model (3)" width="90" x="380" y="238">
    <list key="application_parameters"/>
    </operator>
    <operator activated="true" class="apply_model" compatibility="8.1.001" expanded="true" height="82" name="Apply Model" width="90" x="581" y="85">
    <list key="application_parameters"/>
    </operator>
    <operator activated="true" class="apply_model" compatibility="8.1.001" expanded="true" height="82" name="Apply Model (2)" width="90" x="782" y="136">
    <list key="application_parameters"/>
    </operator>
    <connect from_op="Generate Data" from_port="output" to_op="Split Data" to_port="example set"/>
    <connect from_op="Split Data" from_port="partition 1" to_op="Normalize" to_port="example set input"/>
    <connect from_op="Split Data" from_port="partition 2" to_op="Apply Model (3)" to_port="unlabelled data"/>
    <connect from_op="Normalize" from_port="example set output" to_op="SVM" to_port="training set"/>
    <connect from_op="Normalize" from_port="preprocessing model" to_op="Multiply" to_port="input"/>
    <connect from_op="SVM" from_port="model" to_op="Apply Model" to_port="model"/>
    <connect from_op="Multiply" from_port="output 1" to_op="Apply Model (3)" to_port="model"/>
    <connect from_op="Multiply" from_port="output 2" to_op="De-Normalize" to_port="model input"/>
    <connect from_op="De-Normalize" from_port="model output" to_op="Apply Model (2)" to_port="model"/>
    <connect from_op="Apply Model (3)" from_port="labelled data" to_op="Apply Model" to_port="unlabelled data"/>
    <connect from_op="Apply Model" from_port="labelled data" to_op="Apply Model (2)" to_port="unlabelled data"/>
    <connect from_op="Apply Model (2)" from_port="labelled data" to_port="result 1"/>
    <portSpacing port="source_input 1" spacing="0"/>
    <portSpacing port="sink_result 1" spacing="0"/>
    <portSpacing port="sink_result 2" spacing="0"/>
    </process>
    </operator>
    </process>