public static double get1FitnessFromTestSet( double[] inputs, int classification, StrokeNetwork network, int featureToClassify) { double output = FullyConnectedNNBuilder.getOutput(inputs, network); if (classification == featureToClassify) { /* } if (classification == 0 || classification == 1 || classification == 3 || classification == 7 || classification == 8 || classification == 9 || classification == 10 || classification == 11 || classification == 19 || classification == 20 || classification == 21 || classification == 22 || classification == 23) { */ /* if (output > 0) { return 1.0; } else { return -1.0; }*/ return output; } else { /* if (output < 0) { return 1.0; } else { return -1.0; } */ return -1 * output; } }
// return difference between output of desired classification, and output of highest // classification (not desired). public static double get1Fitness( double[] inputs, int classification, StrokeNetwork network, int featureToClassify, int num_possible) { double output = FullyConnectedNNBuilder.getOutput(inputs, network); if (classification == featureToClassify) { /*if (classification == 0 || classification == 1 || classification == 3 || classification == 7 || classification == 8 || classification == 9 || classification == 10 || classification == 11 || classification == 19 || classification == 20 || classification == 21 || classification == 22 || classification == 23) { */ // System.out.println(output); return output; } else { // return -0.0416666667*output; // return -1.08333333333*output; // System.out.println(-1.0*(1.0/(num_possible-1.0))*output); return -1.0 * (1.0 / (num_possible - 1.0)) * output; } }