53

Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Embed Size (px)

Citation preview

Page 1: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Algorithmes d'apprentissage

1

Page 2: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Agents qui apprennent à partir d'exemples

� La problématique : prise de décision automatisée à partir d'unensemble d'exemples� Diagnostic médical� Réponse à une demande de prêt bancaire

� Méthodes symboliques (on produit des règles)� Arbres de décision

� Méthodes non symboliques ou adaptatives� Réseaux de neurones� Algorithmes génétiques

2

Page 3: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

L'approche probabiliste

Exemple : Établir un diagnostic dans le domaine médical.

� Il faut être capable d'associer le nom d'une maladie à un certainnombre de symptômes présentés par des malades

� Les malades forment la population.� Les symptômes sont les descriptions des malades.� Les maladies sont les classes.� On suppose qu'il y a un classement correct, c.-à-d. uneapplication qui associe à tout malade une maladie.

� Apprendre à établir un diagnostic : associer une maladie à uneliste de symptômes

3

Page 4: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Dé�nition

� Π : la population� D : l'ensemble des descriptions� K = {1, . . . , c} l'ensemble des classes� X : Π → D : fonction qui associe une description à chaqueélément de la population

� Y : Π → {1, . . . , c} : fonction de classement qui associe uneclasse à tout élément de la population.

� Une fonction C : D → {1, . . . , c} est appelée fonction declassement ou procédure de classi�cation

Le but de l'apprentissage est de rechercher une procédure declassi�cation C : D → K telle que C ◦X ∼ Y (C ◦X doit êtreune bonne approximation de Y ).

4

Page 5: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Dans la pratique...

� Ensembles d'attributs logiques, symboliques ou numériquesA1 ∈ D1, . . . An ∈ Dn.

� D = D1 ×D2 . . .×Dn l'espace de descriptions.� Par exemple, un patient est décrit par un ensemble desymptômes (mal de tête, douleur) et une suite de mesures(tension, température).

5

Page 6: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Bonne approximation

Comment exprimer que C ◦X est une bonne approximation de Y ?

� On suppose l'existence d'une distribution de probabilités sur Πet on dit que C ◦X est une bonne approximation de Y , s'il estpeu probable qu'elles di�èrent.

� Soient Π probabilisé, P la probabilité dé�nie sur Π et D discret.� P (d) : probabilité qu'un élément de Π ait d pour description.� P (k) : probabilité qu'un élément de Π soit de classe k.� P (d/k) : probabilité qu'un élément de classe k ait d pourdescription.

� P (k/d) : probabilité qu'un élément ayant d pour descriptionsoit de classe k.

6

Page 7: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

� Formule de Bayes :

P (k/d) =P (d/k)P (k)

P (d)

Si on connaît P (d), P (k) et P (d/k) pour tout d ∈ D et pourtoute classe k ∈ {1, . . . , c}. Comment choisir la fonction C ?

7

Page 8: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Exemple

� Π : la population française� Un attribut logique : répondeur� L'espace de description : {repondeur, repondeur}� Deux classes : {riche, riche}� Informations :

classe k riche riche

P (k) 0.4 0.6

P (repondeur/k) 0.8 0.45

P (repondeur/k) 0.2 0.55

8

Page 9: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Règle de la classe majoritaire

La fonction Cmaj attribue à chaque description la classemajoritaire, c'est à dire la classe k t.q. P (k) est maximum (dansl'exemple riche).

9

Page 10: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Règle du maximum de vraisemblance

� Cvraisemblance attribue à une description d la classe pour laquelleP (d/k) est maximum (la plus probable).

� Dans l'exemple : riche pour propriétaire de répondeur, riche

pour les autres.� Problème : supposons

C = {employe Telecoms,medecins, ouvriers} etP (repondeur/employe Telecoms) = 1.

Cvraisemblance donne pour propriétaire d'un répondeur toujoursemploye Telecoms.

10

