• Aucun résultat trouvé

Classification supervisée, théorie et pratique

6.4 Apprentissage bayesien

6.4.4 Classifieur naïf de Bayes

Choix des attributs

Dans la section 6.2.2, nous avons posé le problème de représentation des attributs. Le classifieur naïf de Bayes ne différencie pas les attributs. Nous pouvons donc l’utiliser pour notre problème de classification avec les deux représentations des attributs.

Ce classifieur détermine la classe d’une nouvelle instance de la manière suivante (cf. équation de la définition 6.13) : cN B= argmax cj∈C P (cj)Y i P (ai/cj)

Cette formule suppose que les attributs a1,a2, . . . ,an soient conditionnellement indé-pendants. Quel que soit notre choix de représentation des attributs, cette condition est violée car les événements sont forcément plus ou moins dépendants (en fonction du choix du ou des critères). En effet, nous ne pouvons ni prouver que les attributs a1,a2, . . . ,an

sont tous indépendants deux à deux, ni prouver que P (Tn

i=1ai) =Qn

i=1P (ai). Cepen-dant, si nous choisissons la deuxième représentation des attributs, nous obtenons des milliers d’attributs binaires dont seuls quelques-uns peuvent être vrais en même temps. La probabilité de rencontrer tous les attributs dans un exemple est donc forcément nulle, ce qui implique P (Tni=1ai) = 0 alors queQn

i=1P (ai) 6= 0. La condition d’indépendance des attributs est ainsi violée de manière flagrante en utilisant la deuxième représentation des attributs. Contrairement à Mooney (1996), et conformément à Yarowsky (1994a) ou Ng (1997), nous choisissons la première représentation des attributs.

Algorithmes

Soit un exemple E dont nous désirons déterminer la lexie la plus probable lE, parmi un ensemble de lexies L, en nous basant sur la description D de E composée d’un certain nombre d’indices D = {i1. . . in}. Soit A l’ensemble des indices des exemples d’apprentissage. En appliquant la formule de la définition 6.13 nous obtenons :

lE = argmax

lj∈L

P (lj) Y

ikD∩A

P (ik/lj)

L’estimation des probabilités P (lj) et P (ik/lj) se fait sur les exemples d’apprentis-sage.

L’estimation de P (lj) se fait tout simplement en utilisant la formule 6.3 : P (lj) = nj

n

où nj est le nombre d’exemples d’apprentissage dont la lexie du vocable étudié est lj

et où n est le nombre d’exemples d’apprentissage du vocable étudié.

En revanche, pour estimer les probabilités P (ik/lj), nous utilisons une m-estimation en raison des valeurs de ik faibles, et parfois nulles. En utilisant l’équation de la défini-tion 6.14, nous obtenons :

P (ik/lj) =nkj+ m · pkj

nj+ m où

– nkjest le nombre d’exemples d’apprentissage dont la description contient l’indice ik et dont la lexie du vocable étudié est lj;

– nj est le nombre d’exemples d’apprentissage dont la lexie du vocable étudié est lj;

– pkj est une estimation a priori de la probabilité recherchée ; comme nous ne connaissons pas cette probabilité, nous supposons une répartition uniforme des probabilités et nous posons pkj = 1

card(A) où A est l’ensemble des indices des exemples d’apprentissage ;

– m est une constante, appelée « équivalent de la taille de l’échantillon », à déter-miner.

La phase d’apprentissage du classifieur « naïf de Bayes » est décrite par l’algo-rithme 6.4.

La phase d’exploitation du classifieur « naïf de Bayes » est décrite par l’algo-rithme 6.5. Dans cet algol’algo-rithme, nous avons ajouté un paramètre qui permet de définir un seuil de confiance en dessous duquel l’algorithme ne prend pas de décision.

Affinage et performances

Affiner cet algorithme consiste à déterminer la constante m. Nous avons choisi d’es-sayer plusieurs valeurs fixes de m et deux valeurs dépendantes des données m =flexie

et m = card(exemple).

La figure 6.3 montre la performance moyenne pour les 6 vocables obtenue par l’al-gorithme en fonction de différentes valeurs de m. Dans ces expériences pmin= 0, l’al-gorithme classifie donc le maximum d’exemples possible. La valeur de m fixe permet-tant d’obtenir les meilleures performances se situe autour de 80, ce qui donne une performance de 0,396. Les performances obtenues pour la valeur m = card(exemple) dépendante des données sont mauvaises : nous écartons donc cette valeur de m. Les performances obtenues pour la valeur m =flexie dépendante des données sont moins bonnes que pour m = 80, mais sont tout de même assez proches. En effet, la perfor-mance est moins bonne de seulement 0,010, la chute de la précision est de 0,5% et celle du rappel de 0,5% également (pratiquement toutes les occurrences sont classées). Avec d’autres critères ou d’autres vocables, il est probable que la valeur de m fixe permettant d’obtenir les meilleures performances ne soit plus la même. Choisir une valeur de m dépendante des données, plutôt qu’une constante déterminée expérimentalement, nous paraît donc une meilleure solution.

Nous nommons NB(0,00) l’algorithme 6.5 avec m =flexieet pmin= 0. Le tableau 6.3 résume les performances moyennes de l’algorithme NB(0,00) pour chacune des trois catégories grammaticales et pour l’ensemble des 60 vocables.

