public double AskNeuralNetwork(double[] input) { Network.Network network = new Network.Network(_inputData[0].Length, _numberOfHiddenLayers, _networkTopology); network.InitializeNetwork(); network.SetWeights(_archive[0]); return network.CalculateOutputForOneExample(input); }
double CalculateMaeForAllExamples(Network.Network network) { //double error = _inputData.Select((t, i) => Math.Abs(_desiredOutput[i] - network.CalculateOutputForOneExample(t))).Sum(); double error = 0.0; for (int i = 0; i < _desiredOutput.Length; i++) { double networkOutput = network.CalculateOutputForOneExample(_inputData[i]); double absError = Math.Abs(_desiredOutput[i] - networkOutput); if ((_desiredOutput[i] > 0 && networkOutput > 0) || (_desiredOutput[i] < 0 && networkOutput < 0)) { error += absError; } else { error += 10*absError; } } return error / _inputData.Length; }