Page 11: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Règle de Bayes

� CBayes attribue à une description d la classe k qui maximise laprobabilité P (k/d) qu'un élément ayant d pour description soitde classe k.

� P (k/d) peut être estimée en utilisant la formule de Bayes, doncon choisit la classe k qui maximise le produit P (d/k)P (k).

� Exemple :

P (repondeur/riche)P (riche) = 0.8× 0.4 = 0.32

P (repondeur/riche)P (riche) = 0.45× 0.6 = 0.27

P (repondeur/riche)P (riche) = 0.2× 0.4 = 0.08

P (repondeur/riche)P (riche) = 0.55× 0.6 = 0.33

11

Page 12: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

� Ici : Cvraisemblance = CBayes

� Cas spécial : classes équiprobables

12

Page 13: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Comparaison

� L'erreur pour une description E(d) est la probabilité qu'unélément ayant description d soit mal classé par C, i.e.E(d) = P ({k|k 6= C(d)}/d)

� L'erreur de classi�cation est

E(C) =∑

d∈D

E(d)P (d)

13

Page 14: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Erreurs dans l'exemple

E(Cmaj) = 0.4

E(Cvraisemblance) =def

E(rep)P (rep) + E(rep)P (rep) =def

P (riche/rep)P (rep) + P (riche/rep)P (rep) =def

P (rep/riche)P (riche)P (rep)P (rep) + P (rep/riche)P (riche)P (rep)

P (rep) =

P (rep/riche)P (riche) + P (rep/riche)P (riche) =

0.27 + 0.08 = 0.35

14

Page 15: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Erreur minimale

Théorème : La règle de Bayes est celle dont l'erreur declassi�cation est minimale.

15

Page 16: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Remarques

� Si une fonction de classement est correcte, alors E(CBayes) = 0� Une fonction de classement correcte existe, ssi la probabilité quedes individus appartenant à des classes di�érents aient desdescriptions identiques est nulle.

� Dans ce cas, le problème est dit déterministe.� Très rare en pratique :� Généralement les paramètres descriptifs dont on dispose nesont pas su�sants pour classi�er correctement tout.

� Les données sont généralement inexactes.� Il faut connaître les probabilités (di�ciles à estimer)

16

Page 17: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Types de classi�cation

� Apprentissage supervisé/non supervisé� Choix du langage de description en fonction de la dé�nition desattributs susceptibles d'être pertinents

On s'intéresse à l'apprentissage supervisé par un ensembled'exemples déjà classés.

Di�cultés : les lois de probabilité sont inconnues de l'apprenant,l'espace des fonctions de classement a une taille démesurée,l'échantillon disponible est de taille limitée.

17

Page 18: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Classi�cation supervisée

� Langage de description D = D1 ×D2 × . . . Dn (on note~x, ~y ∈ D) et ensemble de classes {1, . . . , c}.

� On suppose une loi de probabilité P sur D �xée mais inconnue.� On suppose une loi de probabilité conditionnelle P (./.) �xéemais inconnue.

� Échantillon S de m exemples (~x,C(~x)) tirés selon P (., .) dé�niepar P (~x, y) = P (~x)P (y/~x).

� Problème de classi�cation supervisée : Inférer une fonction declassement dont l'erreur de classi�cation est minimale.

18

Page 19: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Bien classer et bien prédire

� Exemple d'une procédure de classi�cation :1. On mémorise tous les exemples de l'échantillon

d'apprentissage dans une table.2. Lorsqu'une nouvelle description est présentée au système, on

recherche dans la table.3. Si on trouve la description, on sort le résultat correspond4. Sinon, on choisit une classe au hasard.

� Cette procédure ne fait pas d'erreur sur les exemples, mais sonpouvoir prédictif est très faible

Objectif : Une procédure de classi�cation devrait dépasser aumoins le pouvoir prédictif de la procédure Cmaj majoritaire.

19

Page 20: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Erreur réelle et apparente

