Exemple #1
0
        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);
        }
Exemple #2
0
 public void SetUpClassificationAlgorithm()
 {
     _prevOutputWeightError = 0;
     Centroid.ResetNextId();
     CalculateHiddenLayerOutputs();
     InitOutputLayerWeights();
     TotalErrors.Clear();
     TotalTestErrors.Clear();
 }