public void IrisRadialBasisFunctionNeuronalNetworkClassifierTest() { DataSetLoader dataSetLoader = new DataSetLoader(); Console.WriteLine(" Reading DataSet.. "); var irises = dataSetLoader.SelectNeuronalNetworkIrises(); for (double i = 0; i < 1; i = i + 1) { OneHiddenLayerNeuronCounter oneHiddenLayerNeuronCounter = new OneHiddenLayerNeuronCounter(4, 3, 3); RadialBasisFunctionNeuronalNetwork radialBasisFunctionNeuronalNetworkClassifier = new RadialBasisFunctionNeuronalNetwork(oneHiddenLayerNeuronCounter, 10000, 0.7); radialBasisFunctionNeuronalNetworkClassifier.Train(irises); var irisesTest = dataSetLoader.SelectIrises(); var trueCounter = 0; var counter = 0; foreach (var item in irisesTest) { var outputValue = radialBasisFunctionNeuronalNetworkClassifier.Classify(item.Item1); var resultString = String.Empty; double maxValue = 0.0; int innerCounter = 1; int maxItem = 0; foreach (var value in outputValue.OutputValues) { if (value > maxValue) { maxValue = value; maxItem = innerCounter; } innerCounter++; } if (maxItem == item.Item2) { trueCounter++; } Debug.WriteLine(string.Format("Value {0} - Predicted {1} {2} {3} = {4}", item.Item2, Convert.ToDecimal(outputValue.OutputValues[0]), Convert.ToDecimal(outputValue.OutputValues[1]), Convert.ToDecimal(outputValue.OutputValues[2]), (maxItem == item.Item2) ? "true" : "false")); counter++; } Debug.WriteLine(string.Format(" i = {0} Data {1} - True {2} Verhältnis: {3}", i, counter.ToString(), trueCounter.ToString(), (Convert.ToDouble(trueCounter) / Convert.ToDouble(counter)).ToString())); } }