� L'erreur réelle E(C) est l'erreur de classi�cation� L'erreur apparente Eapp(C) est dé�nie par :� S un échantillon de taille m

� C une procédure de classi�cation� Eapp(C) = err

m où err est le nombre d'exemples de S malclassés par C.

Objectif : minimiser E(C) (mais l'apprenant ne connaît queEapp(C) sur S).

Remarque : Eapp(C) tend vers E(C) pour des échantillons de plusen plus grands.

20

Page 21: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Les méthodes de classi�cation supervisée

� Le classi�eur naïf de Bayes� Minimiser l'erreur apparente� Choix de l'espace des hypothèses� Estimer l'erreur réelle� Utilisation d'un ensemble Test� Re-échantillonage

21

Page 22: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Le classi�eur naïf de Bayes

� CBayes(d) = argmaxk∈{1,...,c}

P (k/d) = argmaxk∈{1,...,c}

P (d/k)P (k)

� CBayes(~d) = argmaxk∈{1,...,c}

P ((d1, . . . , dn)/k)P (k)

� P (d/k), P ((d1, . . . , dn)/k) et P (k) ne sont pas connues.� On estime P (k) par P (k) (% d'éléments de classe k dans S).� L'estimation de P ((d1, . . . , dn)/k) est di�cile, donc on fait unehypothèse simpli�catrice qui dit que les valeurs des attributssont indépendants connaissant la classe :

P ((d1, . . . , dn)/k) = Πi∈{1,...,n}P (di/k)

� On estime P (di/k) par P (di/k) (la proportion d'éléments declasse k ayant la valeur di pour l'attribut i).

22

Page 23: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

CNaiveBayes(d) = argmaxk∈{1,...,c}

Πi∈{1,...,n}P (di/k)× P (k)

23

Page 24: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Minimiser l'erreur apparente

� L'erreur apparente est une version très optimiste de l'erreur réelle� Il y a beaucoup de fonctions de D dans {1, . . . , c}. C'estimpossible de toutes les explorer.

� On peut donc limiter la recherche d'une fonction declassi�cation à un espace donné par un sous-ensemble C detoutes les procédures de classi�cation.

� Exemples : programme qui traduit un texte de 200 pages del'anglais vers le français et comporte 400 pages de code... Onprefère choisir le traducteur dans un ensemble restreint deprogrammes (ceux de moins de 20 pages de code).

24

Page 25: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Minimiser l'erreur apparente

� On prend un espace d'hypothèses C� Soit Copt la procédure optimale de C (celle qui a l'erreur declassi�cation minimale).

� Problème di�cile : approcher Copt

� On ne peut pas à la fois sélectionner un classi�eur à l'aide d'unensemble d'apprentissage et juger sa qualité avec le mêmeensemble.

� On choisira Cemp qui minimise l'erreur apparente.� Il faut bien choisir l'espace de recherche d'hypothèses :par exemple on a des suites d'ensembles de procédures declassi�cation C1 ⊆ C2 ⊆ · · · Ck ⊆ · · ·où k est une mesure de complexité du système d'apprentissage

25

Page 26: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

liée à la capacité.On essaie de trouver k de sorte que Ck,emp ait le plus faibleerreur réelle possible. On peut minimiser l'erreur apparente encomplexi�ant de plus en plus l'espace de recherche.

26

Page 27: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Estimer l'erreur réelle

� Utilisation d'un ensemble Test : on partitionne l'échantillon enun ensemble d'apprentissage S et un ensemble test T

� La répartition est faite aléatoirement.� On génère une procédure de classi�cation C en utilisant S.� On estime l'erreur réelle E(C) avec

E(C) =]malclasses(T )

]T

� L'estimation est faire sur un ensemble indépendant de celui qui aservi à l'aprentissage

� Méthode bien adaptée lorsque la taille de S est su�sammentgrande

27

Page 28: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Estimer l'erreur réelle

