# type BernoulliNBClassifier

Defined in github.com/sjwhitworth/golearn/naive/bernoulli_nb.go

## Description

A Bernoulli Naive Bayes Classifier. Naive Bayes classifiers assumes that features probabilities are independent. In order to classify an instance, it is calculated the probability that it was generated by each known class, that is, for each class C, the following probability is calculated.

p(C|F1, F2, F3... Fn)

Being F1, F2... Fn the instance features. Using the bayes theorem this can be written as:

\frac{p(C) \times p(F1, F2... Fn|C)}{p(F1, F2... Fn)}

In the Bernoulli Naive Bayes features are considered independent booleans, this means that the likelihood of a document given a class C is given by:

p(F1, F2... Fn) = \prod_{i=1}^{n}{[F_i \times p(f_i|C)) + (1-F_i)(1 - p(f_i|C)))]}

where

- F_i equals to 1 if feature is present in vector and zero otherwise - p(f_i|C) the probability of class C generating the feature f_i

For more information:

C.D. Manning, P. Raghavan and H. Schuetze (2008). Introduction to Information Retrieval. Cambridge University Press, pp. 234-265. http://nlp.stanford.edu/IR-book/html/htmledition/the-bernoulli-model-1.html

## Examples

// Create a new Bernoulli Naive Bayes Classifier. The argument 'classes' // is the number of possible labels in the classification task. func NewBernoulliNBClassifier() *BernoulliNBClassifier { nb := BernoulliNBClassifier{} nb.condProb = make(map[string][]float64)

// is the number of possible labels in the classification task. func NewBernoulliNBClassifier() *BernoulliNBClassifier { nb := BernoulliNBClassifier{} nb.condProb = make(map[string][]float64) nb.features = 0

// Fill data matrix with Bernoulli Naive Bayes model. All values // necessary for calculating prior probability and p(f_i) func (nb *BernoulliNBClassifier) Fit(X base.FixedDataGrid) { // Check that all Attributes are binary

## BernoulliNBClassifier is referenced in 1 repository

**github.com/sjwhitworth/golearn**

- 5 references in naive/bernoulli_nb.go