# Bernoulli Naive Bayes Classifier

The Bernoulli naive Bayes classifier assumes that all our features are binary such that they take only two values (e.g. a nominal categorical feature that has been one-hot encoded).

## Preliminaries

```
# Load libraries
import numpy as np
from sklearn.naive_bayes import BernoulliNB
```

## Create Binary Feature And Target Data

```
# Create three binary features
X = np.random.randint(2, size=(100, 3))
# Create a binary target vector
y = np.random.randint(2, size=(100, 1)).ravel()
```

## View Feature Data

```
# View first ten observations
X[0:10]
```

```
array([[1, 1, 1],
[0, 1, 0],
[1, 1, 1],
[0, 0, 0],
[1, 0, 1],
[1, 1, 1],
[0, 1, 1],
[1, 1, 1],
[1, 1, 1],
[1, 1, 0]])
```

## Train Bernoulli Naive Bayes Classifier

```
# Create Bernoulli Naive Bayes object with prior probabilities of each class
clf = BernoulliNB(class_prior=[0.25, 0.5])
# Train model
model = clf.fit(X, y)
```