Les_Arbres_de_Décisions_-_Présentation

11
Vincent GUIJARRO Page 1/11 13/06/2006 Les Arbres de Décisions L'algorithme ID3 Cette présentation des arbres de décisions et de l'algorithme ID3 s'inspire des notes de cours de François DENIS et Rémi GILLERON de l'université de Lille3 (il en reprend même parfois textuellement certaines parties) mais également d' un corrigé de TD de F. KORICHE du LIRMM de Montpellier. Qu'ils en soient ici remerciés… Vincent GUIJARRO 1. Introduction : Apprendre à partir d'exemples. 2. Les arbres de décisions. 2.1 Exemple introductif. 2.2 Algorithme d'apprentissage générique. 2.3 Un premier algorithme : ID3. (Quinlan 79 et 86 [Qui79-86]) 2.4 Un deuxième algorithme : C4.5. (Quinlan 93 [Qui93]) 3. Références.

Transcript of Les_Arbres_de_Décisions_-_Présentation

Page 1: Les_Arbres_de_Décisions_-_Présentation

Vincent GUIJARRO Page 1/11 13/06/2006

Les Arbres de Décisions

L'algorithme ID3

Cette présentation des arbres de décisions et de l'algorithme ID3 s'inspire des notes de cours de François DENIS et Rémi GILLERON de l'université de Lille3 (il en reprend même parfois textuellement certaines parties) mais également d' un corrigé de TD de F. KORICHE du

LIRMM de Montpellier. Qu'ils en soient ici remerciés…

Vincent GUIJARRO

1. Introduction : Apprendre à partir d'exemples.

2. Les arbres de décisions. 2.1 Exemple introductif. 2.2 Algorithme d'apprentissage générique. 2.3 Un premier algorithme : ID3. (Quinlan 79 et 86 [Qui79-86]) 2.4 Un deuxième algorithme : C4.5. (Quinlan 93 [Qui93])

3. Références.

Page 2: Les_Arbres_de_Décisions_-_Présentation

Vincent GUIJARRO Page 2/11 13/06/2006

1. INTRODUCTION : APPRENDRE A PARTIR D'EXEMPLE. Les arbres de décisions sont une des nombreuses méthodes de classification. Les méthodes de classification ont pour but d'identifier les classes auxquelles appartiennent des objets à partir de certains traits descriptifs. Elles trouvent leur utilité dans un grand nombre d'activités humaines et en particulier dans la prise de décision automatisée. Citons par exemple :

• L'aide au diagnostic médical : à partir de la liste des symptômes d'un malade (sa description) la procédure de classification indique sa maladie probable (sa classe).

• Accord d'un prêt bancaire : à partir de la situation d'un client (sa description) la procédure de classification donne la réponse à la demande de prêt : oui / non (sa classe).

• Détection automatique des spams dans les logiciels de messagerie… • Etablir un mailing pour augmenter les taux de retours…

Ces quelques exemples font déjà apparaître trois objets essentiels :

1. La population : les malades ou les clients. 2. Les descriptions : les symptômes ou les revenus, âge, statut marital d'un client. 3. Les classes : les maladies ou les réponses à la demande de prêt (oui / non).

Pour finir de fixer le vocabulaire notons également que la donnée d'une description avec la classe correspondante est un exemple. On suppose qu'il existe un classement correct : à tout élément de la population correspond une classe. Apprendre à établir un diagnostic médical c'est associer une maladie à une liste de symptômes, c'est-à-dire associer à une description une classe à l'aide d'une procédure de classement. Plus formellement : Soit Π la population, D l'ensemble des descriptions et {1,..,c} l'ensemble des classes.

• X : Π D est la fonction qui associe une description à tout élément de la population. • Y : Π {1,..,c} est la fonction de classement qui associe une classe à tout élément de la population. • C : D {1,..,c} est la procédure de classement.

