Scikit Learn - Classification avec Naïve Bayes

Les méthodes naïves de Bayes sont un ensemble d'algorithmes d'apprentissage supervisé basés sur l'application du théorème de Bayes avec une forte hypothèse que tous les prédicteurs sont indépendants les uns des autres, c'est-à-dire que la présence d'une entité dans une classe est indépendante de la présence de toute autre caractéristique dans la même classe. Il s'agit d'une hypothèse naïve, c'est pourquoi ces méthodes sont appelées méthodes Naïves Bayes.

Le théorème de Bayes énonce la relation suivante afin de trouver la probabilité postérieure de classe, c'est-à-dire la probabilité d'une étiquette et de certaines caractéristiques observées, $ 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) $$

Ici, $ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right) $ est la probabilité postérieure de classe.

$ P \ left (\ begin {array} {c} Y \ end {array} \ right) $ est la probabilité antérieure de la classe.

$ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ est la vraisemblance qui est la probabilité du prédicteur de la classe donnée.

$ P \ left (\ begin {array} {c} features \ end {array} \ right) $ est la probabilité antérieure du prédicteur.

Le Scikit-learn fournit différents modèles de classificateurs Bayes naïfs, à savoir Gaussien, Multinomial, Complément et Bernoulli. Tous diffèrent principalement par l'hypothèse qu'ils font concernant la distribution de $ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ c'est-à-dire la probabilité du prédicteur de classe donnée.

Sr. Non Description du modèle
1 Bayes naïves gaussiennes

Le classificateur Gaussian Naïve Bayes suppose que les données de chaque étiquette sont tirées d'une simple distribution gaussienne.

2 Bayes naïves multinomiales

Il suppose que les entités sont tirées d'une simple distribution multinomiale.

3 Bernoulli Naïve Bayes

L'hypothèse dans ce modèle est que les caractéristiques binaires (0 et 1) sont de nature. Une application de la classification Bernoulli Naïve Bayes est la classification de texte avec le modèle `` sac de mots ''

4 Complément Naïve Bayes

Il a été conçu pour corriger les hypothèses sévères formulées par le classificateur Multinomial Bayes. Ce type de classificateur NB convient aux ensembles de données déséquilibrés

Construire un classificateur Naïve Bayes

Nous pouvons également appliquer le classificateur Naïve Bayes sur l'ensemble de données Scikit-learn. Dans l'exemple ci-dessous, nous appliquons GaussianNB et ajustons le jeu de données breast_cancer de Scikit-leran.

Exemple

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)

Production

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

La sortie ci-dessus se compose d'une série de 0 et de 1 qui sont essentiellement les valeurs prédites des classes de tumeurs à savoir malignes et bénignes.