Scikit Learn - классификация с наивным байесовским методом
Наивные методы Байеса представляют собой набор алгоритмов контролируемого обучения, основанных на применении теоремы Байеса с сильным предположением, что все предикторы независимы друг от друга, то есть присутствие признака в классе не зависит от наличия любой другой особенности в том же самом. класс. Это наивное предположение, поэтому эти методы называют наивными байесовскими методами.
Теорема Байеса утверждает следующее соотношение, чтобы найти апостериорную вероятность класса, то есть вероятность метки и некоторых наблюдаемых характеристик, $ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right ) $.
$$ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right) = \ left (\ frac {P \ lgroup Y \ rgroup P \ left (\ begin {array} {c } features \ arrowvert Y \ end {array} \ right)} {P \ left (\ begin {array} {c} features \ end {array} \ right)} \ right) $$Здесь $ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right) $ - апостериорная вероятность класса.
$ P \ left (\ begin {array} {c} Y \ end {array} \ right) $ - априорная вероятность класса.
$ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ - это вероятность, которая представляет собой вероятность данного класса предиктора.
$ P \ left (\ begin {array} {c} features \ end {array} \ right) $ - априорная вероятность предиктора.
Scikit-learn предоставляет различные модели наивных байесовских классификаторов, а именно гауссовский, полиномиальный, дополнительный и Бернулли. Все они различаются в основном предположением, которое они делают относительно распределения $ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $, т.е. вероятности предиктора данного класса.
Старший Нет | Модель и описание |
---|---|
1 | Гауссовский наивный байесовский Гауссовский Наивный байесовский классификатор предполагает, что данные каждой метки взяты из простого гауссовского распределения. |
2 | Полиномиальный наивный байесовский Предполагается, что признаки взяты из простого полиномиального распределения. |
3 | Бернулли Наив Байес В этой модели предполагается, что функции двоичны (нули и единицы) по своей природе. Применение наивной байесовской классификации Бернулли - это классификация текста с моделью «мешка слов». |
4 | Дополнение наивного Байеса Он был разработан для исправления серьезных допущений, сделанных полиномиальным байесовским классификатором. Такой классификатор NB подходит для несбалансированных наборов данных. |
Построение наивного байесовского классификатора
Мы также можем применить наивный байесовский классификатор к набору данных Scikit-learn. В приведенном ниже примере мы применяем GaussianNB и подбираем набор данных груди_cancer Scikit-leran.
пример
Import Sklearn
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
data = load_breast_cancer()
label_names = data['target_names']
labels = data['target']
feature_names = data['feature_names']
features = data['data']
print(label_names)
print(labels[0])
print(feature_names[0])
print(features[0])
train, test, train_labels, test_labels = train_test_split(
features,labels,test_size = 0.40, random_state = 42
)
from sklearn.naive_bayes import GaussianNB
GNBclf = GaussianNB()
model = GNBclf.fit(train, train_labels)
preds = GNBclf.predict(test)
print(preds)
Вывод
[
1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1
1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1
1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0
1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0
1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1
0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1
1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0
1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1
1 1 1 1 0 1 0 0 1 1 0 1
]
Приведенный выше результат состоит из серии нулей и единиц, которые в основном являются предсказанными значениями для классов опухолей, а именно злокачественных и доброкачественных.