Hi all,
First let me thank the developers for this wonderful tool. I've already had great success with some models.
Now, I'm trying to get YAGGA2 to work. My actual application is more complex than what's presented here, but I'd like to figure out a minimal setup that results in YAGGA2 functioning correctly before trying to apply it there.
So, here's some example data:
a,b,c
1, 1, 1.698970004
2, 13, 2
4, 26, 2.301029996
8, 40, 2.602059991
16, 55, 2.903089987
32, 71, 3.204119983
64, 88, 3.505149978
128,106,3.806179974
256,125,4.525511261
512,235,5.15174973
a and b will be our attributes, c will be our label. c is log10(max(abs(b-a),50)*a) -- presumably a good candidate for yagga2.
Here's my process:
[CSV] -> [YAGGA2 (NN -> Apply Model -> Performance)]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<process version="5.1.017">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="5.1.017" expanded="true" name="Process">
<process expanded="true" height="467" width="815">
<operator activated="true" class="read_csv" compatibility="5.1.017" expanded="true" height="60" name="Read CSV" width="90" x="45" y="30">
<parameter key="csv_file" value="C:\data\simpletest.csv"/>
<parameter key="column_separators" value=","/>
<parameter key="first_row_as_names" value="false"/>
<list key="annotations">
<parameter key="0" value="Name"/>
</list>
<parameter key="encoding" value="windows-1252"/>
<list key="data_set_meta_data_information">
<parameter key="0" value="a.true.integer.attribute"/>
<parameter key="1" value="b.true.integer.attribute"/>
<parameter key="2" value="c.true.real.label"/>
</list>
</operator>
<operator activated="true" class="optimize_by_generation_yagga2" compatibility="5.1.017" expanded="true" height="94" name="Generate" width="90" x="246" y="30">
<process expanded="true" height="647" width="950">
<operator activated="true" class="neural_net" compatibility="5.1.017" expanded="true" height="76" name="Neural Net" width="90" x="112" y="30">
<list key="hidden_layers"/>
<parameter key="training_cycles" value="5"/>
</operator>
<operator activated="true" class="apply_model" compatibility="5.1.017" expanded="true" height="76" name="Apply Model" width="90" x="246" y="30">
<list key="application_parameters"/>
</operator>
<operator activated="true" class="performance" compatibility="5.1.017" expanded="true" height="76" name="Performance" width="90" x="380" y="30"/>
<connect from_port="example set source" to_op="Neural Net" to_port="training set"/>
<connect from_op="Neural Net" from_port="model" to_op="Apply Model" to_port="model"/>
<connect from_op="Neural Net" from_port="exampleSet" to_op="Apply Model" to_port="unlabelled data"/>
<connect from_op="Apply Model" from_port="labelled data" to_op="Performance" to_port="labelled data"/>
<connect from_op="Performance" from_port="performance" to_port="performance sink"/>
</process>
</operator>
<connect from_op="Read CSV" from_port="output" to_op="Generate" to_port="example set in"/>
<connect from_op="Generate" from_port="example set out" to_port="result 3"/>
<connect from_op="Generate" from_port="attribute weights out" to_port="result 2"/>
<connect from_op="Generate" from_port="performance out" to_port="result 1"/>
</process>
</operator>
</process>
This consistently errors with "Process failed: Generation exception: 'java.lang.IllegalArgumentException: Duplicate attribute name: prediction(c)'". Attempting to remove this attribute anywhere in the above chain does no good.
Using YAGGA (not 2) this process will run, but no new attributes will be generated.
What am I doing wrong?