Algorithmes de classification - Bayes naïves

Introduction à l'algorithme naïf de Bayes

Les algorithmes naïfs de Bayes sont une technique de classification basée 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. En termes simples, l'hypothèse est que la présence d'une caractéristique dans une classe est indépendante de la présence de toute autre caractéristique de la même classe. Par exemple, un téléphone peut être considéré comme intelligent s'il dispose d'un écran tactile, d'une connexion Internet, d'un bon appareil photo, etc. Bien que toutes ces fonctionnalités dépendent les unes des autres, elles contribuent indépendamment à la probabilité que le téléphone soit un téléphone intelligent.

Dans la classification bayésienne, l'intérêt principal est de trouver les probabilités postérieures c'est-à-dire la probabilité d'un label compte tenu de certaines caractéristiques observées, (|). Avec l'aide du théorème de Bayes, nous pouvons l'exprimer sous forme quantitative comme suit -

$$ P (L | caractéristiques) = \ frac {P (L) P (caractéristiques | L)} {()} $$

Ici, (|) est la probabilité postérieure de classe.

() est la probabilité a priori de classe.

(|) est la vraisemblance qui est la probabilité du prédicteur de la classe donnée.

() est la probabilité a priori du prédicteur.

Modèle de construction utilisant Naïve Bayes en Python

Bibliothèque Python, Scikit learn est la bibliothèque la plus utile qui nous aide à construire un modèle Naïve Bayes en Python. Nous avons les trois types suivants de modèle Naïve Bayes sous Scikit learn Python library -

Bayes naïves gaussiennes

Il s'agit du classificateur Naïve Bayes le plus simple en supposant que les données de chaque étiquette sont tirées d'une simple distribution gaussienne.

Bayes naïves multinomiales

Un autre classificateur Naïve Bayes utile est le Multinomial Naïve Bayes dans lequel les caractéristiques sont supposées être tirées d'une simple distribution multinomiale. Ce type de bayes naïves est le plus approprié pour les caractéristiques qui représentent des comptages discrets.

Bernoulli Naïve Bayes

Un autre modèle important est Bernoulli Naïve Bayes dans lequel les caractéristiques sont supposées être binaires (0 et 1). La classification de texte avec le modèle «sac de mots» peut être une application de Bernoulli Naïve Bayes.

Exemple

En fonction de notre ensemble de données, nous pouvons choisir n'importe quel modèle Naïve Bayes expliqué ci-dessus. Ici, nous implémentons le modèle Gaussian Naïve Bayes en Python -

Nous commencerons par les importations requises comme suit -

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()

Maintenant, en utilisant la fonction make_blobs () de Scikit learn, nous pouvons générer des blobs de points avec une distribution gaussienne comme suit -

from sklearn.datasets import make_blobs
X, y = make_blobs(300, 2, centers=2, random_state=2, cluster_std=1.5)
plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='summer');

Ensuite, pour utiliser le modèle GaussianNB, nous devons importer et créer son objet comme suit -

from sklearn.naive_bayes import GaussianNB
model_GBN = GaussianNB()
model_GNB.fit(X, y);

Maintenant, nous devons faire des prédictions. Cela peut être fait après avoir généré de nouvelles données comme suit -

rng = np.random.RandomState(0)
Xnew = [-6, -14] + [14, 18] * rng.rand(2000, 2)
ynew = model_GNB.predict(Xnew)

Ensuite, nous traçons de nouvelles données pour trouver ses limites -

plt.scatter(X[:, 0], X[:, 1], c=y, s=50, cmap='summer')
lim = plt.axis()
plt.scatter(Xnew[:, 0], Xnew[:, 1], c=ynew, s=20, cmap='summer', alpha=0.1)
plt.axis(lim);

Maintenant, à l'aide de la ligne de codes suivante, nous pouvons trouver les probabilités postérieures des première et deuxième étiquettes -

yprob = model_GNB.predict_proba(Xnew)
yprob[-10:].round(3)

Production

array([[0.998, 0.002],
   [1.   , 0.   ],
   [0.987, 0.013],
   [1.   , 0.   ],
   [1.   , 0.   ],
   [1.   , 0.   ],
   [1.   , 0.   ],
   [1.   , 0.   ],
   [0.   , 1.   ],
   [0.986, 0.014]]
)

Avantages et inconvénients

Avantages

Voici quelques avantages de l'utilisation des classificateurs Naïve Bayes -

  • La classification Naïve Bayes est facile à mettre en œuvre et rapide.

  • Elle convergera plus vite que les modèles discriminants comme la régression logistique.

  • Cela nécessite moins de données d'entraînement.

  • Il est de nature hautement évolutive ou évolue de manière linéaire avec le nombre de prédicteurs et de points de données.

  • Il peut faire des prédictions probabilistes et peut gérer des données continues et discrètes.

  • L'algorithme de classification naïve de Bayes peut être utilisé pour les problèmes de classification binaires et multi-classes.

Les inconvénients

Voici quelques inconvénients de l'utilisation des classificateurs Naïve Bayes -

  • L'un des inconvénients les plus importants de la classification Naïve Bayes est sa forte indépendance des fonctionnalités, car dans la vraie vie, il est presque impossible d'avoir un ensemble de fonctionnalités complètement indépendantes les unes des autres.

  • Un autre problème avec la classification Naïve Bayes est sa `` fréquence zéro '', ce qui signifie que si une variable catégorielle a une catégorie mais n'est pas observée dans l'ensemble de données d'apprentissage, alors le modèle Naïve Bayes lui attribuera une probabilité nulle et il sera incapable de faire un prédiction.

Applications de la classification Naïve Bayes

Voici quelques applications courantes de la classification Naïve Bayes -

Real-time prediction - En raison de sa facilité de mise en œuvre et de son calcul rapide, il peut être utilisé pour faire des prédictions en temps réel.

Multi-class prediction - L'algorithme de classification Naïve Bayes peut être utilisé pour prédire la probabilité postérieure de plusieurs classes de variable cible.

Text classification- En raison de la fonctionnalité de prédiction multi-classes, les algorithmes de classification Naïve Bayes sont bien adaptés à la classification de texte. C'est pourquoi il est également utilisé pour résoudre des problèmes tels que le filtrage du spam et l'analyse des sentiments.

Recommendation system - En plus des algorithmes comme le filtrage collaboratif, Naïve Bayes fait un système de recommandation qui peut être utilisé pour filtrer les informations invisibles et pour prédire la météo qu'un utilisateur aimerait ou non la ressource donnée.