void ExampleAnnealKnapsack(int argIndex, int argc, char **argv) { KNAPSACK_PARAMS *params; TRAIN *train; unsigned char x0[NUM_ITEMS_TO_CHOOSE],*x; unsigned int size, n; const int kMax = 100; params = CreateKnapsack(); size = NUM_ITEMS_TO_CHOOSE * sizeof(unsigned char); RandomFill(x0); train = TrainCreateAnneal(score_function,x0,size,400,0.0001,500,kMax,params); ((TRAIN_ANNEAL*)train)->anneal_randomize = KnapsackRandomize; TrainRun(train,kMax,0.01,1); /* print results */ x = (unsigned char*)train->best_position; printf("item\tprofit\tweight\n"); for (n = 0; n < NUM_ITEMS_TO_CHOOSE; n++) { if(x[n]) { printf("%i\t%.2f\t%.2f\n", (n + 1), params->profit[n], params->weight[n]); } } free(params); }
/* This example takes awhile to execute. It uses simulated annealing to fit an RBF network to the iris data set. You can see the output from the example here. As you can see, it took 2000 iterations to train to 0.78. You can see that it is able to classify many of the iris species correctly, but not all. This example uses one-of-n encoding for the iris species. Equilateral could have also been used. Iteration #1: Score: 0.500285 Iteration #2: Score: 0.500285 Iteration #3: Score: 0.500285 Iteration #4: Score: 0.500285 Iteration #5: Score: 0.500285 Iteration #6: Score: 0.500285 Iteration #7: Score: 0.500285 Iteration #8: Score: 0.500285 Iteration #9: Score: 0.500285 Iteration #10: Score: 0.500285 Iteration #11: Score: 0.500285 Iteration #12: Score: 0.500285 Iteration #13: Score: 0.500285 Iteration #14: Score: 0.500285 Iteration #15: Score: 0.500285 Iteration #16: Score: 0.500285 Iteration #17: Score: 0.500285 Iteration #18: Score: 0.500285 Iteration #19: Score: 0.500285 Iteration #20: Score: 0.500285 Iteration #21: Score: 0.500285 Iteration #22: Score: 0.500285 Iteration #23: Score: 0.500285 Iteration #24: Score: 0.500285 Iteration #25: Score: 0.500285 Iteration #26: Score: 0.500285 Iteration #27: Score: 0.500285 Iteration #28: Score: 0.500285 Iteration #29: Score: 0.500285 Iteration #30: Score: 0.500285 Iteration #31: Score: 0.500285 Iteration #32: Score: 0.500285 Iteration #33: Score: 0.500285 Iteration #34: Score: 0.500285 Iteration #35: Score: 0.500285 Iteration #36: Score: 0.500285 Iteration #37: Score: 0.500285 Iteration #38: Score: 0.500285 Iteration #39: Score: 0.500285 Iteration #40: Score: 0.500285 Iteration #41: Score: 0.500285 Iteration #42: Score: 0.500285 Iteration #43: Score: 0.500285 Iteration #44: Score: 0.500285 Iteration #45: Score: 0.500285 Iteration #46: Score: 0.500285 Iteration #47: Score: 0.500285 Iteration #48: Score: 0.500285 Iteration #49: Score: 0.500285 Iteration #50: Score: 0.500285 Iteration #51: Score: 0.500285 Iteration #52: Score: 0.500285 Iteration #53: Score: 0.500285 Iteration #54: Score: 0.500285 Iteration #55: Score: 0.500285 Iteration #56: Score: 0.500285 Iteration #57: Score: 0.500285 Iteration #58: Score: 0.500285 Iteration #59: Score: 0.500285 Iteration #60: Score: 0.500285 Iteration #61: Score: 0.500285 Iteration #62: Score: 0.500285 Iteration #63: Score: 0.500285 Iteration #64: Score: 0.500285 Iteration #65: Score: 0.500285 Iteration #66: Score: 0.500285 Iteration #67: Score: 0.500285 Iteration #68: Score: 0.500285 Iteration #69: Score: 0.500285 Iteration #70: Score: 0.500285 Iteration #71: Score: 0.500285 Iteration #72: Score: 0.500285 Iteration #73: Score: 0.500285 Iteration #74: Score: 0.500285 Iteration #75: Score: 0.500285 Iteration #76: Score: 0.500285 Iteration #77: Score: 0.500285 ... Iteration #1951: Score: 0.081008 Iteration #1952: Score: 0.081008 Iteration #1953: Score: 0.081008 Iteration #1954: Score: 0.081008 Iteration #1955: Score: 0.081008 Iteration #1956: Score: 0.081008 Iteration #1957: Score: 0.081008 Iteration #1958: Score: 0.081008 Iteration #1959: Score: 0.080988 Iteration #1960: Score: 0.080988 Iteration #1961: Score: 0.080988 Iteration #1962: Score: 0.080988 Iteration #1963: Score: 0.080988 Iteration #1964: Score: 0.080988 Iteration #1965: Score: 0.080988 Iteration #1966: Score: 0.080988 Iteration #1967: Score: 0.080988 Iteration #1968: Score: 0.080988 Iteration #1969: Score: 0.080988 Iteration #1970: Score: 0.080988 Iteration #1971: Score: 0.080988 Iteration #1972: Score: 0.080789 Iteration #1973: Score: 0.080725 Iteration #1974: Score: 0.080710 Iteration #1975: Score: 0.080710 Iteration #1976: Score: 0.080464 Iteration #1977: Score: 0.080153 Iteration #1978: Score: 0.080153 Iteration #1979: Score: 0.080153 Iteration #1980: Score: 0.080120 Iteration #1981: Score: 0.080021 Iteration #1982: Score: 0.080021 Iteration #1983: Score: 0.080021 Iteration #1984: Score: 0.080021 Iteration #1985: Score: 0.080021 Iteration #1986: Score: 0.080006 Iteration #1987: Score: 0.079343 Iteration #1988: Score: 0.079343 Iteration #1989: Score: 0.079343 Iteration #1990: Score: 0.078997 Iteration #1991: Score: 0.078155 Iteration #1992: Score: 0.078155 Iteration #1993: Score: 0.078155 Iteration #1994: Score: 0.078155 Iteration #1995: Score: 0.077979 Iteration #1996: Score: 0.077960 Iteration #1997: Score: 0.077717 Iteration #1998: Score: 0.077717 Iteration #1999: Score: 0.077640 Iteration #2000: Score: 0.077640 Iteration #2001: Score: 0.077640 [0.22,0.62,0.07,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.17,0.42,0.07,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.11,0.50,0.05,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.08,0.46,0.08,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.19,0.67,0.07,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.31,0.79,0.12,0.13] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.08,0.58,0.07,0.08] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.19,0.58,0.08,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.03,0.37,0.07,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.17,0.46,0.08,0.00] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.31,0.71,0.08,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.14,0.58,0.10,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.14,0.42,0.07,0.00] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.00,0.42,0.02,0.00] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.42,0.83,0.03,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.39,1.00,0.08,0.13] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.31,0.79,0.05,0.13] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.22,0.62,0.07,0.08] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.39,0.75,0.12,0.08] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.22,0.75,0.08,0.08] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.31,0.58,0.12,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.22,0.71,0.08,0.13] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.08,0.67,0.00,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.22,0.54,0.12,0.17] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.14,0.58,0.15,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.19,0.42,0.10,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.19,0.58,0.10,0.13] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.25,0.62,0.08,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.25,0.58,0.07,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.11,0.50,0.10,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.14,0.46,0.10,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.31,0.58,0.08,0.13] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.25,0.87,0.08,0.00] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.33,0.92,0.07,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.17,0.46,0.08,0.00] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.19,0.50,0.03,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.33,0.62,0.05,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.17,0.46,0.08,0.00] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.03,0.42,0.05,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.22,0.58,0.08,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.19,0.62,0.05,0.08] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.06,0.12,0.05,0.08] -> Actual: [Iris-versicolor], Ideal: [Iris-setosa] [0.03,0.50,0.05,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.19,0.62,0.10,0.21] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.22,0.75,0.15,0.13] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.14,0.42,0.07,0.08] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.22,0.75,0.10,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.08,0.50,0.07,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.28,0.71,0.08,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.19,0.54,0.07,0.04] -> Actual: [Iris-setosa], Ideal: [Iris-setosa] [0.75,0.50,0.63,0.54] -> Actual: [Iris-virginica], Ideal: [Iris-versicolor] [0.58,0.50,0.59,0.58] -> Actual: [Iris-virginica], Ideal: [Iris-versicolor] [0.72,0.46,0.66,0.58] -> Actual: [Iris-virginica], Ideal: [Iris-versicolor] [0.33,0.12,0.51,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.61,0.33,0.61,0.58] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.39,0.33,0.59,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.56,0.54,0.63,0.62] -> Actual: [Iris-virginica], Ideal: [Iris-versicolor] [0.17,0.17,0.39,0.38] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.64,0.37,0.61,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.25,0.29,0.49,0.54] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.19,0.00,0.42,0.38] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.44,0.42,0.54,0.58] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.47,0.08,0.51,0.38] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.50,0.37,0.63,0.54] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.36,0.37,0.44,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.67,0.46,0.58,0.54] -> Actual: [Iris-virginica], Ideal: [Iris-versicolor] [0.36,0.42,0.59,0.58] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.42,0.29,0.53,0.38] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.53,0.08,0.59,0.58] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.36,0.21,0.49,0.42] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.44,0.50,0.64,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-versicolor] [0.50,0.33,0.51,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.56,0.21,0.66,0.58] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.50,0.33,0.63,0.46] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.58,0.37,0.56,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.64,0.42,0.58,0.54] -> Actual: [Iris-virginica], Ideal: [Iris-versicolor] [0.69,0.33,0.64,0.54] -> Actual: [Iris-virginica], Ideal: [Iris-versicolor] [0.67,0.42,0.68,0.67] -> Actual: [Iris-virginica], Ideal: [Iris-versicolor] [0.47,0.37,0.59,0.58] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.39,0.25,0.42,0.38] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.33,0.17,0.47,0.42] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.33,0.17,0.46,0.38] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.42,0.29,0.49,0.46] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.47,0.29,0.69,0.62] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.31,0.42,0.59,0.58] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.47,0.58,0.59,0.62] -> Actual: [Iris-virginica], Ideal: [Iris-versicolor] [0.67,0.46,0.63,0.58] -> Actual: [Iris-virginica], Ideal: [Iris-versicolor] [0.56,0.12,0.58,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.36,0.42,0.53,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.33,0.21,0.51,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.33,0.25,0.58,0.46] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.50,0.42,0.61,0.54] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.42,0.25,0.51,0.46] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.19,0.12,0.39,0.38] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.36,0.29,0.54,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.39,0.42,0.54,0.46] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.39,0.37,0.54,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.53,0.37,0.56,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.22,0.21,0.34,0.42] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.39,0.33,0.53,0.50] -> Actual: [Iris-versicolor], Ideal: [Iris-versicolor] [0.56,0.54,0.85,1.00] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.42,0.29,0.69,0.75] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.78,0.42,0.83,0.83] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.56,0.37,0.78,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.61,0.42,0.81,0.88] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.92,0.42,0.95,0.83] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.17,0.21,0.59,0.67] -> Actual: [Iris-versicolor], Ideal: [Iris-virginica] [0.83,0.37,0.90,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.67,0.21,0.81,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.81,0.67,0.86,1.00] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.61,0.50,0.69,0.79] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.58,0.29,0.73,0.75] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.69,0.42,0.76,0.83] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.39,0.21,0.68,0.79] -> Actual: [Iris-versicolor], Ideal: [Iris-virginica] [0.42,0.33,0.69,0.96] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.58,0.50,0.73,0.92] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.61,0.42,0.76,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.94,0.75,0.97,0.88] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.94,0.25,1.00,0.92] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.47,0.08,0.68,0.58] -> Actual: [Iris-versicolor], Ideal: [Iris-virginica] [0.72,0.50,0.80,0.92] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.36,0.33,0.66,0.79] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.94,0.33,0.97,0.79] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.56,0.29,0.66,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.67,0.54,0.80,0.83] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.81,0.50,0.85,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.53,0.33,0.64,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.50,0.42,0.66,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.58,0.33,0.78,0.83] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.81,0.42,0.81,0.62] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.86,0.33,0.86,0.75] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [1.00,0.75,0.92,0.79] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.58,0.33,0.78,0.88] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.56,0.33,0.69,0.58] -> Actual: [Iris-versicolor], Ideal: [Iris-virginica] [0.50,0.25,0.78,0.54] -> Actual: [Iris-versicolor], Ideal: [Iris-virginica] [0.94,0.42,0.86,0.92] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.56,0.58,0.78,0.96] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.58,0.46,0.76,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.47,0.42,0.64,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.72,0.46,0.75,0.83] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.67,0.46,0.78,0.96] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.72,0.46,0.69,0.92] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.42,0.29,0.69,0.75] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.69,0.50,0.83,0.92] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.67,0.54,0.80,1.00] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.67,0.42,0.71,0.92] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.56,0.21,0.68,0.75] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.61,0.42,0.71,0.79] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.53,0.58,0.75,0.92] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] [0.44,0.42,0.69,0.71] -> Actual: [Iris-virginica], Ideal: [Iris-virginica] */ void ExampleAnnealIris(int argIndex, int argc, char **argv) { IRIS_PARAMS *params; NORM_DATA *norm; TRAIN *train; double *x0, *input, *ideal,y[3]; unsigned int size,i; NORM_DATA_ITEM *irisSpecies; char *idealSpecies,*actualSpecies; const int kMax = 2000; params = (IRIS_PARAMS*)calloc(1,sizeof(IRIS_PARAMS)); norm = NormCreate(); params->training = create_iris_training(norm); params->errorCalc = ErrorCreate(TYPE_ERROR_MSE); params->network = RBFNetworkCreate(RBFGaussian,4,5,3); RBFNetworkReset(params->network); size = params->network->ltm_size*sizeof(double); x0 = (double*)calloc(size,1); memcpy(x0,params->network->long_term_memory,size); /* Extract the species definition */ irisSpecies = NormGetColumnItem(norm, 4); train = TrainCreateAnneal(score_function,x0,size,400,0.0001,100,kMax,params); TrainRun(train,kMax,0.01,1); TrainComplete(train,params->network->long_term_memory); /* Perform the evaluation */ for(i=0;i<params->training->recordCount;i++) { input = DataGetInput(params->training,i); ideal = DataGetIdeal(params->training,i); RBFNetworkComputeRegression(params->network, input, y); idealSpecies = DeNormOneOfN(irisSpecies->firstClass,irisSpecies->targetLow,irisSpecies->targetLow,ideal); actualSpecies = DeNormOneOfN(irisSpecies->firstClass,irisSpecies->targetLow,irisSpecies->targetLow,y); printf("[%.2f,%.2f,%.2f,%.2f] -> Actual: [%s], Ideal: [%s]\n", input[0],input[1],input[2],input[3],actualSpecies,idealSpecies); } DataDelete(params->training); ErrorDelete(params->errorCalc); RBFNetworkDelete(params->network); NormDelete(norm); free(params); }