Fix incremental single-point training.

This commit is contained in:
Ryan Curtin
2015-09-26 04:17:01 +00:00
parent e59d52d95a
commit 7b28dce43d
@@ -146,9 +146,11 @@ void NaiveBayesClassifier<MatType>::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;