This page

Citing

Please consider citing the scikit-learn.

9.3.4. 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.

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) self Fit the model
predict(X) array Predict using the model.
predict_proba(X) array Predict the probability of each class using the model.
predict_log_proba(X) array Predict the log probability of each class using the model.
__init__(alpha=1.0, binarize=0.0, fit_prior=True)
fit(X, y, 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.

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, sparse matrix}, shape = [n_samples, n_features]
Returns :C : array, shape = [n_samples]
predict_log_proba(X)

Return log-probability estimates for the test vector X.

Parameters :

X : {array-like, sparse matrix}, 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 by arithmetical order.

predict_proba(X)

Return probability estimates for the test vector X.

Parameters :

X : {array-like, sparse matrix}, 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 by arithmetical order.

score(X, y)

Returns the mean error rate 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 :