public void Train(List <ClassifiableText> classifiableTexts) { // prepare input and ideal vectors // input <- ClassifiableText text vector // ideal <- characteristicValue vector // var input = GetInput(classifiableTexts); var ideal = GetIdeal(classifiableTexts); // train // Propagation train = new ResilientPropagation(_network, new BasicMLDataSet(input, ideal)); train.ThreadCount = 16; NeuroNetworkEventArgs neroMessage; // todo: throw exception if iteration count more than 1000 do { train.Iteration(); neroMessage = new NeuroNetworkEventArgs { Message = $@"Training Classifier for {_characteristic.Name} characteristic. Errors:{train.Error * 100:0.00}%." }; OnNeuroNetworkMessage(neroMessage); } while (train.Error > 0.01); train.FinishTraining(); neroMessage = new NeuroNetworkEventArgs { Message = $@"Classifier for {_characteristic.Name} characteristic trained. Wait..." }; OnNeuroNetworkMessage(neroMessage); }
protected virtual void OnNeuroNetworkMessage(NeuroNetworkEventArgs e) { NeuroNetworkMessage?.Invoke(this, e); }