public void Learn() { Outputs.Clear(); var error = 0.0; double testError = 0.0; for (var i = 0; i < hiddenLayerOutputs.Count; i++) { _neuron.Inputs = hiddenLayerOutputs[i]; _neuron.CalculateOutput(); Train(hiddenLayerOutputs[i], SampleRepository.TrainSamples[i].ExpectedValues.First()); Outputs.Add(_neuron.Output); } for (int i = 0; i < hiddenLayerOutputs.Count; i++) { _neuron.Inputs = hiddenLayerOutputs[i]; _neuron.CalculateOutput(); error += _neuron.CalculateError(SampleRepository.TrainSamples[i].ExpectedValues.First()); } for (int i = 0; i < SampleRepository.TestSamples.Count; i++) { CalculateNetworkOutput(new SamplePoint(SampleRepository.TestSamples[i].Inputs)); testError += _neuron.CalculateError(SampleRepository.TestSamples[i].ExpectedValues.First()); } TotalErrors.Add(error / hiddenLayerOutputs.Count); TotalTestErrors.Add(testError / SampleRepository.TestSamples.Count); }
public void SetUpClassificationAlgorithm() { _prevOutputWeightError = 0; Centroid.ResetNextId(); CalculateHiddenLayerOutputs(); InitOutputLayerWeights(); TotalErrors.Clear(); TotalTestErrors.Clear(); }