Example #1
0
        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);
        }
Example #2
0
 protected virtual void OnNeuroNetworkMessage(NeuroNetworkEventArgs e)
 {
     NeuroNetworkMessage?.Invoke(this, e);
 }