Lorsque l'échantillon S est trop petit on ne peut pas sacri�er deséléments pour tester le classi�eur.

On utilise des techniques de re-échantillonage.

On divise l'échantillon S en k parties. On fait k sessionsd'apprentissage en utilisant à chaque fois k − 1 parties pourapprendre et une partie pour tester.

28

Page 29: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Les arbres de décision

� C'est une méthode symbolique� On cherche une procédures de classi�cation compréhensible� Exemple :

temperature < 37.5/ \

o / \ nGorge irritée MALADE

/ \o / \ n

MALADE BIEN PORTANT

29

Page 30: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Les arbres de décision

� Un arbre de décision est un arbre au sens informatique� Les noeuds sont repérés par des positions ∈ {1, . . . , p}∗, où p

est l'arité maximale des noeuds.� Les noeuds internes sont les noeuds de décision.� Un noeud de décision est étiqueté par un test qui peut êtreappliqué à chaque description d'un individu d'une population.

� Chaque test examine la valeur d'un unique attribut.� Dans les arbres de décision binaires on omet les labels des arcs.� Les feuilles sont étiquetées par une classe.

30

Page 31: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Les arbres de décision

� À chaque arbre, on associe naturellement une procédure declassi�cation.

� À chaque description complète est associée une seule feuille del'arbre.

� La procédure de classi�cation représenté par un arbre correspondà des règles de décision.

� Exemple :Si Température < 37,5 ET gorge irritée ALORS maladeSi Température < 37,5 ET gorge non irritée ALORS bien portantSi Température ≥ 37,5 ALORS malade

31

Page 32: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Construire des arbres de décision

� Étant donné un échantillon S et des classes {1, . . . , c}, on veutconstruire un arbre t

� À chaque position p de t correspond un sous-ensemble de S quicontient les éléments de S qui satisfont les tests de la racinejusqu'à p.

� On dé�nit pour chaque p :� N(p) = le cardinal de l'ensemble des exemples associé à p

� N(k/p) = le cardinal de l'ensemble des exemples associé à p

de classe k

� P (k/p) = N(k/p)/N(p) = la proportion d'éléments de classek à la position p

32

Page 33: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Revenons à l'exemple

� Échantillon de 200 patients : 100 malades et 100 bien portants.� Répartition (M malades, S bien portants) :

gorge irrité gorge non irritétempérature < 37,5 (6 S, 37 M) (91 S, 1 M)température ≥ 37,5 (2 S, 21 M) (1 S, 41 M)

� N(11) = 43,� N(S/11) = 6, N(M/11) = 37,� P (S/11) = 6

43 , P (M/11) = 3743

33

Page 34: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Exemple : Banque

client M A R E I1 moyen moyen village oui oui2 élevé moyen bourg non non3 faible âgé bourg non non4 faible moyen bourg oui oui5 moyen jeune ville oui oui6 élevé âgé ville oui non7 moyen âgé ville oui non8 faible moyen village non non

34

Page 35: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Les attributs

� M : La moyenne des montants sur le compte� A : Tranche d'âge du client� R : Localité de résidence du client� E : Études supérieures� I : Consultation du compte par Internet� On veut construire un arbre de décision pour savoir si un clientconsulte son compte par Internet.

35

Page 36: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Exemple de la Banque (suite)

� On construit l'arbre d'une façon descendante� On choisit un test, on divise l'ensemble d'apprentissage S et onréapplique récursivement l'algorithme.

� On initialise avec l'arbre vide� Des 8 éléments de S, 3 sont de classe oui et 5 de classe non.� La racine de l'arbre n'est étiquetée par aucun test mais elle estcaractérisée par (3, 5).

� Si le noeud n'est pas terminal déjà, alors on choisit un test.� Ici il y a 4 choix (M,A,R,E)

36

Page 37: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Les 4 choix

M A/ | \ / | \

