From 7b28dce43d2bbaf144b33aae41b048f5404e5a2f Mon Sep 17 00:00:00 2001 From: Ryan Curtin Date: Sat, 26 Sep 2015 04:17:01 +0000 Subject: [PATCH] Fix incremental single-point training. --- .../methods/naive_bayes/naive_bayes_classifier_impl.hpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/mlpack/methods/naive_bayes/naive_bayes_classifier_impl.hpp b/src/mlpack/methods/naive_bayes/naive_bayes_classifier_impl.hpp index 9dbd7c533c..21829e3938 100644 --- a/src/mlpack/methods/naive_bayes/naive_bayes_classifier_impl.hpp +++ b/src/mlpack/methods/naive_bayes/naive_bayes_classifier_impl.hpp @@ -146,9 +146,11 @@ void NaiveBayesClassifier::Train(const VecType& point, arma::vec delta = point - means.col(label); means.col(label) += delta / probabilities[label]; - variances.col(label) *= (probabilities[label] - 1) / probabilities[label]; - variances.col(label) += (1 / probabilities[label]) * - (delta % (point - means.col(label))); + if (probabilities[label] > 2) + variances.col(label) *= (probabilities[label] - 2); + variances.col(label) += (delta % (point - means.col(label))); + if (probabilities[label] > 1) + variances.col(label) /= probabilities[label] - 1; trainingPoints++; probabilities /= trainingPoints;