public void Train()
{
TrainingErrorData.Clear();
TestingIdealData.Clear();
TestingResultsData.Clear();
_network = ConstructNetwork(TrainingSet.InputSize,TrainingSet.IdealSize);
//var trainer = new Backpropagation(_network, TrainingSet, LearningRate, Momentum);
var trainer = new ResilientPropagation(_network, TrainingSet);
double[] resultsArray = new double[TrainingSet.Count];
double[] errorArray = new double[NumberOfIterations];
IsBusy = true;
for (int iteration = 0; iteration < numberOfIterations; iteration++)
{
trainer.Iteration();
TrainingErrorData.Add(new Tuple<int,double>(iteration, trainer.Error));
}
IsBusy = false;
for(int i = 0; i < TrainingSet.Count; i++)
{
resultsArray[i] = _network.Classify(TrainingSet[i].Input);
}
TrainingErrorValue = _network.CalculateError(TrainingSet);
Stage = Stage.Trained;
}