/// <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); }
/// <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) { }