4.1 API: MultinomialNB 、 GaussianNB 、 BernoulliNB

1.МногочленNB

Предполагая, что априорная вероятность признаков является полиномиальным распределением, полиномиальный наивный байесовский классификатор подходит для классификации с дискретными признаками (например, подсчет слов для классификации текста). Полиномиальное распределение обычно требует целочисленного подсчета признаков

from sklearn.naive_bayes import MultinomialNB

MultinomialNB(*, alpha=1.0, fit_prior=True, class_prior=None)

Параметры

alpha: float, default = 1.0
Параметр, добавленный байесовской оценкой, когда alpha = 1.0, это сглаживание Лапласа

fit_prior: bool, default = True
указывает, следует ли изучать априорную вероятность; если она имеет значение False, при выводе всех выборок будет использоваться априорная вероятность однородной категории (1 / количество категорий).
Если это True, вы можете использовать третий параметр class_piror, чтобы ввести априорную вероятность, или, если вы не вводите третий параметр, вы можете вычислить априорную вероятность из обучающего набора самостоятельно. В это время априорная вероятность k-я категория = k-я Количество образцов в каждой категории / общее количество образцов

class_prior: подобный массиву формы (n_classes,), по умолчанию = None Априорная
вероятность этого класса.
Если указано априорное значение, оно не будет корректироваться на основе данных.

Атрибуты

class_count_: ndarray of shape (n_classes,)
Количество образцов, обнаруженных в каждой категории во время подбора

class_log_prior_: ndarray of shape (n_classes,)
Сглаженная эмпирическая логарифмическая вероятность каждого класса

classes_: nd массив меток классов shape (n_classes,),
известных классификатору

feature_count_: ndarray of shape (n_classes, n_features)
Количество выборок, обнаруженных для каждого (класса, объекта) во время подгонки.

feature_log_prob_: ndarray of shape (n_classes, n_features)
Эмпирическая логарифмическая вероятность данного типа функции, P (x_i | y)

n_features_: int
количество функций на образец

Методы

fit (X, y [, sample_weight]) Подогнать
наивный байесовский классификатор в соответствии с X, y

get_params ([deep])
получить параметры этой оценки

partial_fit (X, y [, classes, sample_weight])
обновляет параметры онлайн в соответствии с партией образцов

pred (X)
классифицирует тестовый вектор X.

pred_log_proba (X)
возвращает логарифмическую оценку вероятности тестового вектора X

pred_proba (X)
возвращает оценку вероятности тестового вектора X

score (X, y [, sample_weight])
возвращает точность заданных тестовых данных и метки

set_params (** params)
устанавливает параметры этого оценщика.

Пример

>>> import numpy as np
>>> rng = np.random.RandomState(1)
>>> X = rng.randint(5, size=(6, 100))
>>> y = np.array([1, 2, 3, 4, 5, 6])
>>> from sklearn.naive_bayes import MultinomialNB
>>> clf = MultinomialNB()
>>> clf.fit(X, y)
MultinomialNB()
>>> print(clf.predict(X[2:3]))
[3]

2.GaussianNB

Предполагая, что априорной вероятностью является гауссовское распределение, а GaussianNB - гауссовский наивный байесовский алгоритм, параметры модели могут быть обновлены онлайн с помощью partial_fit.

from sklearn.naive_bayes import GaussianNB

GaussianNB(*, priors=None, var_smoothing=1e-09)

Параметры

priors: подобный массиву формы (n_classes,) Априорная
вероятность этого класса. Если указано, предыдущие данные не будут скорректированы в соответствии с данными.

var_smoothing: float, default = 1e-9
Часть максимальной дисперсии всех функций была добавлена ​​к дисперсии для повышения стабильности вычислений.

Атрибуты

class_count_: ndarray of shape (n_classes,)
Количество обучающих выборок, наблюдаемых в каждом классе

class_prior_: ndarray of shape (n_classes,)
вероятность каждого класса

classes_: nd массив меток классов shape (n_classes,),
известных классификатору

epsilon_:
абсолютное добавленное значение дисперсии с плавающей запятой

sigma_: ndarray of shape (n_classes, n_features)
дисперсия каждой функции каждого класса

theta_: ndarray of shape (n_classes, n_features)
Среднее значение каждой функции каждого класса

Методы
Там же.

Пример

>>> import numpy as np
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> Y = np.array([1, 1, 1, 2, 2, 2])
>>> from sklearn.naive_bayes import GaussianNB
>>> clf = GaussianNB()
>>> clf.fit(X, Y)
GaussianNB()
>>> print(clf.predict([[-0.8, -1]]))
[1]
>>> clf_pf = GaussianNB()
>>> clf_pf.partial_fit(X, Y, np.unique(Y))
GaussianNB()
>>> print(clf_pf.predict([[-0.8, -1]]))
[1]

3.Бернулли

Приоритетом является Наивный Байес с распределением Бернулли; как и MultinomialNB, этот классификатор подходит для дискретных данных. Разница в том, что хотя MultinomialNB может обрабатывать количество вхождений, BernoulliNB предназначен для двоичных / логических функций.

from sklearn.naive_bayes import BernoulliNB

BernoulliNB(*, alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None)

Параметры

alpha: float, default = 1.0
Параметр, добавленный байесовской оценкой, когда alpha = 1.0, это сглаживание Лапласа

binarize: float или None, по умолчанию = 0,0
Пороговое значение, используемое для преобразования в двоичный вид примеров функций (сопоставление с логическими значениями). Если Нет, предполагается, что вход уже состоит из двоичного вектора.

fit_prior: bool, default = True
указывает, следует ли изучать априорную вероятность; если она имеет значение False, при выводе всех выборок будет использоваться априорная вероятность однородной категории (1 / количество категорий).
Если это True, вы можете использовать третий параметр class_piror, чтобы ввести априорную вероятность, или, если вы не вводите третий параметр, вы можете вычислить априорную вероятность самостоятельно из обучающего набора.

class_prior: подобный массиву формы (n_classes,), по умолчанию = None Априорная
вероятность этого класса.
Если указано априорное значение, оно не будет корректироваться на основе данных.


Остальные атрибуты такие же, как у MultinomialNB.

coef_: ndarray of shape (n_classes, n_features)
зеркальное отображение feature_log_prob_ интерпретировать Бернулли как линейную модель

intercept_: ndarray of shape (n_classes,)
mirror class_log_prior_ интерпретирует Бернулли как линейную модель

Методы
Там же.

Пример

>>> import numpy as np
>>> rng = np.random.RandomState(1)
>>> X = rng.randint(5, 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()
>>> print(clf.predict(X[2:3]))
[3]

рекомендация

отblog.csdn.net/weixin_46649052/article/details/112508799