Apprendre, c'est trouver une fonction C. Apprendre c'est rechercher une procédure de classification C telle que CoX = Y, ou du moins telle que CoX soit une bonne approximation de Y. Cette procédure doit pouvoir classer avec un certain taux d'erreur les exemples de l'échantillon sur lesquelles elle a été élaborée; mais elle doit également avoir un bon pouvoir prédictif pour pouvoir classer de nouveaux éléments (nouveaux au sens de non présent dans l'échantillon). (Cf. notion d'erreur apparente / erreur réelle) Enfin, encore deux mots de vocabulaire pour clore cette rapide introduction. Ici, on considère le problème de la classification supervisée : l'ensemble des classes est défini et les exemples fournis au système sont déjà classés. Par ailleurs, on distingue les méthodes de classification symbolique (la procédure de classification peut être écrite sous forme de règles) et les méthodes non symboliques ou adaptatives. Parmi les méthodes symboliques les plus utilisées sont celles basées sur les arbres de décisions. Pour les méthodes adaptatives on distingue deux grandes classes : les réseaux de neurones et les algorithmes génétiques.

Page 3: Les_Arbres_de_Décisions_-_Présentation

Vincent GUIJARRO Page 3/11 13/06/2006

2. LES ARBRES DE DÉCISIONS. Parfois il est essentiel (et souvent pratique) de produire des procédures de classification compréhensibles par l'utilisateur. Dans l'exemple du diagnostic médical, le médecin doit pouvoir comprendre et interpréter les raisons du diagnostic. Les arbres de décisions répondent à cette contrainte car ils représentent graphiquement un ensemble de règles facilement interprétables. Bien sûr, souvent la taille de l'arbre (plusieurs centaines de nœuds) empêche de saisir la procédure de classification dans son ensemble mais en partant de la description d'un élément, sa classification est toujours compréhensible. De plus les algorithmes d'apprentissage basés sur les arbres de décisions sont efficaces et disponibles dans la plupart des environnements de fouille de données (datamining). 2.1. EXEMPLE INTRODUCTIF. Pour introduire et exécuter "à la main" l'algorithme ID3 nous allons tout d'abord considérer l'exemple qui suit : une banque possède les informations suivantes sur ses clients et souhaite pouvoir prédire à l'avenir si un client donné effectue des consultations de compte sur Internet.

Client Moyenne des montants Age Lieu de

Résidence Etudes

supérieures Consultation par Internet

1 moyen moyen village oui oui 2 élevé moyen bourg non non 3 faible âgé bourg non non 4 faible moyen bourg oui oui 5 moyen jeune ville oui oui 6 élevé âgé ville oui non 7 moyen âgé ville oui non 8 faible moyen village non non

Ici, on voit bien que la procédure de classification à trouver qui à partir de la description d'un client, nous indique si le client effectue la consultation de ses comptes par Internet, c'est-à-dire la classe associée au client. Par exemple : - le premier client est décrit par (M : moyen, Age : moyen, Résidence : village, Etudes : oui) et a pour classe Oui. - le deuxième client est décrit par (M : élevé, Age : moyen, Résidence : bourg, Etudes : non) et a pour classe Non. Pour cela, nous allons construire un arbre de décision qui classifie les clients. Les arbres sont construits de façon de descendante. Lorsqu'un test est choisi, on divise l'ensemble d'apprentissage pour chacune des branches et on réapplique récursivement l'algorithme.

• Sur notre exemple on initialise avec l'arbre vide. L'échantillon contient 8 éléments dont 3 ont pour classe oui et 5 ont pour classe non. Pour l'instant la racine de l'arbre n'est associée à aucun test, l'échantillon peut être caractérisé par le couple (3,5).

• On se pose la question de savoir si ce nœud est terminal : est-il nécessaire de rechercher un test qui discrimine de façon intéressante l'échantillon ? Par exemple, si nous avions le couple (0,8) c'est-à-dire qu'aucun client n'utilise Internet, on attribuerait une feuille contenant non au nœud courant et on recommencerait avec un nœud pas encore visité. Ici, ce n'est pas le cas. Nous devons choisir un test parmi les 4 possibles:

