Classifieur bayésien naïf

Adrien Guille, Université Lyon 2

Partie théorique

Partie pratique

Formulation du modèle

Soit le jeu de données composé de paires , avec la description d'un individu selon descripteurs binaires, sous la forme d'un vecteur binaire de taille , et la classe d'appartenance de cet individu parmi classes possibles :

Le modèle bayésien naïf modélise la probabilité jointe . Par définition, on a :

En faisant l'hypothèse naïve selon laquelle les descripteurs sont indépendants, on peut réécrire comme le produit des probabilités d'observer la valeur (0 ou 1) pour le descripteur sachant , pour tous les descripteurs :

Ainsi, on obtient :

Si on pose et , le modèle bayésien naïf s'écrit comme suit :

et sont des paramètres à estimer.

 

La classe d'une nouvelle observation est déterminée selon la règle décision suivante :

En appliquant le théorème de Bayes, on obtient :

Comme le dénominateur, , ne dépend pas de , sa valeur est constante et maximiser l'expression ci-dessus revient à maximiser :

Cela nous permet donc de formuler la régle de décision selon les paramètres du modèle bayésien naïf :

Estimation des paramètres du modèle

Formulation du problème : maximisation de la vraisemblance

On définit la vraisemblance du jeu de données au sens du modèle bayésien naïf paramétré par et comme le produit des probabilités jointes d'observer les paires individu / classe qui composent :

Le logarithme étant une fonction monotone, plus précisément un fonction croissante, on formule le problème selon la log-vraisemblance, plus simple à manipuler :

Il s'agit donc de déterminer les paramètres et maximisant la log-vraisemblance des données :

Estimation des paramètres du modèle en pratique

On estime simplement les paramètres par maximum de vraisemblance par des comptages.

Cette méthode d'estimation est particulièrement pratique quand (le nombre d'individus) et (la dimension de l'espace de représentation) sont grands.

Néanmoins, en estimant les paramètres de la sorte, on risque de mesurer des valeurs de égales à 0, ce qui est problématique, étant donnée la règle de décision sur laquelle repose le classifieur bayésien naïf :

Une valeur de nulle pour un seul descripteur suffit en effet à annuler toute l'expression, peu importe les probabilités mesurées pour les autres descripteurs. Pour pallier ce problème, on procéde généralement à un lissage, dit lissage de Laplace, avant d'estimer les paramètres, qui consiste simplement à ajouter 1 à toutes les composantes des individus. Ainsi, on a :

Illustration : prédiction de la polarité de commentaires

Avec le Web 2.0, les internautes sont fréquemment invités à donner leur avis, par exemple à commenter des produits ou des films. Parfois, les internautes associent un vote (positif ou négatif dans le cas le plus simple) à un commentaire, mais pas toujours. Pour prédire le vote, i.e. la polarité, correspondant aux commentaires qui en sont dépourvus, on peut entraîner un classifieur bayésien naïf à partir des commentaires pour lesquels on connaît les votes.

On présente ici un exemple élémentaire avec 5 commentaires pour l'entraînement.

IdCommentaireVote
1J'ai adoré le film
2J'ai détesté ce film
3Bon film
4Mauvais scénario
5Bon scénario, bon film

Représentation des commentaires

En admettant que l'ordre d'apparition des mots dans un commentaire est sans importance, on peut le représenter sous la forme d'un sac de mots. En admettant également que le nombre d'occurrences de chaque mot dans un commentaire est sans importance, on peut représenter un message par un vecteur , avec un indicateur binaire de la présence du j-ème mot du vocabulaire dans le commentaire.

On peut donc utiliser un classifieur bayésien naïf multinomial booléen pour apprendre à distinguer les commentaires positifs des commentaires négatifs, à partir d'un jeu de données . Pour déterminer un vocabulaire pertinent et de taille raisonnable pour décrire les messages, on procède comme suit :

On construit donc le jeu de données suivant :

Estimation des paramètres du modèle bayésien naïf

On mesure les paramètres :

On mesure les paramètres avec un lissage Laplacien :

Prédiction de la polarité d'un nouveau commentaire

J'ai détesté le mauvais scénario

On représente ce commentaire par le vecteur et on calcule :

Ce qui conduit à prédire ce commentaire comme négatif.

Bon film malgré le mauvais scénario

On représente ce commentaire par le vecteur et on calcule :

Ce qui conduit à prédire ce commentaire comme positif.

Mauvais scénario = mauvais film

On représente ce commentaire par le vecteur et on calcule :

Ce qui conduit à prédire ce commentaire comme négatif.