1 Arbres de décision

Transcription

1 Arbres de décision
M1 Informatique - 2012/2013
Initiation à l’Apprentissage automatique
Examen (durée : 2 heures)
Tous documents autorisés. Les questions sont indépendantes.
1
Arbres de décision
On considère des images en noir en blanc codées sur . . . 4 pixels 1 ! Chaque image est donc
codée par un élément (x1 , x2 , x3 , x4 ) ∈ {0, 1}4 où les pixels noirs sont notés 1, les pixels blancs
x x2
sont notés 0 et les cases sont remplies dans l’ordre 1
. Ci-joint un échantillon d’images
x3 x4
réparties selon 2 classes.
Classe 1
Classe 2
Figure 1 – Ensemble d’apprentissage
Le premier exemple de la classe 1 peut donc aussi se noter (1, 0, 1, 1).
1. On souhaite apprendre un arbre de décision sur cet échantillon, basé sur les attributs
xi = 1 pour i = 1, 2, 3, 4. Quel est l’attribut qui sera choisi à la racine de l’arbre si l’on
souhaite maximiser le gain en information relativement au critère de Gini ?
Correction :
– G(x1 ) = 7/12 ∗ 2 ∗ 5/7 ∗ 2/7 + 5/12 ∗ 2 ∗ 1/5 ∗ 4/5 ≈ 0.371
– G(x2 ) = 7/12 ∗ 2 ∗ 6/7 ∗ 1/7 ≈ 0.143
– G(x3 ) = 7/12 ∗ 2 ∗ 2/7 ∗ 5/7 + 5/12 ∗ 2 ∗ 1/5 ∗ 4/5 ≈ 0.371
– G(x4 ) = 7/12 ∗ 2 ∗ 1/7 ∗ 6/7 ≈ 0.143
Deux attributs maximisent le gain : x2 et x4 .
2. Complétez sans faire de calcul l’arbre de la question précédente de manière à obtenir
un arbre T 1 qui classe correctement tous les exemples.
Correction : l’arbre x2 (2, x4 (1, x1 (1, 2))) classe correctement toutes les données.
3. On considère l’ensemble de validation décrit dans la figure 2.
Parmi tous les élagués possibles de T 1, quel est celui qui commet le moins d’erreurs sur
l’ensemble de validation ?
Correction Il y a 4 élagués possibles : 1 ; 2 ; x2 (2, 1), x2 (2, x4 (1, 2)). Ils commettent
respectivement : 4 erreurs, 8 erreurs ; 2 erreurs ; 3 erreurs. C’est x2 (2, 1) qui commet le
moins d’erreurs.
1. Il est difficile de prendre une résolution plus importante si l’on veut faire les calculs à la main.
1
Classe 1
Classe 2
Figure 2 – Ensemble de validation
2
Règle du maximum de vraisemblance
On reprend les notations de l’exercice précédent. En examinant les exemples, on s’aperçoit
que les exemples e1 = (1, 0, 0, 1) et e2 = (0, 1, 1, 0) jouent des rôles particuliers dans chacune
des deux classes. On en déduit un modèle probabiliste expliquant les observations :
– e1 (resp. e2 ) est choisi avec la probabilité q (resp. 1 − q) : c’est ce choix initial qui
déterminera la classe de l’exemple ;
– puis chaque pixel est bruité indépendamment des autres avec la probabilité p : un pixel
est conservé avec la probabilité 1 − p et modifié en son pixel opposé avec la probabilité
p;
– le résultat du bruitage est l’exemple observé.
À partir de e1 , si l’on bruite les pixels x2 et x4 , on obtient l’image (1, 1, 0, 0).
On note P (x1 , x2 , x3 , x4 )|ei ) la probabilité que l’image (x1 , x2 , x3 , x4 ) provienne du bruitage de ei .
1. Montrez que P (1, 0, 1, 1)|e1 ) = p(1 − p)3 et que P (1, 0, 1, 1)|e2 ) = p3 (1 − p).
Montrez que la probabilité d’observer l’image (1, 0, 1, 1) dans la classe 1 est égale à
qp(1 − p)3 .
En supposant que q = 1/2 et p = 1/5, a t-on plus de chance d’observer (1, 0, 1, 1) dans
la classe 1 ou dans la classe 2 ?
Correction
– P (1, 0, 1, 1)|e1 ) = p(1 − p)3 car 1 pixel de e1 est bruité et 3 ne le sont pas
– P (1, 0, 1, 1)|e2 ) = p3 (1 − p) car 3 pixels de e2 sont bruités et 1 ne l’est pas
– La probabilité d’observer (1, 0, 1, 1) dans la classe 1 est égale à P (1, 0, 1, 1)|e1 )P (e1 ) =
qp(1 − p)3 .
– Dans la classe 1 puisque p(1 − p)3 q > p3 (1 − p)(1 − q).
2. On suppose que l’échantillon d’apprentissage est constitué d’exemples indépendamment
distribués selon le modèle défini ci-dessus. Montrez que la vraisemblance de cet échantillon,
c’est-à-dire sa probabilité, est égale à p8 (1 − p)40 q 6 (1 − q)6 .
Correction Si tous les exemples de la classe 1 proviennent de e1 , ils comportent globalement 4 pixels bruités et donc, 20 pixels non bruités. De même, si tous les exemples de
la classe 2 proviennent de e2 , ils comportent globalement aussi 4 pixels bruités et donc,
20 pixels non bruités. Comme il y a six exemples de chaque classe, on trouve la formule
proposée :
q 6 p4 (1 − p)20 ∗ (1 − q)6 p4 (1 − p)20 = p8 (1 − p)40 q 6 (1 − q)6
|
{z
} |
{z
}
classe 1
classe 2
3. On admettra que si x ∈ [0, 1], si C > 0 et si m et n sont des entiers ≥ 1, la valeur de x
m
qui maximise la fonction f (x) = Cxm (1 − x)n est x = m+n
. Quelles sont les valeurs de
p et q qui maximisent la vraisemblance de l’échantillon d’apprentissage ?
2
Correction On remarque tout d’abord qu’on peut maximiser la vraisemblance séparément
pour p et q. On trouve p = 8/48 = 1/6 et q = 6/12 = 1/2.
4. Pour ces valeurs, comment seraient classés les exemples de l’ensemble de validation ?
Correction Comme la probabilité de chaque classe est la même, il suffit de minimiser le
nombre de pixels bruités pour chaque exemple. Tous les exemples de la classe 1 seraient
bien classés, sauf le premier. Tous les exemples de la classe 2 seraient bien classés, sauf
éventuellement le dernier pour lequel les 2 classes sont équiprobables.
3
Régression linéaire
On a administré un test de lecture à 12 enfants âgés de 7, 8 et 9 ans. Voici les résultats
obtenus par ces sujets :
i
1
2
3
4
5
6
7
8
9
10
11
12
X : Âge
7
8
9
7
9
8
7
9
8
9
8
7
Y : Note du test
6
8
8
7
9
8
6
9
7
8
9
7
1. Représentez sur un graphique ces données par un nuage de points.
2. Trouvez la fonction de régression linéaire obtenue par la méthode des moindres carrés
sur ce jeu de données. Tracer la droite de régression sur le graphique.
Correction On trouve X = 8 et Y = 23/3.
On trouve
X
X
(Xi − X)2 = 8 et
(Xi − X)(Yi − Y ) = 24/3 = 8.
i
i
La droite de régression a donc pour équation
y = x − 1/3.
3. Utilisez la fonction de régression linéaire obtenue pour prédire la note du test pour un
enfant âgé de 10 ans.
Correction Pour un enfant de 10 ans : 29/3 ≈ 9, 7
4. Interprétez le résultat obtenu à partir du graphique que vous avez tracé.
3
i
1
2
3
4
5
6
7
8
9
10
11
12
4
X : Âge
7
8
9
7
9
8
7
9
8
9
8
7
Y : Note du test
6
8
8
7
9
8
6
9
7
8
9
7
X −X
-1
0
1
-1
1
0
-1
1
0
1
0
-1
Y −Y
-5/3
1/3
1/3
-2/3
4/3
1/3
-5/3
4/3
-2/3
1/3
4/3
-2/3
Perceptron
Nous considérons un séparateur linéaire (perceptron) qui prédit y = 1 si hw, xi + b ≥ 0 et
y = 0 si hw, xi + b < 0. Soit les données d’apprentissage
{(xi , yi )}7i=1 = {(−3, 0), (−2, 0), (−1, 1), (0, 1), (1, 1), (2, 0), (3, 0)}
avec (xi , yi ) ∈ R × {0, 1}.
1. Représentez les données d’entrée sur une droite (espace d’entrée = R) en marquant les
sorties (0 ou 1) correspondantes. Est-ce que ces données sont linéairement séparables ?
Correction Non, il faudrait pour cela pouvoir trouver une droite séparant les points
annotés 0 des points annotés 1. On voit clairement dans la figure 3 qu’une telle droite
n’existe pas.
2. Soit la fonction g(x) = (x, x2 ) permettant de représenter les données xi de R par leurs
projections zi dans R2 (zi = (xi , x2i )). Dessinez sur un graphique (R2 ) les données
{zi }ni=1 en marquant les valeurs de {yi }ni=1 correspondantes. En appliquant l’algorithme
du perceptron, donnez les valeurs de w et b d’un classifieur permettant de séparer
linéairement les données dans R2 .
Correction Nouvelles données (pour appliquer l’algorithme, on transforme la classe 0
et -1 et on complète les données par 1) :
{(−3, 9, 1, −1), (−2, 4, 1, −1), (−1, 1, 1, 1), (0, 0, 1, 1), (1, 1, 1, 1), (2, 4, 1, −1), (3, 9, 1, −1)}
(w1 , w2 , w3 ) mal classé correction
(0,0,0)
(-3,9,1)
-1
(3,-9,-1)
(-1,1,1)
1
(2,-8,0)
(1,1,1)
1
(1,-7,1)
(-1,1,1)
1
(0,-6,2)
(1,1,1)
1
(1,-5,3)
(-1,1,1)
1
(0,-4,4)
On trouve le classifieur f (x, y, z) = −4y + 4z ou, sur les données de départ, f (x, y) =
−4y + 4 (et la droite d’équation y = 1.
4
Figure 3 – Données d’apprentissage dans R
3. Soit la fonction h(x) = (x, x3 ). Représentez les données projetées dans R2 par h sur une
figure. Montrez que les données projetées par h ne sont pas linéairement séparables.
Correction Nouvelles données (pour appliquer l’algorithme, on transforme la classe 0
et -1) :
{(−3, −27, −1), (−2, −8, −1), (−1, −1, 1), (0, 0, 1), (1, 1, 1), (2, 8, −1), (3, 27, −1)}
Il suffit de regarder les exemples (−2, −8, −1), (2, 8, −1) et (0, 0, 1) pour prouver que
l’échantillon n’est pas séparable. Un classifieur f (x, y) = w1 x+w2 y+w3 devrait vérifier :
−2w1 − 8w2 + w3 < 0, 2w1 + 8w2 + w3 < 0 et w3 ≥ 0. Il suffit d’additionner les deux
premières équations et de comparer avec la troisième pour s’apercevoir que ce n’est pas
possible.
5