==================== Gaussian Naive Bayes ==================== Gaussian Naive Bayes classifies data according to how well it aligns with the Gaussian distributions of several different classes. The probability that some feature :math:`x_{i}` in the feature vector :math:`i` belongs to class :math:`c`, :math:`p(x_{i}|c)`, is given by .. math:: p(x_{i}|c)=\frac{1}{\sqrt{2\pi\sigma_{x,c}^{2}}}\exp \left(-\frac{(x_{i}-\mu_{x,c})^{2}}{2\sigma_{x,c}^{2}} \right) For each vector, the Gaussian Naive Bayes classifier chooses the class :math:`c` which the vector most likely belongs to, given by .. math:: \argmax_c p(c)\prod_{i}p(x_{i}|c) See Chapter 10 in :cite:`barber2012bayesian` for a detailed introduction. ------- Example ------- Imagine we have files with training and test data. We create CDenseFeatures (here 64 bit floats aka RealFeatures) and :sgclass:`CMulticlassLabels` as .. sgexample:: gaussian_naive_bayes.sg:create_features We create an instance of the :sgclass:`CGaussianNaiveBayes` classifier, passing it training data and the label. .. sgexample:: gaussian_naive_bayes.sg:create_instance Then we run the train Gaussian Naive Bayes algorithm and apply it to the test data, which here gives `CMulticlassLabels` .. sgexample:: gaussian_naive_bayes.sg:train_and_apply ---------- References ---------- :wiki:`Naive_Bayes_classifier#Gaussian_naive_Bayes`