(1,2) (2,1) (0,2) (1,0) (2,2) (0,3)

R E/ | \ / \

(1,1) (1,2) (1,2) (3,2) (0,3)

Quel test choisir ? Intuitivement A est un bon test

37

Page 38: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Mesurer le degré de mélange des exemples

� Un test est intéressant s'il permet une bonne discrimination� Une fonction qui mesure le degré de mélange des exemples doit� prendre son maximum lorsque les exemples sont équirépartis(ici par exemple (4,4)).

� prendre son minimum lorsque les exemples sont dans unemême classe ((0,8) ou (8,0)).

� On veut une fonction qui minimise le degré de mélange

38

Page 39: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Des fonctions pour mesurer le degré de mélange

Les fonctions suivantes minimisent le degré de mélange

Entropie(p) = −c∑

k=1

P (k/p)× log(P (k/p))

Gini(p) = 1−c∑

k=1

P (k/p)2

= 2∑

k<k′P (k/p)P (k′/p)

39

Page 40: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Exemple pour l'attribut E

� Entropie(ε) = −38 log 3

8 − 58 log 5

8 ' 0, 954� Entropie(1) = −3

5 log 35 − 2

5 log 25 ' 0, 970

� Entropie(2) = −03 log 0

3 − 33 log 3

3 = 0� Gini(ε) = 2× 3

8 × 58 ' 0, 469

� Gini(1) = 2× 35 × 2

5 = 0, 480� Gini(2) = 2× 0

3 × 33 = 0

40

Page 41: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Choisir un test

� Soit f la fonction choisie (Gini ou Entropie par exemple)� On dé�nit le gain pour un test T et un position p

Gain(p, T ) = f(p)−n∑

j=1

(Pj × f(pj))

où n est l'arité du test T et Pj la proportion d'éléments de S àla position p qui vont en position pj (qui satisfont la i-èmebranche du Test)

� On cherche pour chaque position p le gain maximum

41

Page 42: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Exemple

� Gain(ε,M) = Entropie(ε)−(3

8Entropie(1) + 38Entropie(2) + 2

8Entropie(3)) =Entropie(ε)− 0, 620 = 0.334

� Gain(ε, A) = Entropie(ε)−(1

8Entropie(1) + 48Entropie(2) + 3

8Entropie(3)) =Entropie(ε)− 0, 500 = 0.454

� Gain(ε, R) = Entropie(ε)−(2

8Entropie(1) + 38Entropie(2) + 3

8Entropie(3)) =Entropie(ε)− 0, 870 = 0.084

� Gain(ε, E) = Entropie(ε)−(5

8Entropie(1) + 38Entropie(2)) =

Entropie(ε)− 0, 607 = 0.347.

42

Page 43: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Généralités

� Idée : Diviser récursivement et le plus e�cacement possible lesexemples de l'ensemble d'apprentissage par des tests dé�nis àl'aide d'attributs, jusqu'à ce qu'on obtienne des sous-ensemblene contenant (presque) que des exemples appartenant à unemême classe.

� On a besoin des trois opérations :� Décider si un noeud est terminal.� Sélectionner un test à associer à un noeud.� A�ecter une classe à une feuille.

43

Page 44: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Algorithme générique

entrée: langage de description, échantillon Ssortie: un arbre de décisionDébut

Initialiser à l'arbre viderépéter

Si noeud courant est terminalalors Affecter une classesinon Selectionner test et créer sous-arbres

Passer au noeud suivant non-exploréjusqu'à obtenir un arbre de décision

Fin

44

Page 45: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Généralités

� Arbre de décision parfait (tous les exemples sont bien classi�és)n'existe pas toujours.

� Le meilleur arbre est l'arbre le plus petit parfait.� L'algorithme précédent ne remet jamais en cause un choixe�ectué.

� L'erreur réelle peut être importante.� En pratique, on construit l'arbre et ensuite on élague.� Deux algorithmes : CART et C4.5