(3,5) M (1,2) (2,1) (0,2) (3,5) A (1,0) (2,2) (0,3) (3,5) R (1,1) (1,2) (1,2) (3,5) E (3,2) (0,3)

Page 4: Les_Arbres_de_Décisions_-_Présentation

Vincent GUIJARRO Page 4/11 13/06/2006

Laquelle de ces 4 possibilités faut-il choisir ? Lequel de ces 4 tests est le plus discriminant ? On comprend intuitivement que le test R ne nous fera rien gagner, les 3 couples correspondant aux trois branches du nœud ont des valeurs presqu'identiques. Par contre pour le test A on voit que sur la première branche tous les éléments sont de classe oui et sur la troisième branche tous les éléments sont de classe non, ce test est "intéressant". Automatisons ce raisonnement intuitif. Il nous faut des quantités qui nous permettent de comparer les différents choix possibles. Pour cela on définit des fonctions qui permettent de mesurer le degré de mélange des exemples entre les différentes classes. Ces fonctions doivent avoir la propriété suivante : elles prennent leur minimum lorsque tous les exemples sont dans une même classe (le nœud est pur) et prennent leur maximum lorsque les exemples sont équirépartis. Par exemple si on dispose de 8 éléments et 2 classes la fonction prend son minimum pour les couples (0,8) et (8,0) et elle prend son maximum pour le couple (4,4). Parmi les fonctions vérifiant cette propriété en voilà deux : soit S un échantillon, soit p une position (explication orale) :

Entropie(p) = -Σk=1c P(k/p) × log(P(k/p))

Gini(p) = 1 - Σk=1c P(k/p)2

= 2 Σk < k' P(k/p)P(k'/p)

Pour notre exemple si on considère, par exemple, l'arbre construit à partir de l'attribut E : • Entropie(ε)= -3/8 log 3/8-5/8 log 5/8~ 0,954 • Entropie(1)= -3/5 log 3/5-2/5 log 2/5 ~ 0.970 • Entropie(2)= -0/3 log 0/3-3/3 log 3/3=0

Ce qui correspond à l'arbre : Nous avons des fonctions qui nous permettent de mesurer le degré de mélange des classes pour tout échantillon et donc pour toute position de l'arbre en construction. Il reste à définir une fonction permettant de choisir le test qui doit étiqueter le nœud courant. Rappelons que dans notre exemple il nous faut choisir antre les quatre tests correspondants aux quatre attributs disponibles (M, A, R, E). Dans ce but, on introduit une fonction gain par :

Gain(p,t) = i(p)-

n

∑j=1

Pj × i(pj)

où p désigne une position, t un test d'arité n et Pj est la proportion d'éléments de S à la position p qui vont en position pj (qui satisfont la jème branche du test t). Si on considère comme fonction i la fonction entropie, le terme i(p) représente l'entropie actuelle du nœud p, le deuxième terme de la différence représente l'entropie espérée en introduisant le test t qui est égale à la somme pondérée des entropies des nouveaux nœuds créés. On souhaite obtenir des entropies les plus faibles possibles car, d'après les propriétés de la fonction entropie, si l'entropie est faible, la plupart des éléments se trouvent dans une même classe. On cherche donc à obtenir le gain maximum.

Etudes supérieures (ε)

oui non

Nouveau nœud ? (1)

Nouveau nœud ? (2)

Entropie(2) = 0 Entropie(ε) ~ 0,970

Entropie(ε) ~ 0,954

Page 5: Les_Arbres_de_Décisions_-_Présentation

Vincent GUIJARRO Page 5/11 13/06/2006

