M2 - MP2L: Machine Deep Learning - Arbres de Décision - Corrigé

Page 1 sur 4Lecteur de document UniversityLib

M2 - MP2L: Machine Deep Learning - Arbres de Décision - Corrigé

Machine Learning · exam

Voir tous les documents en intelligence artificielle et données

M2 - MP2L

Machine Deep Learning

Arbres de décision - Corrigé

Exercice : Exemple de Quinlan – algorithme ID3

Nous reprenons l’exemple de Quinlan dont l'échantillon est constitué de 8 exemples répartis

entre 2 classes : la classe + et la classe -.

Chaque individu est décrit par 3 attributs :

  • Taille (noté T) à valeurs dans {petit, grand}
  • Cheveux (noté Ch) à valeurs dans {noir, roux, blond}
  • Yeux (noté Y) à valeurs dans {bleu, brun}

num T : Taille Ch : Cheveux Y : Yeux Classe

1 Petit

2 grand

3 grand

4 Petit

5 grand

6 grand

7 grand

8 Petit

blond

blond

roux

noir

noir

blond

noir

blond

bleu

brun

bleu

bleu

bleu

bleu

brun

brun

+

-

+

-

-

+

Publicité

-

-

1. A partir de ces données, construisez l'arbre de décision en utilisant la fonction gain basée

sur l'entropie de Shannon. Vous indiquerez la valeur d’entropie de chaque nœud, et le gain

d’information

attribut.

Sur l’arbre, vous indiquerez à côté de chaque nœud le nombre d’individus de chaque

classe. Le critère d’arrêt de construction de l’arbre est l’obtention de nœuds homogènes.

chaque

obtenu

choix

par

de

le

A la racine

On remarque que sur les 8 lignes des données d'apprentissage, 3 correspondent à la classe "+" et 5 à la classe

"-".