Si nous ne cherchons pas à maximiser le rappel, il est possible d’améliorer la per-formance, c’est-à-dire la moyenne harmonique du rappel et du gain, en augmentant le seuil de confiance pmin. La figure 6.4 montre l’influence de la valeur du seuil pmin, sur la performance moyenne pour les 6 vocables. En fait, plus le seuil pminest haut, jusqu’à une limite proche de 1, meilleure est la performance. Cependant, être trop proche de 1 se traduit évidemment par une chute brutale du rappel (le rappel devient même nul pour une valeur de pmin = 1) et donc des performances.

Une valeur de pmin = 0,98 nous semble être un bon compromis. Nous nommons NB(0,98) l’algorithme 6.5 avec m = flexie et pmin = 0,98. Le tableau 6.4 résume les performances moyennes de l’algorithme NB(0,98) pour chacune des trois catégories grammaticales et pour l’ensemble des 60 vocables.

Comme nous l’avons dit dans la section 5.2.5, page 107, il est facile de se rame-ner à un algorithme qui effectue une classification sur toutes les instances à classer en affectant à toutes les instances non classées la classe majoritaire. Dans ce cas de

Algorithme 6.4 – Phase d’apprentissage du classifieur naïf de Bayes. Requiert: Un ensemble d’apprentissage S

1: ∀ indice ∀ classe tabindice,classe← 0

2: ∀ classe fclasse← 0

3: Pour tout exemple ∈ S Faire /* Génération du tableau tab d’apprentissage et du vecteur f des fréquences des classes ; un exemple est une instance dans le corpus d’un vo-cable étudié accompagnée de sa description générée par un ou plusieurs critères et de sa classe d’appartenance. m est une constante à fournir à l’algorithme. */

4: fclasse← fclasse+ 1 où classe est la classe de exemple.

5: Pour tout indice ∈ exemple Faire

6: tabindice,classe← tabindice,classe+ 1 où classe est la classe de exemple

7: p ←nombre d’indices1 /* Estimation de la probabilité a priori */ 8: Pour tout classe Faire/* Estimation des probabilités */ 9: P (classe) ← fclasse

card(exemple)

10: Pour tout indice Faire

11: P (indice/classe) ← tabindice,classe+m·p fclasse+m

Algorithme 6.5 – Phase d’exploitation du classifieur naïf de Bayes.

Requiert: description, la liste des indices générés par l’application de un ou plusieurs critères sur le vocable dont il faut déterminer la classe.

Requiert: les estimations P (classe) et P (indice/classe), calculées lors de la phase d’apprentissage.

Requiert: pmin, une constante à fournir à l’algorithme

Requiert: l’ensemble A des indices rencontrés durant la phase d’apprentissage

1: d ← description ∩ A 2: Si max classe P (classe) Y indice∈d P (indice/classe) ! > pmin Alors 3: Retourner argmax classe P (classe) Y indice∈d P (indice/classe) !

Figure 6.3 – Influence du choix de la constante m pour la m-estimation des probabi-lités sur les 6 vocables du sous-corpus. Pour les deux performances obtenues avec une constante m dépendante des données, nous devrions avoir deux points sur le graphique. Cependant, ces points ne peuvent être placés puisque leur position varie pour chaque classification. Nous avons donc choisi de représenter ces performances par deux droites.

Précision Gain Rappel Performance

Noms 74,12% 39,44% 73,94% 0,514

Adjectifs 62,04% 29,12% 61,96% 0,396

Verbes 53,32% 26,77% 53,31% 0,346

Moyenne 59,11% 25,66% 59,07% 0,383

Tableau 6.3 – Performances moyennes de l’algorithme NB(0,00) pour chacune des trois catégories grammaticales et pour l’ensemble des 60 vocables.

Figure 6.4 – Influence de la valeur de pmin sur les 6 vocables du sous-corpus.

Précision Gain Rappel Performance

Noms 83,06% 60,37% 63,38% 0,618

Adjectifs 75,60% 54,43% 47,11% 0,505

Verbes 66,33% 46,38% 39,55% 0,427

Moyenne 72,03% 51,00% 45,80% 0,483

Tableau 6.4 – Performances moyennes de l’algorithme NB(0,98) pour chacune des trois catégories grammaticales et pour l’ensemble des 60 vocables.

figure, où nous tenons à ce que chaque occurrence soit classée, et donc où précision et rappel sont équivalents, il est intéressant de remarquer qu’il vaut mieux utiliser l’algo-rithme NB(0,00), qui obtient une précision moyenne sur les 60 vocables de 59,1%, que l’algorithme NB(0,98) qui obtient lui une précision de seulement 55,6%.

Remarque

Bien que nous ayons opté pour la première représentation des attributs (cf. début de la section), la curiosité nous a poussé à savoir ce qu’il serait advenu si, conformé-ment à Mooney (1996), nous avions choisi la deuxième représentation des attributs. Curieusement, l’algorithme équivalent à NB(0,00), mais utilisé avec la deuxième repré-sentation des attributs, donne des résultats légèrement meilleurs que NB(0,00). Nous avons observé une augmentation du rappel et de la précision de l’ordre de 0,6%. Nous ne retenons cependant pas cet algorithme car, d’une part, il est encore plus difficile à justifier d’un point de vue théorique que NB(0,00) et, d’autre part, il est bien moins performant en terme de temps d’exécution en raison du nombre considérable d’attri-buts à prendre en compte (ce deuxième handicap est important compte tenu du nombre d’expériences que nous menons dans le chapitre 7).