Каталог статей
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]