Sur notre exemple, nous obtenons : • Gain(ε,M)=Entropie(ε)-(3/8 Entropie(1) + 3/8 Entropie(2) + 2/8 Entropie(3)) = Entropie(ε) - 0,620 • Gain(ε,A)=Entropie(ε)-(1/8 Entropie(1) + 4/8 Entropie(2) + 3/8 Entropie(3))= Entropie(ε) - 0,500 • Gain(ε,R)=Entropie(ε)-(2/8 Entropie(1) + 3/8 Entropie(2) + 3/8 Entropie(3)) = Entropie(ε) - 0,870 • Gain(ε,E)=Entropie(ε)-(5/8 Entropie(1) + 3/8 Entropie(2))= Entropie(ε) - 0,607

Le gain maximal ou encore l'entropie espérée minimale est obtenue pour le choix du test A. On remarque que le choix du test R est très mauvais, ce qui correspond bien à l'intuition. Et finalement pour la racine de l'arbre on sélectionne le test A soit : Dans ce paragraphe, nous avons introduit la problématique et quelques éléments fondamentaux utilisés par les algorithmes d'apprentissage par arbre de décision. Nous allons, dans le paragraphe suivant, présenter le schéma général des algorithmes, puis présenter un algorithme particulier ID3.

2.2. L'ALGORITHME D'APPRENTISSAGE GÉNÉRIQUE. Idée centrale : Diviser récursivement et le plus efficacement possible les exemples de l'ensemble d'apprentissage par des tests définis à l'aide des attributs jusqu'à ce que l'on obtienne des sous-ensembles d'exemples ne contenant (presque) que des exemples appartenant tous à une même classe. Dans toutes les méthodes, on trouve les trois opérateurs suivants :

1. Décider si un nœud est terminal, c'est-à-dire décider si un nœud doit être étiqueté comme une feuille. Par exemple : tous les exemples sont dans la même classe, il y a moins d'un certain nombre d'erreurs, ...

2. Sélectionner un test à associer à un nœud. Par exemple : aléatoirement, utiliser des critères statistiques, ...

3. Affecter une classe à une feuille. On attribue la classe majoritaire sauf dans le cas où l'on utilise des fonctions coût ou risque.

Les méthodes vont différer par les choix effectués pour ces différents opérateurs, c'est-à-dire sur le choix d'un test (par exemple, utilisation du gain et de la fonction entropie) et le critère d'arrêt (quand arrêter la croissance de l'arbre, soit quand décider si un nœud est terminal).

Etudes supérieures (ε)

oui non

Nouveau nœud ? (1)

Nouveau nœud ? (2)

Entropie(2) = 0 Entropie(ε) ~ 0,970

Entropie(ε) ~ 0,954

Page 6: Les_Arbres_de_Décisions_-_Présentation

Vincent GUIJARRO Page 6/11 13/06/2006

