Scikit Learn - Classificazione con Naïve Bayes

I metodi Naïve Bayes sono un insieme di algoritmi di apprendimento supervisionato basati sull'applicazione del teorema di Bayes con una forte ipotesi che tutti i predittori siano indipendenti l'uno dall'altro, cioè la presenza di una caratteristica in una classe è indipendente dalla presenza di qualsiasi altra caratteristica nella stessa classe. Questo è un presupposto ingenuo ed è per questo che questi metodi sono chiamati metodi Naïve Bayes.

Il teorema di Bayes afferma la seguente relazione per trovare la probabilità a posteriori di classe, cioè la probabilità di un'etichetta e di alcune caratteristiche osservate, $ 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) $$

Qui, $ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right) $ è la probabilità a posteriori della classe.

$ P \ left (\ begin {array} {c} Y \ end {array} \ right) $ è la probabilità a priori della classe.

$ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ è la probabilità che è la probabilità del predittore data la classe.

$ P \ left (\ begin {array} {c} features \ end {array} \ right) $ è la probabilità a priori del predittore.

Lo Scikit-learn fornisce diversi modelli di classificatori Bayes ingenui, vale a dire Gaussiano, Multinomiale, Complemento e Bernoulli. Tutti differiscono principalmente per l'assunzione che fanno riguardo alla distribuzione di $ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ cioè la probabilità del predittore data la classe.

Suor n Descrizione del Modello
1 Gaussian Naïve Bayes

Il classificatore gaussiano Naïve Bayes presume che i dati di ciascuna etichetta siano tratti da una semplice distribuzione gaussiana.

2 Naïve Bayes multinomiale

Si assume che le caratteristiche siano tratte da una semplice distribuzione multinomiale.

3 Bernoulli Naïve Bayes

Il presupposto in questo modello è che le caratteristiche binarie (0 e 1) in natura. Un'applicazione della classificazione Bernoulli Naïve Bayes è la classificazione del testo con il modello "borsa di parole"

4 Complemento Naïve Bayes

È stato progettato per correggere le gravi ipotesi formulate dal classificatore multinomiale Bayes. Questo tipo di classificatore NB è adatto per set di dati sbilanciati

Building Naïve Bayes Classifier

Possiamo anche applicare il classificatore Naïve Bayes al set di dati Scikit-learn. Nell'esempio seguente, applichiamo GaussianNB e adattiamo il dataset breast_cancer di Scikit-leran.

Esempio

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)

Produzione

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

L'output di cui sopra consiste in una serie di 0 e 1 che sono fondamentalmente i valori previsti dalle classi tumorali, vale a dire maligne e benigne.