45

Page 46: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

L'algorithme CART

� Génère un arbre de décision binaire� Langage de représentation : On suppose prédé�ni un ensemblede tests binaires.

� Nous disposons d'un échantillon S découpé en un ensembled'apprentissage A et un ensemble de test T .

46

Page 47: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

La phase d'expansion

� Entrée : ensemble d'apprentissage A

� On utilise la fonction Gini

� Décider si un noeud est terminal :Un noeud à la position p est terminal si Gini(p) ≤ i0 ouN(p) ≤ n0, où i0 et n0 sont des paramètres à �xer.

� Sélectionner un test à associer à un noeud :On choisit le test qui maximise ∆(p, T ), où p est une position,T un test, Pg (resp. Pd) la proportion d'éléments qui vont sur laposition p1 (resp. p2).

∆(p, T ) = Gini(p)− (Pg ×Gini(p1) + Pd ×Gini(p2))

� A�ecter une classe à une feuille : on choisit la classe majoritaire.� Sortie : un arbre de décision.

47

Page 48: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

La phase d'élagage

� Entrée : l'arbre de décision obtenu dans la phase d'expansion� On construit une suite d'arbres t0t1 . . . tk.� On calcule pour chaque tj l'erreur apparente sur l'ensemble T .� La suite est donné par :

1. t0 est l'arbre obtenu dans la phase d'expansion2. tk est une feuille3. À l'étape ti : pour toute position p de ti on calcule g(p) et

on choisit la position p qui minimise g(p). L'arbre ti+1 est unélagué de ti en position p.

� Sortie : L'arbre de la suite dont l'erreur apparente est minimale.

48

Page 49: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

La fonction g

Calcul de g(p) : soit up le sous-arbre de ti à la position p et

g(p) =∆app(p)|up| − 1

, où ∆app(p) =MC(p)−MC(up)

N(p)

N(p) est le nombre d'exemples de A associés à p, MC(p) est lenombre d'exemples de A mal-classés à p si on élague ti en positionp et MC(up) est le nombre d'exemples de A associés à p de ti malclassés par up.

49

Page 50: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

Alternatives à CART

Lorsque la taille de l'échantillon S ne permet pas le découpage enA et T .

50

Page 51: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

L'algorithme C4.5 (phase d'expansion)

� Entrée : ensemble d'apprentissage A et langage dereprésentation avec des ensembles de tests n-aires.

� On utilise la fonction Entropie

� Décider si un noeud est terminal :p est terminal si tous les éléments associés à ce noeud sont dansune même classe où si on ne peut sélectionner aucun test.

� Sélectionner un test à associer à un noeud :� On envisage seulement les tests qui ont au moins deuxbranches contenant au moins deux éléments (ces paramètrespeuvent être modi�és).

� On choisit le test qui maximise le gain en utilisant la fonctionentropie.

51

Page 52: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

� La fonction Gain privilégie les attributs ayant un grandnombre de valeurs. On modi�e Gain comme suit :

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

Splitinfo(p, T )avec

Splitinfo(p, T ) = −n∑

j=1

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

où n est l'arité du test T et P ′(j/p) la proportion d'exemplesprésents à p prenant la j-ème valeur/classe du test T .

� A�ecter une classe à une feuille :On attribue la classe majoritaire. S'il n'y a pas d'exemples onattribue la classe majoritaire du père.

� Sortie : Un arbre de décision

52

Page 53: Algorithmesd'apprentissage - Bienvenue à l'IRIFkesner/enseignement/iup/cours71.pdf · jusqu'à obtenir un arbre de décision Fin 44. ProgrammationLogiqueetIA P.HabermehletD.Kesner

Programmation Logique et IA P. Habermehl et D. Kesner

L'algorithme C4.5 (phase d'élagage)

La phase d'élagage est basée sur une heuristique.

Améliorations :� Attributs discrets� Attributs continus� Valeurs manquantes

53