1
votes

I have found the following Matlab implementation of a Naive Bayes classifier:

https://github.com/jjedele/Naive-Bayes-Classifier-Octave-Matlab

What is the difference between Gaussian Naive Bayes and Naive Bayes? How could I extend the above implementation to become Gaussian Naive Bayes?

How can I extend the implementation for using it with 4 classes? Just doing one-vs-all other?

Thank you very much for the help.

1

1 Answers

1
votes

In Naive Bayes Classification we take a set of features (x0,x1,...xn) and try to assign those feature to one of a known set Y of class (y0,y1,...yk) we do that by using training data to calculate the conditional probabilities that tell us how often a particular class had a certain feature in the training set and then multiplying them together.

The result is a score for each class in the set Y. We then take the highest scoring member of Y as the class that our feature set should be assigned to.

p(x|C)

up until this point we haven't made any assumptions about what the p(x|C) distributions look like.

In Guassian Naive Bayes we assume that all those p(x|C) values are normaly distributed that's the only "difference" and it really isn't a difference GNB is just a subset of Naive Bayes.

Gaussian Naive Bayes

This can be useful if you don't have a lot of training data, and are willing to make the assumption that the population data is normally distributed about the mean of the sample (training) data you do have.

Full discloser the Tex comes from wikipedia.