Le schéma général des algorithmes est le suivant : Remarque : Avec un tel algorithme, on peut calculer un arbre de décision dont l'erreur apparente est faible, voire nulle. Un arbre de décision parfait est un arbre de décision tel que tous les exemples de l'ensemble d'apprentissage soient correctement classifiés. Un tel arbre n'existe pas toujours (s'il existe deux exemples tels que à deux descriptions identiques correspondent deux classes différentes). L'objectif est de construire un arbre d'erreur de classification la plus petite possible. Mais malheureusement :

• l'erreur apparente est une vision très optimiste de l'erreur réelle, • trouver un arbre de décision d'erreur apparente minimale est, en général, un problème NP-complet.

L'algorithme présenté précédemment recherche un "bon" arbre d'erreur apparente faible. En effet, l'algorithme procède de façon descendante sans jamais remettre en question les choix effectués et on ne peut jamais exclure qu'un autre choix de test conduise en fait à un meilleur arbre. L'arbre construit est d'erreur apparente faible car les feuilles sont étiquetées de telle manière qu'il y ait peu d'erreurs. Mais il se peut que l'erreur réelle soit importante, c'est-à-dire que l'arbre construit soit bien adapté à l'échantillon mais ait un pouvoir de prédiction faible. Par des calculs non présentés ici, on constate que l'erreur apparente diminue constamment lors de la construction de l'arbre mais que l'erreur réelle diminue, se stabilise, puis augmente.

Erreur réelle et erreur apparente pour des données réelles de reconnaissance de caractères ([BFOS84])

Algorithme d'apprentissage générique entrées : langage de description; échantillon S début

initialiser à l'arbre vide; // la racine est le nœud courant répéter

décider si le nœud courant est terminal; si le nœud est terminal alors affecter une classe; sinon sélectionner un test et créer le sous-arbre; passer au nœud suivant non exploré s'il existe;

jusqu'à obtenir un arbre de décision; fin

Page 7: Les_Arbres_de_Décisions_-_Présentation

Vincent GUIJARRO Page 7/11 13/06/2006

L'idéal serait de trouver un critère qui permette d'arrêter la croissance de l'arbre au bon moment. Malheureusement, dans l'état actuel des recherches, un tel critère n'a pu être trouvé. De plus, le risque d'arrêter trop tôt la croissance de l'arbre est plus important que de l'arrêter trop tard. Par conséquent, les méthodes utilisées procèdent souvent en deux phases. La première phase correspond à l'algorithme présenté dans ce paragraphe ; dans une seconde phase, on élague l'arbre obtenu pour essayer de faire diminuer l'erreur réelle (élaguer un arbre consiste à en supprimer certains sous-arbres). Les méthodes se distinguent donc les unes des autres par les choix des opérateurs, mais aussi par les méthodes d'élagage utilisées.

2.3. UN PREMIER ALGORITHME : ID3. (Quinlan 79 et 86 [Qui79-86]) et (Koriche 2005 [Kor05])

Choix du meilleur attribut : Pour cet algorithme deux mesures existent pour choisir le meilleur attribut : la mesure d'entropie et la mesure de fréquence:

• L'entropie : et le gain comme définis au paragraphe 2.1. Le gain (avec pour fonction i l'entropie) est également appelé l'entropie de Shannon et peut se réécrire de la manière suivante :

Hs(C|A) = - ∑i P(Xi) . ∑k P(Ck|Xi).log(P(Ck|Xi)) • Mesure de fréquence : (mieux en pratique)

Freq(a,E) = (1 / |Va|) . ∑Pmax(Ea,v)

