This documentation is for scikit-learn version 0.10Other versions

Citing

If you use the software, please consider citing scikit-learn.

This page

8.19.3. sklearn.naive_bayes.BernoulliNB

class sklearn.naive_bayes.BernoulliNB(alpha=1.0, binarize=0.0, fit_prior=True)

Naive Bayes classifier for multivariate Bernoulli models.

Like MultinomialNB, this classifier is suitable for discrete data. The difference is that while MultinomialNB works with occurrence counts, BernoulliNB is designed for binary/boolean features.

Note: this class does not check whether features are actually boolean.

Parameters :

alpha: float, optional (default=1.0) :

Additive (Laplace/Lidstone) smoothing parameter (0 for no smoothing).

binarize: float or None, optional :

Threshold for binarizing (mapping to booleans) of sample features. If None, input is presumed to already consist of binary vectors.

fit_prior: boolean :

Whether to learn class prior probabilities or not. If false, a uniform prior will be used.

Notes

References:

C.D. Manning, P. Raghavan and H. Schütze (2008). Introduction to Information Retrieval. Cambridge University Press, pp. 234–265.

A. McCallum and K. Nigam (1998). A comparison of event models for naive Bayes text classification. Proc. AAAI/ICML-98 Workshop on Learning for Text Categorization, pp. 41–48.

V. Metsis, I. Androutsopoulos and G. Paliouras (2006). Spam filtering with naive Bayes – Which naive Bayes? 3rd Conf. on Email and Anti-Spam (CEAS).

Examples

>>> import numpy as np
>>> X = np.random.randint(2, size=(6, 100))
>>> Y = np.array([1, 2, 3, 4, 4, 5])
>>> from sklearn.naive_bayes import BernoulliNB
>>> clf = BernoulliNB()
>>> clf.fit(X, Y)
BernoulliNB(alpha=1.0, binarize=0.0, fit_prior=True)
>>> print clf.predict(X[2])
[3]

Attributes

class_log_prior_ array, shape = [n_classes] Log probability of each class (smoothed).
feature_log_prob_ array, shape = [n_classes, n_features] Empirical log probability of features given a class, P(x_i|y).

Methods

fit(X, y[, sample_weight, class_prior]) Fit Naive Bayes classifier according to X, y
predict(X) Perform classification on an array of test vectors X.
predict_log_proba(X) Return log-probability estimates for the test vector X.
predict_proba(X) Return probability estimates for the test vector X.
score(X, y) Returns the mean accuracy on the given test data and labels.
set_params(**params) Set the parameters of the estimator.
__init__(alpha=1.0, binarize=0.0, fit_prior=True)
fit(X, y, sample_weight=None, class_prior=None)

Fit Naive Bayes classifier according to X, y

Parameters :

X : {array-like, sparse matrix}, shape = [n_samples, n_features]

Training vectors, where n_samples is the number of samples and n_features is the number of features.

y : array-like, shape = [n_samples]

Target values.

sample_weight : array-like, shape = [n_samples], optional

Weights applied to individual samples (1. for unweighted).

class_prior : array, shape [n_classes]

Custom prior probability per class. Overrides the fit_prior parameter.

Returns :

self : object

Returns self.

predict(X)

Perform classification on an array of test vectors X.

Parameters :

X : array-like, shape = [n_samples, n_features]

Returns :

C : array, shape = [n_samples]

Predicted target values for X

predict_log_proba(X)

Return log-probability estimates for the test vector X.

Parameters :

X : array-like, shape = [n_samples, n_features]

Returns :

C : array-like, shape = [n_samples, n_classes]

Returns the log-probability of the sample for each class in the model, where classes are ordered arithmetically.

predict_proba(X)

Return probability estimates for the test vector X.

Parameters :

X : array-like, shape = [n_samples, n_features]

Returns :

C : array-like, shape = [n_samples, n_classes]

Returns the probability of the sample for each class in the model, where classes are ordered arithmetically.

score(X, y)

Returns the mean accuracy on the given test data and labels.

Parameters :

X : array-like, shape = [n_samples, n_features]

Training set.

y : array-like, shape = [n_samples]

Labels for X.

Returns :

z : float

set_params(**params)

Set the parameters of the estimator.

The method works on simple estimators as well as on nested objects (such as pipelines). The former have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Returns :self :