L'entropie de l'ensemble S (à la racine de l'arbre) est donc égale à :

Entropie (S)= -(3/8)log2(3/8)-(5/8)log2(5/8) =0.954

Pour connaître quel attribut on doit choisir comme test au niveau de la racine de l'arbre, il faut calculer le

gain d'entropie sur chacun des attributs : "Taille", "Cheveux" et "Yeux".

Calcul du gain d'entropie sur l'attribut " Taille " :

Gain(S, Taille) = Entropie(S) - Entropie(S/Taille)

Entropie(S/Taille)= 3/8 Entropie(Spetir) + 5/8 Entropie(Sgrand)=0,950 (entropie conditionnelle)

avec Entropie(Spetit)= -(1/3)log2(1/3)- (2/3)log2(2/3) (3 exemples répartis en 1+ et 2-)

et Entropie(Sgrand)= -(2/5)log2(2/5)- (3/5)log2(3/5) (5 exemples répartis en 2+ et 3-)

d’où Gain(S, Taille) =0.954-0.950=0.004

1/4

Calcul du gain d'entropie sur l'attribut " Cheveux " :

Gain(S, Cheveux) = Entropie(S) - Entropie(S/ Cheveux)

Entropie(S/ Cheveux)= 4/8 Entropie(Sblond) + 1/8 Entropie(Sroux) + 3/8 * Entropie(Snoir)=0.5

et Entropie(Sroux)= -1/1*log2(1/1) =0

avec Entropie(Sblond)= -(2/4)log2(2/4)- (2/4)log2(2/4)= 1 (4 exemples répartis en 2+ et 2-)

(répartition équitable : entropie maximale)

(1 exemples de classe+)

(nœud homogène : entropie minimale)

(3 exemples de classe-)

(nœud homogène : entropie minimale)

et Entropie(Sbrun)=0

Publicité

d’où Gain(S, Cheveux) = 0.954-0.5=0.454

Calcul du gain d'entropie sur l'attribut " Yeux " :

Gain(S, Yeux) = Entropie(S) - Entropie(S/ Yeux)

Entropie(S/ Yeux)= 5/8 Entropie(Sbleu) + 3/8 Entropie(Sbrun)= 0.607

avec Entropie(Sbleu)= -(3/5)log2(3/5)- (2/5)log2(2/5) (5 exemples répartis en 3+ et 2-)

et Entropie(Sbrun)= -3/3*log2(3/3) =0

(3 exemples de classe-)

(nœud homogène : entropie minimale)

d’où Gain(S, Yeux) =0.954- 0.607 =0.347

On constate que le plus grand gain d'entropie est obtenu sur l'attribut "Cheveux". C'est donc cet attribut qui

est choisi comme test à la racine de l'arbre. Nous obtenons l'arbre partiel suivant :

On voit que mettre l'attribut "Cheveux" à la racine de l'arbre permet d'obtenir 3 branches dont 2 ("Cheveux =

roux" et "Cheveux=noir") produisent des nœuds purs (homogènes). Ces nœuds vérifient donc la condition

d’arrêt et deviennent des feuilles (finaux).

La branche "Cheveux = roux" conduit à la feuille étiquetée "+" et la branche "Cheveux=noir" conduit à la

feuille étiquetée "-". La décision dans les sous-groupes (les feuilles) est celle de la classe la plus fréquente.

Il ne reste à traiter que le noeud présentant un mélange correspondant à la branche "Cheveux=blond". Ce

nœud comporte un ensemble (que nous noterons S2) ayant 2 individus appartenant à la classe "+" et 2

individu de la classe "-".

2/4

Au nœud "Cheveux=blond"

Le processus suivi à la racine pour choisir le meilleur attribut de segmentation est réitéré ici avec la sous base

d’exemples "Cheveux=blond". Cette sous base notée S2, contient 4 lignes des données d'apprentissage, 2

correspondent à la classe "+" et 2 à la classe "-". Ces exemples sont décrits par les 2 attributs restant : Taille et

Yeux.

L'entropie de l'ensemble S2 (au nœud "Cheveux=blond") est donc égale à :

Entropie (S2)= -(2/4)log2(2/4)-(2/4)log2(2/4)=1 (répartition équitable)

Pour connaître quel attribut on doit choisir comme test au niveau du noeud "Cheveux=blond", il faut calculer

le gain d'entropie sur chacun des attributs restants : "Taille" et "Yeux".

Calcul du gain d'entropie sur l'attribut " Taille " :

Gain(S2, Taille) = Entropie(S2) - Entropie(S2/Taille)

Entropie(S2/Taille)= 2/4 Entropie(Spetir) + 2/4 Entropie(Sgrand)=1 (entropie conditionnelle)

avec Entropie(Spetit)= -(1/2)log2(1/2)- (1/2)log2(1/2)=1 (2 exemples répartis en 1+ et 1-)

(répartition équitable : entropie maximale)

et Entropie(Sgrand)= 1 (2 exemples répartis en 1+ et 1-) (répartition équitable : entropie maximale)

d’où Gain(S2, Taille) =1-1=0

Calcul du gain d'entropie sur l'attribut " Yeux " :

Gain(S2, Yeux) = Entropie(S2) - Entropie(S2/ Yeux)

Entropie(S2/ Yeux)= 2/4 Entropie(Sbleu) + 2/4 Entropie(Sbleu)= 0 (entropie conditionnelle)

Publicité

avec Entropie(Sbleu)= 0 ( 2 exemples répartis en 2+ et 0-) (nœud homogène : entropie minimale)

et Entropie(Sbrun)= 0 ( 2 exemples répartis en 0+ et 2-) (nœud homogène : entropie minimale)

d’où Gain(S2, Yeux) =1-0 =1

On constate que le plus grand gain d'entropie est obtenu sur l'attribut "Yeux". C'est donc cet attribut qui est

choisi comme test du noeud "Cheveux=blond". Nous obtenons l'arbre suivant :

On voit que mettre l'attribut "Yeux" au noeud "Cheveux=blond permet d'obtenir 2 branches qui produisent

des nœuds homogènes. Ces nœuds vérifient donc la condition d’arrêt et deviennent des feuilles (finaux).

La décision dans les sous-groupes (les feuilles) est celle de la classe la plus fréquente.

3/4

2. Rappelez la définition de l’erreur empirique en apprentissage supervisé. Calculez cette

erreur pour l’arbre de décision que vous avez construit.

Echantillon W ={(xi,yi)}1..m de m exemples + classe. Chaque ex. X comporte p attributs

(X1,…, Xp)

xi: iième exemple (ou instance, vecteur)

yi: iième étiquette (ou attribut de décision, classe)

But : trouver le modèle f(x) qui soit le plus proche de y

err

emp

=

1

m

m

=

1

i

(

xf

(

i

)

i

)

y

Taux d’erreur en resubstitution ou erreur empririque : Proportion d’individus mal classés

appliqué sur l’échantillon d’apprentissage.

Sur notre exemple : tous les exemples d’apprentissage sont bien classés par l’arbre construit.

C’est un arbre parfait.

Erremp=0

Publicité

Cela peut être vu directement sur l’arbre construit : toutes les feuilles sont homogènes.

3. Rappelez la définition de l’erreur de prédiction en apprentissage supervisé. Estimez ce

taux d’erreur sur l'ensemble test T (schéma apprentissage-validation).

num T : Taille Ch : Cheveux Y : Yeux Classe Classe

9 grand

10 Petit

11 Petit

12 Petit

blond

blond

roux

noir

bleu

brun

brun

brun

+

+

+

-

err pred

=

Pr[

xf

)(

y

]

Estimation sur l’ensemble de test : errpred = ¼=25%

prédite par

l’arbre

+

-

+

-

4/4