Pour l’exemple du paragraphe 2.1correspondant à la consultation de comptes sur Internet : Pour déterminer le premier attribut test (racine de l'arbre), on recherche l'attribut d'entropie la plus faible. On doit donc calculer H(C|Solde), H(C|Age), H(C|Lieu), H(C|Etudes), où la classe C correspond aux personnes qui consultent leurs comptes sur Internet.

ID3 entrées : ensemble d'attributs A; échantillon E; classe c début

initialiser à l'arbre vide; si tous les exemples de E ont la même classe c alors étiqueter la racine par c; sinon si l'ensemble des attributs A est vide alors étiqueter la racine par la classe majoritaire dans E; sinon soit a le meilleur attribut choisi dans A; étiqueter la racine par a; pour toute valeur v de a construire une branche étiquetée par v; soit Eav l'ensemble des exemples tels que e(a) = v; ajouter l'arbre construit par ID3(A-{a}, Eav, c); finpour finsinon finsinon retourner racine;

fin

Page 8: Les_Arbres_de_Décisions_-_Présentation

Vincent GUIJARRO Page 8/11 13/06/2006

H(C|Solde) = -P (faible).(P (C|faible) log(P (C|faible)) + P (/C |faible) log(P (/C|faible)))

-P (moyen).(P (C|moyen) log(P (C|moyen)) + P (/C|moyen) log(P (/C|moyen))) -P (eleve).(P (C|eleve) log(P (C|eleve)) + P (/C|eleve) log(P (/C|eleve)))H(C|Solde)

H(C|Solde) = -3/8(1/3.log(1/3) + 2/3.log(2/3) -3/8(2/3.log(2/3) + 1/3.log(1/3) -2/8(0.log(0) + 1.log(1)

H(C|Solde) = 0.20725 H(C|Age) = -P (jeune).(P (C|jeune) log(P (C|jeune)) + P (/C |jeune) log(P (/C|jeune)))

-P (moyen).(P (C|moyen) log(P (C|moyen)) + P (/C |moyen) log(P (/C|moyen))) -P (age).(P (C|age) log(P (C|age)) + P (/C|age) log(P (/C|age)))

H(C|Age) = 0.15051 H(C|Lieu) = -P (bourg).(P (C|bourg) log(P (C|bourg)) + P (/C |bourg) log(P (/C|bourg)))-

P (village).(P (C|village) log(P (C|village)) + P (/C |village) log(P (/C|village)))- P (ville).(P (C|ville) log(P (C|ville)) + P (/C|ville) log(P (/C|ville)))

H(C|Lieu) = 0.2825 H(C|Etudes) = -P (oui).(P (C|oui) log(P (C|oui)) + P (/C |oui) log(P (/C|oui)))

-P (non).(P (C|non) log(P (C|non)) + P (/C|non) log(P (/C|non))) H(C|Etudes) = 0.18275 Le premier attribut est donc l'âge (attribut dont l'entropie est minimale). On obtient l'arbre suivant : Pour la branche correspondant à un âge moyen, on ne peut pas conclure, on doit donc recalculer l'entropie sur la partition correspondante. H(C|Solde) = -P (faible).(P (C|faible) log(P (C|faible)) + P (/C |faible) log(P (/C|faible)))

-P (moyen).(P (C|moyen) log(P (C|moyen)) + P (/C|moyen) log(P (/C|moyen))) -P (eleve).(P (C|eleve) log(P (C|eleve)) + P (/C|eleve) log(P (/C|eleve)))

H(C|Solde) = -2/4(1/2.log(1/2) + 1/2.log(1/2) -1/4(1.log(1) + 0.log(0) -1/4(0.log(0) + 1.log(1)

H(C|Solde) = 0.15051 H(C|Lieu) = -P (bourg).(P (C|bourg) log(P (C|bourg)) + P (C |bourg) log(P (C|bourg)))

-P (village).(P (C|village) log(P (C|village)) + P (C |village) log(P (C|village))) -P (ville).(P (C|ville) log(P (C|ville)) + P (C|ville) log(P (C|ville)))

H(C|Lieu) = 0.30103 H(C|Etudes) = -P (oui).(P (C|oui) log(P (C|oui)) + P (C |oui) log(P (C|oui)))

-P (non).(P (C|non) log(P (C|non)) + P (C|non) log(P (C|non))) H(C|Etudes) = 0

Age

Consultation /Consultation ?

jeune moyen âgé

Page 9: Les_Arbres_de_Décisions_-_Présentation

Vincent GUIJARRO Page 9/11 13/06/2006

L'attribut qui a l'entropie la plus faible est « Etudes ». L'arbre devient alors : L'ensemble des exemples est classé et on constate que sur cet ensemble d'apprentissage, seuls deux attributs sur les quatre sont discriminants.

2.4. UN DEUXIÈME ALGORITHME : C4.5. (Quinlan 93 [Qui93])

2.4.1. Algorithme de base On suppose toujours que le langage de représentation est constitué d'un certain nombre d'attributs. Ces attributs peuvent être binaires, qualitatifs (à valeurs dans un ensemble fini de modalités) ou continus (à valeurs réelles). Pour les attributs continus, on utilise des heuristiques qui permettent de les discrétiser. On utilise pour cela des critères statistiques qui permettent d'atteindre les deux objectifs suivants : un nombre de classes pas trop important et une bonne répartition entre les différentes classes. On peut par exemple utiliser la fonction entropie pour atteindre ces objectifs. Nous supposons maintenant que les attributs ont été discrétisés.

Nous supposons prédéfini un ensemble de tests n-aires. Pour définir l'algorithme, nous allons définir les trois opérateurs utilisés par l'algorithme C4.5 pour calculer un bon arbre de décision (phase d'expansion), puis nous verrons la phase d'élagage. On dispose en entrée d'un ensemble d'apprentissage A. On utilise la fonction entropie définie par l'équation du chapitre 2.1.

• Décider si un nœud est terminal. Un nœud p est terminal si tous les éléments associés à ce nœud sont dans une même classe ou si aucun test n'a pu être sélectionné (voir ci-après).

• Sélectionner un test à associer à un nœud. À chaque étape, dans l'ensemble des tests disponibles, ne peuvent être envisagés que les tests pour lesquels il existe au moins deux branches ayant au moins deux éléments (cette valeur par défaut peut être modifiée). Si aucun test ne satisfait cette condition alors le nœud est terminal. Soit p une position, on choisit alors le test test qui maximise le gain en utilisant la fonction entropie pour mesurer le degré de mélange. La fonction Gain, ainsi définie, privilégie les attributs ayant un grand nombre de valeurs. Elle est donc pondérée par une fonction qui pénalise les tests qui répartissent les éléments en un trop grand nombre de sous-classes. Cette mesure de la répartition est nommée SplitInfo et est définie par :

SplitInfo(p,test) = -n

∑j=1

P'(j/p) × log(P'(j/p))

Age

Consultation /Consultation Etudes

jeune moyen âgé

Consultation /Consultation

oui non

Page 10: Les_Arbres_de_Décisions_-_Présentation

Vincent GUIJARRO Page 10/11 13/06/2006

dans laquelle n est l'arité de test et P'(j/p) est la proportion des éléments présents à la position p prenant la jème valeur de test. Il faut remarquer que, contrairement à l'entropie, la définition précédente est indépendante de la répartition des exemples à l'intérieur des différentes classes. La valeur de Splitinfo ne dépend que de la répartition entre les différentes valeurs possibles pour le test. Cette fonction a des valeurs grandes lorsque le test a un grand nombre de valeurs possibles avec peu d'éléments pour chacune des valeurs. En effet, considérons le cas extrême d'un attribut n-aire avec un exemple par classe, la fonction vaut alors log n. À l'inverse, considérons le cas d'un attribut binaire pour lequel les exemples sont répartis uniformément entre ces deux valeurs, la fonction vaut alors 1. La nouvelle fonction de gain, appelée ratio de gain et notée GainRatio, est alors définie par :

GainRatio(p,T) = Gain(p,T) SplitInfo(p,T)

En position p (non maximale), on choisit le test qui maximise le GainRatio (option par défaut de C4.5). On peut modifier les options pour utiliser le Gain.

• Affecter une classe à une feuille. On attribue la classe majoritaire. Si il n'y a aucun exemple on attribue la classe majoritaire du nœud père.

2.4.2. Phase d'élagage de C4.5. C4.5 utilise l'ensemble d'apprentissage pour élaguer l'arbre obtenu. Le critère d'élagage est basé sur une heuristique permettant d'estimer l'erreur réelle sur un sous-arbre donné. Bien qu'il semble peu pertinent d'estimer l'erreur réelle sur l'ensemble d'apprentissage, il semble que la méthode donne des résultats corrects. Citons Quinlan : Although this method does have the subtle flaw of "indirecly training on test cases" it performs quite well on large samples with at least 1000 test cases. With fewer cases, the risks of training on the test cases is greater. Une autre heuristique est proposée par C4.5. On construit le système à base de règles associé à l'arbre de décision produit en sortie de la phase d'expansion. On choisit ensuite une méthode permettant de coder à la fois les règles et les exceptions (exemples mal classifiés par les règles). Lorsqu'on supprime une règle, on risque de voir augmenter le nombre d'exceptions. Mais il se peut aussi que la taille du codage diminue globalement. Dans ce cas, on choisit la règle dont la suppression produit la plus forte diminution. On applique ce procédé de façon itérative tant que la taille des codages diminue. Cette méthode est une application du principe MDL (Minimum Description Length) qui consiste à choisir parmi plusieurs théories celle dont le codage (théorie plus exceptions) est minimal. 2.4.3. Améliorations. Attributs discrets

Pour les attributs discrets possédant un grand nombre de valeurs, nous avons vu que la fonction GainRatio permettait d'éviter de privilégier ces attributs. Il existe, de plus, une option de C4.5 qui permet le regroupement des valeurs. Par exemple, si on dispose d'un attribut A prenant les valeurs a, b, c et d, en standard le test considéré serait 4-aire. Si on active l'option regroupement, seront également considéré des tests de la forme : le test binaire A∈{a,b} et A∈{c,d}; le test ternaire A=a, A=c et A∈{b,d}; ...

Attributs continus Pour les attributs continus, la discrétisation peut être laissée à un expert du domaine d'application. Par exemple, en médecine, l'expérience du domaine peut avoir permis la mise en évidence l'existence de valeurs seuil pour un attribut correspond à une mesure médicale. Sinon, l'algorithme gère les attributs continus de la façon suivante : les exemples sont triés dans l'ordre croissant pour l'attribut continu A considéré, on considère alors tous les tests de la forme A>ai + ai+1/2 où ai et ai+1 sont deux valeurs consécutives de l'attribut A. Par exemple, supposons que A prenne les valeurs 1, 3, 6, 10, 12, alors on considère les tests A>1,5 ; A>4,5 ; A>8 et A>11, ces tests participent alors à la compétition dans la recherche du test apportant le meilleur gain (fonction Gain ou GainRatio, selon l'option choisie).

Attributs à valeurs manquantes Dans de nombreux problèmes concrets, il existe certains attributs dont les valeurs ne sont pas renseignées. Par exemple, si on dispose du descriptif de patients, il est très probable que toutes les mesures ne soient pas disponibles car elles n'ont pas pu être faites pour tous les patients. Pour classifier

Page 11: Les_Arbres_de_Décisions_-_Présentation

Vincent GUIJARRO Page 11/11 13/06/2006

un exemple possédant des valeurs manquantes à l'aide d'arbres de décision, on procède comme dans le cas standard, lorsque l'on rencontre un test et que la valeur de l'attribut est manquante, on considère la branche majoritaire. Pour la phase d'apprentissage, on suppose que la valeur de cet attribut suit la distribution des valeurs connues.

3. RÉFÉRENCES. [BFOS84] L. Breiman, J. H. Friedman, R. A. Olshen, and C. J. Stone. Classification and regression trees. Technical report, Wadsworth International, Monterey, CA, 1984. [Den-Gil] Notes de cours de François DENIS et Rémi GILLERON de l'université de Lille3. [Kor05] Frédéric Koriche (enseignant au LIRMM de Montpellier) : http://www.lirmm.fr/~chapelle/IA2005/TD%202%20Intelligence%20Artificielle%202005%20-%20corrige.pdf [Qui79-86] Algorithme de base des arbres de décision : ID3.

• Algorithme de base (ID3) : J.R. Quinlan, "Discovering rules by induction from large collections of examples", D. Michie ed., Expert Systems in the Microelectronic age, pp. 168-201, 1979.

• Algorithme amélioré (ID3-IV) - L'article qui fait référence : J.R. Quinlan, "Induction of Decision Trees", Machine Learning, vol. 1, pp. 81-106, 1986.

[Qui93] J. R. Quinlan. C4.5: Programs for Machine Learning. Morgan Kaufmann, San Mateo, CA, 1993.