"Multi Label Regression with neuronal network"
Hi,
I am trying (for quite some time now, so please help;) to build a neuronal network with
several input layers (attributes) and several outputlayers (labels) for a regression. All variables are numerical.
I want just one NN giving me all numerical labels, not just one label in several models.
As obvious as this problem seems to me, I couldn find anything suitable so far here.
My principal Idea, at first, was to build one model per label and then stack them together in one model.
Below the code of a model that loops through the labels and creates seperate models.
Is what Im proposing here even possible with RM?
I really would appreciate your help.
Cheers
Julian
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="5.1.008">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="5.1.008" expanded="true" name="Root">
<process expanded="true" height="546" width="547">
<operator activated="true" class="generate_multi_label_data" compatibility="5.1.008" expanded="true" height="60" name="Generate Multi-Label Data" width="90" x="45" y="120">
<parameter key="regression" value="true"/>
</operator>
<operator activated="true" class="set_role" compatibility="5.1.008" expanded="true" height="76" name="Set Role" width="90" x="45" y="210">
<parameter key="name" value="label1"/>
<parameter key="target_role" value="label"/>
<list key="set_additional_roles"/>
</operator>
<operator activated="true" class="multiply" compatibility="5.1.008" expanded="true" height="76" name="Multiply" width="90" x="179" y="210"/>
<operator activated="true" class="loop_labels" compatibility="5.1.008" expanded="true" height="94" name="Loop Labels" width="90" x="313" y="210">
<process expanded="true" height="502" width="614">
<operator activated="true" class="multiply" compatibility="5.1.008" expanded="true" height="94" name="Multiply (2)" width="90" x="78" y="30"/>
<operator activated="true" class="stacking" compatibility="5.1.008" expanded="true" height="60" name="Stacking" width="90" x="246" y="30">
<process expanded="true" height="502" width="291">
<operator activated="true" class="neural_net" compatibility="5.1.008" expanded="true" height="76" name="Neural Net" width="90" x="112" y="30">
<list key="hidden_layers"/>
</operator>
<operator activated="true" class="neural_net" compatibility="5.1.008" expanded="true" height="76" name="Neural Net (2)" width="90" x="112" y="120">
<list key="hidden_layers"/>
</operator>
<connect from_port="training set 1" to_op="Neural Net" to_port="training set"/>
<connect from_port="training set 2" to_op="Neural Net (2)" to_port="training set"/>
<connect from_op="Neural Net" from_port="model" to_port="base model 1"/>
<connect from_op="Neural Net (2)" from_port="model" to_port="base model 2"/>
<portSpacing port="source_training set 1" spacing="0"/>
<portSpacing port="source_training set 2" spacing="0"/>
<portSpacing port="source_training set 3" spacing="0"/>
<portSpacing port="sink_base model 1" spacing="0"/>
<portSpacing port="sink_base model 2" spacing="0"/>
<portSpacing port="sink_base model 3" spacing="0"/>
</process>
<process expanded="true" height="502" width="291">
<operator activated="true" class="neural_net" compatibility="5.1.008" expanded="true" height="76" name="Neural Net (4)" width="90" x="96" y="95">
<list key="hidden_layers"/>
</operator>
<connect from_port="stacking examples" to_op="Neural Net (4)" to_port="training set"/>
<connect from_op="Neural Net (4)" from_port="model" to_port="stacking model"/>
<portSpacing port="source_stacking examples" spacing="0"/>
<portSpacing port="sink_stacking model" spacing="0"/>
</process>
</operator>
<operator activated="true" class="bagging" compatibility="5.1.008" expanded="true" height="76" name="Bagging" width="90" x="246" y="120">
<process expanded="true" height="502" width="632">
<operator activated="true" class="neural_net" compatibility="5.1.008" expanded="true" height="76" name="Neural Net (3)" width="90" x="271" y="30">
<list key="hidden_layers"/>
</operator>
<connect from_port="training set" to_op="Neural Net (3)" to_port="training set"/>
<connect from_op="Neural Net (3)" from_port="model" to_port="model"/>
<portSpacing port="source_training set" spacing="0"/>
<portSpacing port="sink_model" spacing="0"/>
</process>
</operator>
<connect from_port="example set" to_op="Multiply (2)" to_port="input"/>
<connect from_op="Multiply (2)" from_port="output 1" to_op="Stacking" to_port="training set"/>
<connect from_op="Multiply (2)" from_port="output 2" to_op="Bagging" to_port="training set"/>
<connect from_op="Stacking" from_port="model" to_port="out 1"/>
<connect from_op="Bagging" from_port="model" to_port="out 2"/>
<portSpacing port="source_example set" spacing="0"/>
<portSpacing port="sink_out 1" spacing="0"/>
<portSpacing port="sink_out 2" spacing="0"/>
<portSpacing port="sink_out 3" spacing="0"/>
</process>
</operator>
<connect from_op="Generate Multi-Label Data" from_port="output" to_op="Set Role" to_port="example set input"/>
<connect from_op="Set Role" from_port="example set output" to_op="Multiply" to_port="input"/>
<connect from_op="Multiply" from_port="output 1" to_op="Loop Labels" to_port="example set"/>
<connect from_op="Loop Labels" from_port="out 1" to_port="result 1"/>
<connect from_op="Loop Labels" from_port="out 2" to_port="result 2"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
<portSpacing port="sink_result 3" spacing="0"/>
</process>
</operator>
</process>