This example trains a 3-layer network using Fisher's Iris data with four continuous input attributes and three output classifications. This is perhaps the best known database to be found in the pattern recognition literature. Fisher's paper is a classic in the field. The data set contains 3 classes of 50 instances each, where each class refers to a type of iris plant.
The structure of the network consists of four input nodes and three layers, with four perceptrons in the first hidden layer, three perceptrons in the second hidden layer and three in the output layer.
The four input attributes represent
The output attribute represents the class of the iris plant and are encoded using binary encoding.
There are a total of 46 weights in this network, including the bias weights. All hidden layers use the logistic activation function. Since the target output is multi-classification the softmax activation function is used in the output layer and the MultiClassification
error function class is used by the trainer. The error class MultiClassification
combines the cross-entropy error calculations and the softmax function.
using System; using Imsl.DataMining.Neural; using PrintMatrix = Imsl.Math.PrintMatrix; using PrintMatrixFormat = Imsl.Math.PrintMatrixFormat; //***************************************************************************** // Three Layer Feed-Forward Network with 4 inputs, all // continuous, and 3 classification categories. // // new classification training_ex5.c // // This is perhaps the best known database to be found in the pattern // recognition literature. Fisher's paper is a classic in the field. // The data set contains 3 classes of 50 instances each, // where each class refers to a type of iris plant. One class is // linearly separable from the other 2; the latter are NOT linearly // separable from each other. // // Predicted attribute: class of iris plant. // 1=Iris Setosa, 2=Iris Versicolour, and 3=Iris Virginica // // Input Attributes (4 Continuous Attributes) // X1: Sepal length, X2: Sepal width, X3: Petal length, and X4: Petal width //***************************************************************************** [Serializable] public class MultiClassificationEx1 { private static int nObs = 150; // number of training patterns private static int nInputs = 4; // 9 nominal coded as 0=x, 1=o, 2=blank private static int nOutputs = 3; // one continuous output (nClasses=2) // irisData[]: The raw data matrix. This is a 2-D matrix with 150 rows and // 5 columns. The first 4 columns are the continuous input // attributes and the 5th column is the classification category // (1-3). These data contain no categorical input attributes. private static double[][] irisData = new double[][]{ new double[]{5.1, 3.5, 1.4, 0.2, 1}, new double[]{4.9, 3.0, 1.4, 0.2, 1}, new double[]{4.7, 3.2, 1.3, 0.2, 1}, new double[]{4.6, 3.1, 1.5, 0.2, 1}, new double[]{5.0, 3.6, 1.4, 0.2, 1}, new double[]{5.4, 3.9, 1.7, 0.4, 1}, new double[]{4.6, 3.4, 1.4, 0.3, 1}, new double[]{5.0, 3.4, 1.5, 0.2, 1}, new double[]{4.4, 2.9, 1.4, 0.2, 1}, new double[]{4.9, 3.1, 1.5, 0.1, 1}, new double[]{5.4, 3.7, 1.5, 0.2, 1}, new double[]{4.8, 3.4, 1.6, 0.2, 1}, new double[]{4.8, 3.0, 1.4, 0.1, 1}, new double[]{4.3, 3.0, 1.1, 0.1, 1}, new double[]{5.8, 4.0, 1.2, 0.2, 1}, new double[]{5.7, 4.4, 1.5, 0.4, 1}, new double[]{5.4, 3.9, 1.3, 0.4, 1}, new double[]{5.1, 3.5, 1.4, 0.3, 1}, new double[]{5.7, 3.8, 1.7, 0.3, 1}, new double[]{5.1, 3.8, 1.5, 0.3, 1}, new double[]{5.4, 3.4, 1.7, 0.2, 1}, new double[]{5.1, 3.7, 1.5, 0.4, 1}, new double[]{4.6, 3.6, 1.0, 0.2, 1}, new double[]{5.1, 3.3, 1.7, 0.5, 1}, new double[]{4.8, 3.4, 1.9, 0.2, 1}, new double[]{5.0, 3.0, 1.6, 0.2, 1}, new double[]{5.0, 3.4, 1.6, 0.4, 1}, new double[]{5.2, 3.5, 1.5, 0.2, 1}, new double[]{5.2, 3.4, 1.4, 0.2, 1}, new double[]{4.7, 3.2, 1.6, 0.2, 1}, new double[]{4.8, 3.1, 1.6, 0.2, 1}, new double[]{5.4, 3.4, 1.5, 0.4, 1}, new double[]{5.2, 4.1, 1.5, 0.1, 1}, new double[]{5.5, 4.2, 1.4, 0.2, 1}, new double[]{4.9, 3.1, 1.5, 0.1, 1}, new double[]{5.0, 3.2, 1.2, 0.2, 1}, new double[]{5.5, 3.5, 1.3, 0.2, 1}, new double[]{4.9, 3.1, 1.5, 0.1, 1}, new double[]{4.4, 3.0, 1.3, 0.2, 1}, new double[]{5.1, 3.4, 1.5, 0.2, 1}, new double[]{5.0, 3.5, 1.3, 0.3, 1}, new double[]{4.5, 2.3, 1.3, 0.3, 1}, new double[]{4.4, 3.2, 1.3, 0.2, 1}, new double[]{5.0, 3.5, 1.6, 0.6, 1}, new double[]{5.1, 3.8, 1.9, 0.4, 1}, new double[]{4.8, 3.0, 1.4, 0.3, 1}, new double[]{5.1, 3.8, 1.6, 0.2, 1}, new double[]{4.6, 3.2, 1.4, 0.2, 1}, new double[]{5.3, 3.7, 1.5, 0.2, 1}, new double[]{5.0, 3.3, 1.4, 0.2, 1}, new double[]{7.0, 3.2, 4.7, 1.4, 2}, new double[]{6.4, 3.2, 4.5, 1.5, 2}, new double[]{6.9, 3.1, 4.9, 1.5, 2}, new double[]{5.5, 2.3, 4.0, 1.3, 2}, new double[]{6.5, 2.8, 4.6, 1.5, 2}, new double[]{5.7, 2.8, 4.5, 1.3, 2}, new double[]{6.3, 3.3, 4.7, 1.6, 2}, new double[]{4.9, 2.4, 3.3, 1.0, 2}, new double[]{6.6, 2.9, 4.6, 1.3, 2}, new double[]{5.2, 2.7, 3.9, 1.4, 2}, new double[]{5.0, 2.0, 3.5, 1.0, 2}, new double[]{5.9, 3.0, 4.2, 1.5, 2}, new double[]{6.0, 2.2, 4.0, 1.0, 2}, new double[]{6.1, 2.9, 4.7, 1.4, 2}, new double[]{5.6, 2.9, 3.6, 1.3, 2}, new double[]{6.7, 3.1, 4.4, 1.4, 2}, new double[]{5.6, 3.0, 4.5, 1.5, 2}, new double[]{5.8, 2.7, 4.1, 1.0, 2}, new double[]{6.2, 2.2, 4.5, 1.5, 2}, new double[]{5.6, 2.5, 3.9, 1.1, 2}, new double[]{5.9, 3.2, 4.8, 1.8, 2}, new double[]{6.1, 2.8, 4.0, 1.3, 2}, new double[]{6.3, 2.5, 4.9, 1.5, 2}, new double[]{6.1, 2.8, 4.7, 1.2, 2}, new double[]{6.4, 2.9, 4.3, 1.3, 2}, new double[]{6.6, 3.0, 4.4, 1.4, 2}, new double[]{6.8, 2.8, 4.8, 1.4, 2}, new double[]{6.7, 3.0, 5.0, 1.7, 2}, new double[]{6.0, 2.9, 4.5, 1.5, 2}, new double[]{5.7, 2.6, 3.5, 1.0, 2}, new double[]{5.5, 2.4, 3.8, 1.1, 2}, new double[]{5.5, 2.4, 3.7, 1.0, 2}, new double[]{5.8, 2.7, 3.9, 1.2, 2}, new double[]{6.0, 2.7, 5.1, 1.6, 2}, new double[]{5.4, 3.0, 4.5, 1.5, 2}, new double[]{6.0, 3.4, 4.5, 1.6, 2}, new double[]{6.7, 3.1, 4.7, 1.5, 2}, new double[]{6.3, 2.3, 4.4, 1.3, 2}, new double[]{5.6, 3.0, 4.1, 1.3, 2}, new double[]{5.5, 2.5, 4.0, 1.3, 2}, new double[]{5.5, 2.6, 4.4, 1.2, 2}, new double[]{6.1, 3.0, 4.6, 1.4, 2}, new double[]{5.8, 2.6, 4.0, 1.2, 2}, new double[]{5.0, 2.3, 3.3, 1.0, 2}, new double[]{5.6, 2.7, 4.2, 1.3, 2}, new double[]{5.7, 3.0, 4.2, 1.2, 2}, new double[]{5.7, 2.9, 4.2, 1.3, 2}, new double[]{6.2, 2.9, 4.3, 1.3, 2}, new double[]{5.1, 2.5, 3.0, 1.1, 2}, new double[]{5.7, 2.8, 4.1, 1.3, 2}, new double[]{6.3, 3.3, 6.0, 2.5, 3}, new double[]{5.8, 2.7, 5.1, 1.9, 3}, new double[]{7.1, 3.0, 5.9, 2.1, 3}, new double[]{6.3, 2.9, 5.6, 1.8, 3}, new double[]{6.5, 3.0, 5.8, 2.2, 3}, new double[]{7.6, 3.0, 6.6, 2.1, 3}, new double[]{4.9, 2.5, 4.5, 1.7, 3}, new double[]{7.3, 2.9, 6.3, 1.8, 3}, new double[]{6.7, 2.5, 5.8, 1.8, 3}, new double[]{7.2, 3.6, 6.1, 2.5, 3}, new double[]{6.5, 3.2, 5.1, 2.0, 3}, new double[]{6.4, 2.7, 5.3, 1.9, 3}, new double[]{6.8, 3.0, 5.5, 2.1, 3}, new double[]{5.7, 2.5, 5.0, 2.0, 3}, new double[]{5.8, 2.8, 5.1, 2.4, 3}, new double[]{6.4, 3.2, 5.3, 2.3, 3}, new double[]{6.5, 3.0, 5.5, 1.8, 3}, new double[]{7.7, 3.8, 6.7, 2.2, 3}, new double[]{7.7, 2.6, 6.9, 2.3, 3}, new double[]{6.0, 2.2, 5.0, 1.5, 3}, new double[]{6.9, 3.2, 5.7, 2.3, 3}, new double[]{5.6, 2.8, 4.9, 2.0, 3}, new double[]{7.7, 2.8, 6.7, 2.0, 3}, new double[]{6.3, 2.7, 4.9, 1.8, 3}, new double[]{6.7, 3.3, 5.7, 2.1, 3}, new double[]{7.2, 3.2, 6.0, 1.8, 3}, new double[]{6.2, 2.8, 4.8, 1.8, 3}, new double[]{6.1, 3.0, 4.9, 1.8, 3}, new double[]{6.4, 2.8, 5.6, 2.1, 3}, new double[]{7.2, 3.0, 5.8, 1.6, 3}, new double[]{7.4, 2.8, 6.1, 1.9, 3}, new double[]{7.9, 3.8, 6.4, 2.0, 3}, new double[]{6.4, 2.8, 5.6, 2.2, 3}, new double[]{6.3, 2.8, 5.1, 1.5, 3}, new double[]{6.1, 2.6, 5.6, 1.4, 3}, new double[]{7.7, 3.0, 6.1, 2.3, 3}, new double[]{6.3, 3.4, 5.6, 2.4, 3}, new double[]{6.4, 3.1, 5.5, 1.8, 3}, new double[]{6.0, 3.0, 4.8, 1.8, 3}, new double[]{6.9, 3.1, 5.4, 2.1, 3}, new double[]{6.7, 3.1, 5.6, 2.4, 3}, new double[]{6.9, 3.1, 5.1, 2.3, 3}, new double[]{5.8, 2.7, 5.1, 1.9, 3}, new double[]{6.8, 3.2, 5.9, 2.3, 3}, new double[]{6.7, 3.3, 5.7, 2.5, 3}, new double[]{6.7, 3.0, 5.2, 2.3, 3}, new double[]{6.3, 2.5, 5.0, 1.9, 3}, new double[]{6.5, 3.0, 5.2, 2.0, 3}, new double[]{6.2, 3.4, 5.4, 2.3, 3}, new double[]{5.9, 3.0, 5.1, 1.8, 3}}; public static void Main(System.String[] args) { double[,] xData = new double[nObs,nInputs]; int[] yData = new int[nObs]; for (int i = 0; i < nObs; i++) { for (int j = 0; j < nInputs; j++) { xData[i,j] = irisData[i][j]; } yData[i] = (int) irisData[i][4]; } // Create network FeedForwardNetwork network = new FeedForwardNetwork(); network.InputLayer.CreateInputs(nInputs); network.CreateHiddenLayer().CreatePerceptrons(4, Imsl.DataMining.Neural.Activation.Logistic, 0.0); network.CreateHiddenLayer().CreatePerceptrons(3, Imsl.DataMining.Neural.Activation.Logistic, 0.0); network.OutputLayer.CreatePerceptrons(nOutputs, Imsl.DataMining.Neural.Activation.Softmax, 0.0); network.LinkAll(); MultiClassification classification = new MultiClassification(network); // Create trainer QuasiNewtonTrainer trainer = new QuasiNewtonTrainer(); trainer.SetError(classification.Error); trainer.MaximumTrainingIterations = 1000; // Train Network long t0 = (System.DateTime.Now.Ticks - 621355968000000000) / 10000; classification.Train(trainer, xData, yData); // Display Network Errors double[] stats = classification.ComputeStatistics(xData, yData); System.Console.Out.WriteLine( "***********************************************"); System.Console.Out.WriteLine( "--> Cross-entropy error: " + (float) stats[0]); System.Console.Out.WriteLine( "--> Classification error rate: " + (float) stats[1]); System.Console.Out.WriteLine( "***********************************************"); System.Console.Out.WriteLine(""); double[] weight = network.Weights; double[] gradient = trainer.ErrorGradient; double[][] wg = new double[weight.Length][]; for (int i2 = 0; i2 < weight.Length; i2++) { wg[i2] = new double[2]; } for (int i = 0; i < weight.Length; i++) { wg[i][0] = weight[i]; wg[i][1] = gradient[i]; } PrintMatrixFormat pmf = new PrintMatrixFormat(); pmf.SetColumnLabels(new System.String[]{"Weights", "Gradients"}); new PrintMatrix().Print(pmf, wg); double[][] report = new double[nObs][]; for (int i3 = 0; i3 < nObs; i3++) { report[i3] = new double[nInputs + 2]; } for (int i = 0; i < nObs; i++) { for (int j = 0; j < nInputs; j++) { report[i][j] = xData[i,j]; } report[i][nInputs] = irisData[i][4]; double[] xTmp = new double[xData.GetLength(1)]; for (int j=0; j<xData.GetLength(1); j++) xTmp[j] = xData[i,j]; report[i][nInputs + 1] = classification.PredictedClass(xTmp); } pmf = new PrintMatrixFormat(); pmf.SetColumnLabels( new System.String[]{"Sepal Length", "Sepal Width", "Petal Length", "Petal Width", "Expected", "Predicted"}); new PrintMatrix("Forecast").Print(pmf, report); // ********************************************************************** // DISPLAY CLASSIFICATION STATISTICS // ********************************************************************** double[] statsClass = classification.ComputeStatistics(xData, yData); // Display Network Errors System.Console.Out.WriteLine( "***********************************************"); System.Console.Out.WriteLine("--> Cross-Entropy Error: " + (float)statsClass[0]); System.Console.Out.WriteLine("--> Classification Error: " + (float)statsClass[1]); System.Console.Out.WriteLine( "***********************************************"); System.Console.Out.WriteLine(""); long t1 = (System.DateTime.Now.Ticks - 621355968000000000) / 10000; double time = t1 - t0; time = time / 1000; System.Console.Out.WriteLine("****************Time: " + time); System.Console.Out.WriteLine("Cross-Entropy Error Value = " + trainer.ErrorValue); } }
*********************************************** --> Cross-entropy error: 5.922989 --> Classification error rate: 0.01333333 *********************************************** Weights Gradients 0 -362.135397018074 0 1 -560.715494616693 0 2 527.72406779352 2.08315681881952E-198 3 -0.195010974908058 0.0264624672168392 4 -685.159411754574 0 5 -803.111185471252 0 6 -195.048774132049 9.50211882268555E-199 7 -0.649536948895873 0.0122051719495706 8 1271.3576681191 0 9 495.146969161579 0 10 -599.774609230401 1.2791313799769E-198 11 0.807201787624182 0.0211017819573165 12 1143.16439557087 0 13 950.665441902952 0 14 -501.328120816785 3.65466108564829E-199 15 1.82418587547183 0.0071872906296363 16 188.142460610324 0.606686791122197 17 99.9378596561514 4.43416403183572E-05 18 48.0430167242241 0 19 103.388473027949 0 20 -28.0558983107429 0 21 -122.247432161144 0 22 674.932369179828 5.41468289698623E-202 23 295.103891118948 3.9419889529911E-206 24 -885.621857738157 0 25 31.424095865498 0.000136908693839501 26 -11.7156988030889 9.32263272488116E-09 27 250.928447008145 0 28 -9490.85347121632 0 29 1392.60893930402 -0.000263660213410609 30 8099.24453182847 0.000263660213411595 31 -9687.90452156921 0 32 2423.00583945991 -0.000401325677808519 33 7265.89868208763 0.000401325677809067 34 -9908.74662211761 0 35 3132.8896497266 -0.00040133483404004 36 6776.85697236237 0.000401334834041256 37 -251.58662719581 0 38 -395.299386555686 0 39 -361.151672607701 3.65466108564829E-199 40 -12.3192632922507 0.00431460331538189 41 -187.499672307873 0.606686791122197 42 -89.2472537574958 4.43416403183572E-05 43 34.2625870237822 0 44 22537.1579103508 0 45 -4821.83723997329 -0.00040133483404004 46 -17715.3206704603 0.000401334834041256 Forecast Sepal Length Sepal Width Petal Length Petal Width Expected Predicted 0 5.1 3.5 1.4 0.2 1 1 1 4.9 3 1.4 0.2 1 1 2 4.7 3.2 1.3 0.2 1 1 3 4.6 3.1 1.5 0.2 1 1 4 5 3.6 1.4 0.2 1 1 5 5.4 3.9 1.7 0.4 1 1 6 4.6 3.4 1.4 0.3 1 1 7 5 3.4 1.5 0.2 1 1 8 4.4 2.9 1.4 0.2 1 1 9 4.9 3.1 1.5 0.1 1 1 10 5.4 3.7 1.5 0.2 1 1 11 4.8 3.4 1.6 0.2 1 1 12 4.8 3 1.4 0.1 1 1 13 4.3 3 1.1 0.1 1 1 14 5.8 4 1.2 0.2 1 1 15 5.7 4.4 1.5 0.4 1 1 16 5.4 3.9 1.3 0.4 1 1 17 5.1 3.5 1.4 0.3 1 1 18 5.7 3.8 1.7 0.3 1 1 19 5.1 3.8 1.5 0.3 1 1 20 5.4 3.4 1.7 0.2 1 1 21 5.1 3.7 1.5 0.4 1 1 22 4.6 3.6 1 0.2 1 1 23 5.1 3.3 1.7 0.5 1 1 24 4.8 3.4 1.9 0.2 1 1 25 5 3 1.6 0.2 1 1 26 5 3.4 1.6 0.4 1 1 27 5.2 3.5 1.5 0.2 1 1 28 5.2 3.4 1.4 0.2 1 1 29 4.7 3.2 1.6 0.2 1 1 30 4.8 3.1 1.6 0.2 1 1 31 5.4 3.4 1.5 0.4 1 1 32 5.2 4.1 1.5 0.1 1 1 33 5.5 4.2 1.4 0.2 1 1 34 4.9 3.1 1.5 0.1 1 1 35 5 3.2 1.2 0.2 1 1 36 5.5 3.5 1.3 0.2 1 1 37 4.9 3.1 1.5 0.1 1 1 38 4.4 3 1.3 0.2 1 1 39 5.1 3.4 1.5 0.2 1 1 40 5 3.5 1.3 0.3 1 1 41 4.5 2.3 1.3 0.3 1 1 42 4.4 3.2 1.3 0.2 1 1 43 5 3.5 1.6 0.6 1 1 44 5.1 3.8 1.9 0.4 1 1 45 4.8 3 1.4 0.3 1 1 46 5.1 3.8 1.6 0.2 1 1 47 4.6 3.2 1.4 0.2 1 1 48 5.3 3.7 1.5 0.2 1 1 49 5 3.3 1.4 0.2 1 1 50 7 3.2 4.7 1.4 2 2 51 6.4 3.2 4.5 1.5 2 2 52 6.9 3.1 4.9 1.5 2 2 53 5.5 2.3 4 1.3 2 2 54 6.5 2.8 4.6 1.5 2 2 55 5.7 2.8 4.5 1.3 2 2 56 6.3 3.3 4.7 1.6 2 2 57 4.9 2.4 3.3 1 2 2 58 6.6 2.9 4.6 1.3 2 2 59 5.2 2.7 3.9 1.4 2 2 60 5 2 3.5 1 2 2 61 5.9 3 4.2 1.5 2 2 62 6 2.2 4 1 2 2 63 6.1 2.9 4.7 1.4 2 2 64 5.6 2.9 3.6 1.3 2 2 65 6.7 3.1 4.4 1.4 2 2 66 5.6 3 4.5 1.5 2 2 67 5.8 2.7 4.1 1 2 2 68 6.2 2.2 4.5 1.5 2 2 69 5.6 2.5 3.9 1.1 2 2 70 5.9 3.2 4.8 1.8 2 2 71 6.1 2.8 4 1.3 2 2 72 6.3 2.5 4.9 1.5 2 2 73 6.1 2.8 4.7 1.2 2 2 74 6.4 2.9 4.3 1.3 2 2 75 6.6 3 4.4 1.4 2 2 76 6.8 2.8 4.8 1.4 2 2 77 6.7 3 5 1.7 2 2 78 6 2.9 4.5 1.5 2 2 79 5.7 2.6 3.5 1 2 2 80 5.5 2.4 3.8 1.1 2 2 81 5.5 2.4 3.7 1 2 2 82 5.8 2.7 3.9 1.2 2 2 83 6 2.7 5.1 1.6 2 3 84 5.4 3 4.5 1.5 2 2 85 6 3.4 4.5 1.6 2 2 86 6.7 3.1 4.7 1.5 2 2 87 6.3 2.3 4.4 1.3 2 2 88 5.6 3 4.1 1.3 2 2 89 5.5 2.5 4 1.3 2 2 90 5.5 2.6 4.4 1.2 2 2 91 6.1 3 4.6 1.4 2 2 92 5.8 2.6 4 1.2 2 2 93 5 2.3 3.3 1 2 2 94 5.6 2.7 4.2 1.3 2 2 95 5.7 3 4.2 1.2 2 2 96 5.7 2.9 4.2 1.3 2 2 97 6.2 2.9 4.3 1.3 2 2 98 5.1 2.5 3 1.1 2 2 99 5.7 2.8 4.1 1.3 2 2 100 6.3 3.3 6 2.5 3 3 101 5.8 2.7 5.1 1.9 3 3 102 7.1 3 5.9 2.1 3 3 103 6.3 2.9 5.6 1.8 3 3 104 6.5 3 5.8 2.2 3 3 105 7.6 3 6.6 2.1 3 3 106 4.9 2.5 4.5 1.7 3 3 107 7.3 2.9 6.3 1.8 3 3 108 6.7 2.5 5.8 1.8 3 3 109 7.2 3.6 6.1 2.5 3 3 110 6.5 3.2 5.1 2 3 3 111 6.4 2.7 5.3 1.9 3 3 112 6.8 3 5.5 2.1 3 3 113 5.7 2.5 5 2 3 3 114 5.8 2.8 5.1 2.4 3 3 115 6.4 3.2 5.3 2.3 3 3 116 6.5 3 5.5 1.8 3 3 117 7.7 3.8 6.7 2.2 3 3 118 7.7 2.6 6.9 2.3 3 3 119 6 2.2 5 1.5 3 3 120 6.9 3.2 5.7 2.3 3 3 121 5.6 2.8 4.9 2 3 3 122 7.7 2.8 6.7 2 3 3 123 6.3 2.7 4.9 1.8 3 3 124 6.7 3.3 5.7 2.1 3 3 125 7.2 3.2 6 1.8 3 3 126 6.2 2.8 4.8 1.8 3 3 127 6.1 3 4.9 1.8 3 3 128 6.4 2.8 5.6 2.1 3 3 129 7.2 3 5.8 1.6 3 3 130 7.4 2.8 6.1 1.9 3 3 131 7.9 3.8 6.4 2 3 3 132 6.4 2.8 5.6 2.2 3 3 133 6.3 2.8 5.1 1.5 3 2 134 6.1 2.6 5.6 1.4 3 3 135 7.7 3 6.1 2.3 3 3 136 6.3 3.4 5.6 2.4 3 3 137 6.4 3.1 5.5 1.8 3 3 138 6 3 4.8 1.8 3 3 139 6.9 3.1 5.4 2.1 3 3 140 6.7 3.1 5.6 2.4 3 3 141 6.9 3.1 5.1 2.3 3 3 142 5.8 2.7 5.1 1.9 3 3 143 6.8 3.2 5.9 2.3 3 3 144 6.7 3.3 5.7 2.5 3 3 145 6.7 3 5.2 2.3 3 3 146 6.3 2.5 5 1.9 3 3 147 6.5 3 5.2 2 3 3 148 6.2 3.4 5.4 2.3 3 3 149 5.9 3 5.1 1.8 3 3 *********************************************** --> Cross-Entropy Error: 5.922989 --> Classification Error: 0.01333333 *********************************************** ****************Time: 5.719 Cross-Entropy Error Value = 17.7689670987518Link to C# source.