Scikit Learn - Classificação com Naïve Bayes

Os métodos Naïve Bayes são um conjunto de algoritmos de aprendizagem supervisionada baseados na aplicação do teorema de Bayes com uma forte suposição de que todos os preditores são independentes entre si, ou seja, a presença de uma característica em uma classe é independente da presença de qualquer outra característica na mesma classe. Esta é uma suposição ingênua que é o motivo pelo qual esses métodos são chamados de métodos Naïve Bayes.

O teorema de Bayes estabelece a seguinte relação para encontrar a probabilidade posterior da classe, isto é, a probabilidade de um rótulo e algumas características observadas, $ 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 \ lgrupo Y \ rgrupo P \ left (\ begin {array} {c } features \ arrowvert Y \ end {array} \ right)} {P \ left (\ begin {array} {c} features \ end {array} \ right)} \ right) $$

Aqui, $ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right) $ é a probabilidade posterior da classe.

$ P \ left (\ begin {array} {c} Y \ end {array} \ right) $ é a probabilidade anterior da classe.

$ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ é a probabilidade que é a probabilidade do preditor dada classe.

$ P \ left (\ begin {array} {c} features \ end {array} \ right) $ é a probabilidade anterior do preditor.

O Scikit-learn fornece diferentes modelos de classificadores Bayes ingênuos, a saber, Gaussiano, Multinomial, Complemento e Bernoulli. Todos eles diferem principalmente pela suposição que fazem em relação à distribuição de $ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ ie a probabilidade do preditor dada classe.

Sr. Não Modelo e descrição
1 Gaussian Naïve Bayes

O classificador Gaussian Naïve Bayes assume que os dados de cada rótulo são extraídos de uma distribuição Gaussiana simples.

2 Multinomial Naïve Bayes

Ele pressupõe que os recursos são extraídos de uma distribuição multinomial simples.

3 Bernoulli Naïve Bayes

A suposição neste modelo é que os recursos são binários (0s e 1s) por natureza. Uma aplicação da classificação de Bernoulli Naïve Bayes é a classificação de texto com o modelo de 'saco de palavras'

4 Complemento Naïve Bayes

Ele foi projetado para corrigir as suposições severas feitas pelo classificador Multinomial Bayes. Este tipo de classificador NB é adequado para conjuntos de dados desequilibrados

Classificador Building Naïve Bayes

Também podemos aplicar o classificador Naïve Bayes no conjunto de dados Scikit-learn. No exemplo abaixo, estamos aplicando GaussianNB e ajustando o conjunto de dados breast_cancer de Scikit-leran.

Exemplo

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)

Resultado

[
   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
]

A saída acima consiste em uma série de 0s e 1s que são basicamente os valores previstos das classes de tumor, ou seja, maligno e benigno.