Exemple #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="NaiveBayesModelWriter" /> class.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <param name="outputStream">The output stream.</param>
        /// <param name="encoding">The encoding.</param>
        /// <exception cref="System.ArgumentNullException">outputStream</exception>
        /// <exception cref="System.ArgumentException">The stream is not writable.</exception>
        public PlainTextNaiveBayesModelWriter(NaiveBayesModel model, Stream outputStream, Encoding encoding) : base(model)
        {
            if (outputStream == null)
            {
                throw new ArgumentNullException(nameof(outputStream));
            }

            if (!outputStream.CanWrite)
            {
                throw new ArgumentException("The stream is not writable.", nameof(outputStream));
            }

            if (encoding == null)
            {
                encoding = Encoding.UTF8;
            }

            writer = new PlainTextFileDataWriter(outputStream, encoding);
        }
        private void TrainingStats(EvalParameters evalParams)
        {
            var numCorrect = 0;

            for (var ei = 0; ei < numUniqueEvents; ei++)
            {
                for (var ni = 0; ni < numTimesEventsSeen[ei]; ni++)
                {
                    var modelDistribution = new double[numOutcomes];

                    NaiveBayesModel.Eval(contexts[ei], values?[ei], modelDistribution, evalParams);

                    var max = MaxIndex(modelDistribution);
                    if (max == outcomeList[ei])
                    {
                        numCorrect++;
                    }
                }
            }
            var trainingAccuracy = (double)numCorrect / numEvents;

            Display("Stats: (" + numCorrect + "/" + numEvents + ") " + trainingAccuracy);
        }
Exemple #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="NaiveBayesModelWriter" /> class.
 /// </summary>
 /// <param name="model">The model.</param>
 /// <param name="outputStream">The output stream.</param>
 /// <exception cref="System.ArgumentNullException">outputStream</exception>
 /// <exception cref="System.ArgumentException">The stream is not writable.</exception>
 public PlainTextNaiveBayesModelWriter(NaiveBayesModel model, Stream outputStream)
     : this(model, outputStream, Encoding.UTF8)
 {
 }