Introduction au Machine Learning
Introduction au Machine Learning
L. Rouvière
[Link]@[Link]
Novembre 2019
1
Présentation
2
Programme
• 4 parties :
1. Contexte mathématique pour l’apprentissage (rappels ?) 2h00.
2. Support vector machine : 3h.
3. Agrégation : forêts aléatoires et boosting+arbres (rappels ?) : 5h.
4. Réseau de neurones et introduction au deep learning : 2h.
3
Première partie I
Apprentissage : contexte et
formalisation
4
Motivations
Estimation du risque
Le sur-apprentissage
Le package caret
Bibliographie
5
Motivations
Estimation du risque
Le sur-apprentissage
Le package caret
Bibliographie
6
Apprentissage statistique ?
Plusieurs "définitions"
1. "... explores way of estimating functional dependency from a given
collection of data" [Vapnik, 2000].
2. "...vast set of tools for modelling and understanding complex data"
[James et al., 2015]
7
Apprentissage statistique ?
Plusieurs "définitions"
1. "... explores way of estimating functional dependency from a given
collection of data" [Vapnik, 2000].
2. "...vast set of tools for modelling and understanding complex data"
[James et al., 2015]
3. Comprendre et apprendre un comportement à partir d’exemples.
7
Apprentissage statistique ?
Plusieurs "définitions"
1. "... explores way of estimating functional dependency from a given
collection of data" [Vapnik, 2000].
2. "...vast set of tools for modelling and understanding complex data"
[James et al., 2015]
3. Comprendre et apprendre un comportement à partir d’exemples.
Constat
• Le développement des moyens informatiques fait que l’on est confronté
à des données de plus en plus complexes.
• Les méthodes traditionnelles se révèlent souvent peu efficaces face à ce
type de données.
• Nécessité de proposer des algorithmes/modèles statistiques qui
apprennent directement à partir des données. 7
Un peu d’histoire - voir [Besse and Laurent, ]
8
Un peu d’histoire - voir [Besse and Laurent, ]
Conclusion
Moyens informatiques =⇒ Data Mining =⇒ Apprentissage statistique
=⇒ Intelligence artificielle...
8
Reconnaissance de l’écriture
Apprentissage statistique
Comprendre et apprendre un comportement à partir d’exemples.
9
Reconnaissance de l’écriture
Apprentissage statistique
Comprendre et apprendre un comportement à partir d’exemples.
9
Reconnaissance de la parole
0.5 0.5
YES NO
−0.5 −0.5
0 1 0 1
1 1
BOAT GOAT
−1 −1
0 1 0 1
0.2 1
SH AO
−0.2 −1
0 1 0 1 10
Apprentissage sur les réseaux
11
Prévision de pics d’ozone
12
Prévision de pics d’ozone
Question
Peut-on prédire la concentration maximale en ozone du lendemain à partir
des prévisions météorologiques ?
12
Détection de spam
13
Détection de spam
Question
Peut-on construire à partir de ces données une méthode de détection
automatique de spam ?
13
Problématiques associées à l’apprentissage
14
Problématiques associées à l’apprentissage
14
Théorie de l’apprentissage statistique
Approche mathématique
• Ouvrage fondateur : [Vapnik, 2000]
15
Théorie de l’apprentissage statistique
Approche mathématique
• Ouvrage fondateur : [Vapnik, 2000]
• voir aussi [Bousquet et al., 2003].
15
The Elements of Statistical Learning [Hastie et al., 2009,
James et al., 2015]
[Link]
[Link]
16
Motivations
Estimation du risque
Le sur-apprentissage
Le package caret
Bibliographie
17
Régression vs Discrimination
Objectifs
1. Expliquer le(s) méchanisme(s) liant les entrée xi aux sorties yi ;
2. Prédire « au mieux » la sortie y associée à une nouvelle entrée x ∈ X .
18
Régression vs Discrimination
Objectifs
1. Expliquer le(s) méchanisme(s) liant les entrée xi aux sorties yi ;
2. Prédire « au mieux » la sortie y associée à une nouvelle entrée x ∈ X .
Vocabulaire
• Lorsque la variable à expliquer est quantitative (Y ⊆ R), on parle de
régression.
• Lorsqu’elle est qualitative (Card(Y) fini), on parle de discrimination ou
de classification supervisée.
18
Exemples
yi xi
Chiffre image Discri.
Mot courbe Discri.
Spam présence/absence de mots Discri.
C. en O3 données météo. Régression
19
Exemples
yi xi
Chiffre image Discri.
Mot courbe Discri.
Spam présence/absence de mots Discri.
C. en O3 données météo. Régression
Remarque
• La nature des variables associées aux entrées xi est variée (quanti,
quali, fonctionnelle...).
19
Un début de formalisation mathématique
20
Un début de formalisation mathématique
f (xi ) ≈ yi , i = 1, . . . , n.
20
Un début de formalisation mathématique
f (xi ) ≈ yi , i = 1, . . . , n.
20
Un début de formalisation mathématique
f (xi ) ≈ yi , i = 1, . . . , n.
20
Approche statistique
21
Approche statistique
21
Approche statistique
Aspect théorique
• Pour une fonction de perte ` : Y × Y → R+ donnée, le problème
théorique consiste à trouver
f ? ∈ argmin R(f ).
f
• Une telle fonction f ? (si elle existe) est appelée fonction de prévision
optimale pour la perte `.
22
Aspect pratique
• La fonction de prévision optimale f ? dépend le plus souvent de la loi P
des (X , Y ) qui est en pratique inconnue.
23
Aspect pratique
• La fonction de prévision optimale f ? dépend le plus souvent de la loi P
des (X , Y ) qui est en pratique inconnue.
• Le job du statisticien est de trouver un estimateur fn = fn (., Dn ) tel
que R(fn ) ≈ R(f ? ).
23
Aspect pratique
• La fonction de prévision optimale f ? dépend le plus souvent de la loi P
des (X , Y ) qui est en pratique inconnue.
• Le job du statisticien est de trouver un estimateur fn = fn (., Dn ) tel
que R(fn ) ≈ R(f ? ).
Définition
• Un algorithme de prévision est représenté par une suite (fn )n
d’applications (mesurables) telles que pour n ≥ 1,
fn : (X × (X × Y)n ) → Y.
• On dit que la suite (fn )n est universellement consistante si ∀P
23
Choix de la fonction de perte
24
Choix de la fonction de perte
Conséquence pratique
Avant de s’attacher à construire un algorithme de prévision, il est capital
de savoir mesurer la performance d’un algorithme de prévision.
24
Motivations
Estimation du risque
Le sur-apprentissage
Le package caret
Bibliographie
25
Régression
` : R × R → R+
(y , y 0 ) 7→ (y − y 0 )2
26
Classification binaire
` : {−1, 1} × {−1, 1} → R+
(y , y 0 ) 7→ 1y 6=y 0
27
Fonction de score
S(x)
28
Fonction de score
S(x)
• Une telle fonction est appelée fonction de score : plutôt que de prédire
directement le groupe d’un nouvel individu x ∈ X , on lui donne une
note S(x)
• élevée si il a des "chances" d’être dans le groupe 1 ;
• faible si il a des "chances" d’être dans le groupe -1 ;
28
Courbe ROC et AUC
29
Courbe ROC et AUC
R(S) = AUC(S).
Propriété
• 0.5 ≤ AUC(S) ≤ 1.
• Plus l’AUC est grand, meilleur est le score.
29
1.00
0.75
true_positive_fraction
Scores
Perfect
0.50 random
S1
S2
0.25
0.00
30
1.00
0.75
true_positive_fraction
Scores
Perfect
0.50 random
S1
S2
0.25
0.00
> library(pROC)
> df1 %>% group_by(Scores) %>% summarize(auc(D,M))
## # A tibble: 4 x 2
## Scores ‘auc(D, M)‘
## <chr> <dbl>
## 1 Perfect 1
## 2 random 0.5
## 3 S1 0.896
## 4 S2 0.699
30
Résumé
31
Motivations
Estimation du risque
Le sur-apprentissage
Le package caret
Bibliographie
32
Rappels
Objectif
Etant donnée une fonction de perte ` : Y × Y → R+ , on cherche un
algorithme de prévision fn (x) = fn (x, Dn ) qui soit "proche" de l’oracle f ?
défini par
f ? ∈ argmin R(f )
f
33
Rappels
Objectif
Etant donnée une fonction de perte ` : Y × Y → R+ , on cherche un
algorithme de prévision fn (x) = fn (x, Dn ) qui soit "proche" de l’oracle f ?
défini par
f ? ∈ argmin R(f )
f
Question
Etant donné un algorithme fn , que vaut son risque R(fn ) ?
33
Risque empirique
34
Risque empirique
34
Risque empirique
Problème
• L’échantillon Dn a déjà été utilisé pour construire l’algorithme de
prévision fn =⇒ La LGN ne peut donc s’appliquer !
• Conséquence : Rn (fn ) conduit souvent à une sous-estimation de R(fn ).
34
Risque empirique
Problème
• L’échantillon Dn a déjà été utilisé pour construire l’algorithme de
prévision fn =⇒ La LGN ne peut donc s’appliquer !
• Conséquence : Rn (fn ) conduit souvent à une sous-estimation de R(fn ).
Une solution
Utiliser des méthodes de type validation croisée ou bootstrap.
34
Apprentissage - Validation ou Validation hold out
35
Apprentissage - Validation ou Validation hold out
35
Apprentissage - Validation ou Validation hold out
Commentaires
Nécessite d’avoir un nombre suffisant d’observations dans
37
Motivations
Estimation du risque
Le sur-apprentissage
Le package caret
Bibliographie
38
• La plupart des modèles statistiques renvoient des estimateurs qui
dépendent de paramètres λ à calibrer.
39
• La plupart des modèles statistiques renvoient des estimateurs qui
dépendent de paramètres λ à calibrer.
Exemples
• nombres de variables dans un modèle linéaire ou logistique.
• paramètre de pénalités pour les régressions pénalisées.
• profondeur des arbres.
• nombre de plus proches voisins.
• nombre d’itérations en boosting.
• ...
39
• La plupart des modèles statistiques renvoient des estimateurs qui
dépendent de paramètres λ à calibrer.
Exemples
• nombres de variables dans un modèle linéaire ou logistique.
• paramètre de pénalités pour les régressions pénalisées.
• profondeur des arbres.
• nombre de plus proches voisins.
• nombre d’itérations en boosting.
• ...
Remarque importante
Le choix de ces paramètres est le plus souvent crucial pour la performance
de l’estimateur sélectionné.
39
• Le paramètre λ à sélectionner représente le plus souvent la complexité
du modèle :
40
• Le paramètre λ à sélectionner représente le plus souvent la complexité
du modèle :
Complexité =⇒ compromis biais/variance
• λ petit =⇒ modèle peu flexible =⇒ mauvaise adéquation sur les
données =⇒ biais %, variance &.
40
• Le paramètre λ à sélectionner représente le plus souvent la complexité
du modèle :
Complexité =⇒ compromis biais/variance
• λ petit =⇒ modèle peu flexible =⇒ mauvaise adéquation sur les
données =⇒ biais %, variance &.
• λ grand =⇒ modèle trop flexible =⇒ sur-ajustement =⇒ biais &,
variance %.
40
• Le paramètre λ à sélectionner représente le plus souvent la complexité
du modèle :
Complexité =⇒ compromis biais/variance
• λ petit =⇒ modèle peu flexible =⇒ mauvaise adéquation sur les
données =⇒ biais %, variance &.
• λ grand =⇒ modèle trop flexible =⇒ sur-ajustement =⇒ biais &,
variance %.
Overfitting
Sur-ajuster signifie que le modèle va (trop) bien ajuster sur les données
d’apprentissage, il aura du mal à s’adapter à de nouveaux individus.
40
Train error
Test error
OVERFITTING
Complexity (λ)
41
Overfitting en regression
●
●
● ● ●
●
●
● ● ●
● ●
1.0 ● ●
●●
●
●
●●
● ● ● ● ●● ● ●
● ●
● ● ●
● ● ●
● ● ●
●
● ● ● ●
● ● ●
● ●
●● ●
● ●
● ● ●
●
● ● ●
● ●
●
●
0.5 ● ● ●
● ● ●
●
● ●● ●
● ● ●
● ● ● ●
●
● ●
● ●
● ● ●
● ●
●
●
●● ● ●
●
0.0 ● ● ● ●
● ●
Y
● ●
● ●
● ● ●
● ● ● ●
●
● ● ● ● ●
●● ● ●
●
●
● ●
● ● ●
●
−0.5 ● ● ●
● ●
● ● ● ●
●
●
●● ● ●
●
● ●
●●
● ● ●●● ●
●●
●●● ●
●●
● ● ●●
● ●●
●● ●
●● ● ●
●
●
−1.0 ●
● ●
● ●
● ●●
● ●
● ●
●
−1.5
−4 0 4
X
42
Overfitting en regression
1.0
0.5
Estimate
0.0 Over
y
Good
Under
−0.5
−1.0
−1.5
−4 0 4
x
42
Overfitting en classification supervisée
1.00 ● ● ● ●●● ● ●● ● ● ● ● ●
● ● ● ● ● ●●● ● ● ● ● ●
●
● ●● ● ● ● ●
● ● ● ●●
●●● ●
● ● ●● ● ● ● ● ●●
● ● ● ● ●● ● ● ● ● ● ●
●● ●
● ● ● ●● ● ● ● ● ● ●
● ● ●● ● ●●●● ●●
●● ● ● ●● ● ● ●● ●●● ● ● ● ● ●●
● ● ● ●●
● ●
● ● ● ● ● ● ●
●●
● ●● ● ● ● ●
● ●● ● ●●
● ● ●●● ● ●● ● ● ●● ● ● ● ●●
● ● ● ●● ● ● ● ● ● ● ●
● ● ● ●●
●●
● ● ● ● ● ●
●
●●
●
●
●
●● ●
●
● ●●● ● ● ● ● ●
●
●
● ● ●
● ● ● ● ● ● ● ● ●
● ●● ● ● ● ●
● ●● ●
● ● ● ● ●
●●
● ● ● ● ● ●
● ● ● ● ● ● ● ●● ● ●
●
●
●
● ● ● ● ● ●
● ●
● ● ● ●
● ● ●●
●● ● ● ● ● ● ● ● ● ●● ● ● ●●● ●●
● ● ● ●
●● ●●
● ● ● ● ● ● ●
● ● ●
● ● ● ● ● ● ●● ●
● ● ● ● ● ●●
●● ●
●●
● ●
●● ● ● ● ●
● ● ● ● ●● ●
● ● ● ●
● ● ● ●
●
●
● ● ●● ●● ●
●
● ●
●
● ●● ● ● ● ●
●● ●
●● ● ● ●● ●
● ●● ● ●
●
●
●
● ● ●● ● ● ● ●● ● ● ● ● ●
● ●● ●● ●● ● ● ● ● ●
● ● ● ●● ● ● ● ●●● ●
● ● ● ● ● ● ● ●
●
● ● ●● ● ●
● ● ● ●
● ● ● ●● ● ●
●
●● ● ●
● ●● ● ● ● ● ●● ●
●● ● ● ●●● ●
●● ● ●● ● ●
0.75 ● ● ● ● ●●
● ● ● ●●
● ●
● ● ●
●●
● ●● ● ●
● ●● ● ● ● ●
● ● ● ●
●● ● ●● ●
● ●●●●
● ● ● ● ●
● ● ● ●● ●
●
●● ● ● ● ● ●● ● ● ● ● ● ●
● ●● ● ●●●
●
● ●●● ● ● ● ● ● ●● ● ●●
●● ● ● ●● ●
● ● ● ● ●
● ● ● ●● ● ● ● ● ● ● ● ●
● ● ● ●
● ● ●● ●● ● ● ● ● ●●
●
● ● ● ● ● ●●
●
●
●● ● ● ● ● ● ● ● ● ●
● ●● ● ●
● ● ●●● ● ● ●● ● ● ● ●
● ●●● ● ● ● ● ●●
● ●
●● ● ● ●●
●● ● ● ● ●
●
● ●● ●● ● ● ● ● ● ● ● ●●
● ●
●
●● ● ● ● ●
●
●● ● ● ● ● ● ●● ● ●● ●
●
● ●● ● ● ● ●●
● ●● ● ●
●
●
●
● ● ● ● ● ● ● ●● ●
● ● ● ● ●●
● ● ● ● ● ● ● ● ●
●
● ●● ● ● ● ●
● ● ● ● ● ●
● ● ● ● ● ●
● ● ● ●● ● ● ●● ●
● ● ● ●
● ● ●●
●● ● ● ●
●●
● ● ● ●
●
● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ●
●
● ● ● ●● ● ● ● ● ● ● ● ● ● ● ● ●
●
●● ●● ●● ●
●
● ●
● ●●
●
●●
●
●● ●
● ● ●●
●
●●●
● ●● ●
● ●
● ●
● ●● ● Y
● ● ● ● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ●● ●●
● ● ● ● ● ● ● ● ● ●
X2
● ● ●
0.50 ●● ● ●● ● ● ● ● ● ● ●● ● ● ●● ● ●
● ●●
● ● 0
● ● ● ●●
● ● ● ●●
● ●● ● ● ● ● ● ●● ● ●
● ● ● ● ● ●● ● ●
●
●
● ●
● ● ●● ● ● ● ●●
● ● ● ● ●●●
● ●
● ● ● ●●● ● ● ● ● ● ●● ● ● ●●
● ●●
●
● ●
●● ● ● ●
● ● ●● ● ● ● ● ● 1
● ● ●● ●● ● ● ● ● ● ● ● ●● ● ●● ● ● ● ● ●
●● ● ●● ●● ● ● ● ● ●
●●● ● ●
●
● ●● ●
● ●
● ●
● ●
● ● ●
● ● ●
●
●● ●
● ● ● ●
● ● ● ● ● ● ● ● ● ● ● ● ● ●●
● ● ●●
● ● ● ● ●
● ● ● ●
● ●● ● ●●● ● ● ● ● ● ● ●● ● ● ● ● ● ● ● ●
●
●● ●● ● ● ● ● ● ●
● ●● ●●● ●
● ● ● ● ●
● ● ●● ● ●● ● ●
● ● ● ●●●● ●
●
●
● ● ●
● ● ● ● ●● ● ● ● ● ● ● ● ● ● ●
● ● ● ●● ● ● ● ●● ● ● ● ● ●● ●
● ● ● ●● ●● ● ● ● ●
● ●● ● ●● ● ● ●
● ● ● ●●● ● ● ● ●
● ●●
● ● ●● ●
●● ● ●● ● ●● ● ● ●●● ● ●● ● ●
● ● ● ●
●● ● ●●● ● ● ●
●
● ●● ●
●
● ●
●
● ● ● ● ● ● ● ● ●● ● ●●● ●
●● ●● ●
● ● ● ●● ●
● ● ●
● ● ● ●● ● ● ● ● ●● ● ●● ● ●
● ●
● ●●
● ● ● ● ● ● ● ● ● ● ● ●
● ● ●
● ● ● ●● ● ●
●
● ● ● ●
● ● ● ● ● ●● ●● ● ●●●
● ●
● ●
●● ● ● ● ●
● ● ● ● ● ●
● ● ● ●
● ●● ●●● ● ● ●
● ● ● ●● ● ● ●
● ●
0.25 ●● ● ● ● ●
●
●● ● ●
●
● ● ●
● ●● ●
●● ● ●
●
● ●● ● ●●
●
● ● ● ● ● ● ●● ●●
● ● ●● ●
● ● ● ●● ● ●
●
●● ●● ● ● ●● ● ●●
● ● ●
●● ●● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
● ● ●● ●
● ●● ●
●● ● ● ● ● ● ● ● ●● ● ● ● ● ● ●
● ●● ● ● ● ●
●
●
● ● ● ● ● ●
● ● ● ● ●● ●●
● ● ● ● ● ●●
● ● ● ●● ● ●● ● ●
● ● ● ●
●
●● ● ● ●
●● ●
● ● ●● ● ● ●● ● ● ● ● ● ●
● ● ● ● ●● ● ● ● ● ●●
● ●● ● ● ●● ● ● ● ● ● ● ●
●● ● ● ● ●
● ● ● ● ● ● ●●● ● ●● ●
● ● ● ● ● ●
●●
● ●● ●
● ●
● ● ●
● ● ● ● ● ●● ●
● ● ● ● ● ● ●●
●● ● ● ●● ● ●● ● ● ● ● ●● ●
● ●● ● ● ●● ● ●
● ● ● ●● ●● ● ●●
●● ●● ●
● ● ● ● ●
●
●
●●● ●●
●● ● ●● ●
●
●
● ●● ● ●● ● ● ● ● ● ●● ● ● ● ●● ●
●
● ● ● ● ● ●
● ● ● ● ●
●● ● ● ● ● ● ●●● ●● ●● ● ● ● ●●
● ●● ● ● ● ● ●
● ● ● ● ● ● ●● ● ● ●●● ● ●● ●● ●● ●● ● ● ●
● ● ● ● ● ● ●● ●
● ● ● ● ●
● ●● ●● ● ● ● ●● ●● ●●
●●
●● ● ● ●
●
● ● ● ●
●
● ● ● ● ● ● ● ●● ●
● ●● ●● ● ● ● ●
● ● ● ● ●● ● ● ●● ●●●● ● ● ● ●
● ●● ●● ● ●
● ● ● ●●●
●
● ● ● ●● ● ● ● ● ● ● ● ●
● ●● ● ●● ● ● ● ●
0.00 ● ● ●● ●● ● ● ● ● ● ● ● ●
43
Overfitting en classification supervisée
1.00 1.00
0.75 0.75
label label
X2
X2
0.50 0 0.50 0
1 1
0.25 0.25
0.00 0.00
0.00 0.25 0.50 0.75 1.00 0.00 0.25 0.50 0.75 1.00
X1 X1
1.00 1.00
0.75 0.75
label
label
X2
0.50 0 X2 0.50
1
1
0.25 0.25
0.00 0.00
0.00 0.25 0.50 0.75 1.00 0.00 0.25 0.50 0.75 1.00
X1 X1
43
Motivations
Estimation du risque
Le sur-apprentissage
Le package caret
Bibliographie
44
Le package caret
45
Le package caret
• Il suffit d’indiquer :
• la méthode (logistique, ppv, arbre, randomForest...)
• Une grille pour les paramètres (nombre de ppv...)
• Le critère de performance (erreur de classification, AUC, risque
quadratique...)
• La méthode d’estimation du critère (apprentissage validation, validation
croisée, bootstrap...)
45
Apprentissage-validation
> library(caret)
> K_cand <- [Link](k=seq(1,500,by=20))
> library(caret)
> ctrl1 <- trainControl(method="LGOCV",number=1,index=list(1:1500))
> e1 <- train(Y~.,data=donnees,method="knn",trControl=ctrl1,tuneGrid=K_cand)
> e1
## k-Nearest Neighbors
##
## 2000 samples
## 2 predictor
## 2 classes: ’0’, ’1’
##
## No pre-processing
## Resampling: Repeated Train/Test Splits Estimated (1 reps, 75%)
## Summary of sample sizes: 1500
## Resampling results across tuning parameters:
##
## k Accuracy Kappa
## 1 0.620 0.2382571
## 21 0.718 0.4342076
## 41 0.722 0.4418388 46
## 61 0.718 0.4344073
## 81 0.720 0.4383195
## 101 0.714 0.4263847
## 121 0.716 0.4304965
## 141 0.718 0.4348063
## 161 0.718 0.4348063
## 181 0.718 0.4348063
## 201 0.720 0.4387158
## 221 0.718 0.4350056
## 241 0.718 0.4350056
## 261 0.722 0.4428232
## 281 0.714 0.4267894
## 301 0.714 0.4269915
## 321 0.710 0.4183621
## 341 0.696 0.3893130
## 361 0.696 0.3893130
## 381 0.688 0.3727988
## 401 0.684 0.3645329
## 421 0.686 0.3686666
## 441 0.686 0.3679956
## 461 0.684 0.3638574
## 481 0.680 0.3558050
## Accuracy was used to select the optimal model using the largest value.
## The final value used for the model was k = 261. 47
> plot(e1)
● ●
0.72 ● ●
● ● ● ● ● ● ●
●
● ● ●
0.70
Accuracy (Repeated Train/Test Splits)
● ●
● ●
● ●
0.68 ●
0.66
0.64
0.62 ●
#Neighbors
48
Validation croisée
> library(doMC)
> registerDoMC(cores = 3)
> ctrl2 <- trainControl(method="cv",number=10)
> e2 <- train(Y~.,data=dapp,method="knn",trControl=ctrl2,tuneGrid=K_cand)
> e2
## k-Nearest Neighbors
##
## 1500 samples
## 2 predictor
## 2 classes: ’0’, ’1’
##
## No pre-processing
## Resampling: Cross-Validated (10 fold)
## Summary of sample sizes: 1350, 1350, 1350, 1350, 1350, 1350, ...
## Resampling results across tuning parameters:
##
## k Accuracy Kappa
## 1 0.6240000 0.2446251
## 21 0.7393333 0.4745290
## 41 0.7306667 0.4570024
## 61 0.7340000 0.4636743 49
## 81 0.7333333 0.4632875
## 101 0.7313333 0.4593480
## 121 0.7326667 0.4624249
## 141 0.7333333 0.4640787
## 161 0.7366667 0.4708178
## 181 0.7313333 0.4602309
## 201 0.7326667 0.4626618
## 221 0.7293333 0.4559741
## 241 0.7306667 0.4585960
## 261 0.7353333 0.4676751
## 281 0.7286667 0.4537842
## 301 0.7253333 0.4463516
## 321 0.7173333 0.4294524
## 341 0.7113333 0.4168003
## 361 0.7080000 0.4099303
## 381 0.7140000 0.4213569
## 401 0.7073333 0.4073761
## 421 0.7100000 0.4126434
## 441 0.7066667 0.4054984
## 461 0.6966667 0.3844183
## 481 0.6860000 0.3612515
##
## Accuracy was used to select the optimal model using the largest value.
## The final value used for the model was k = 21. 50
Validation croisée répétée
52
Critère AUC
53
## k ROC Sens Spec
## 1 0.6190866 0.5983264 0.6398467
## 21 0.7171484 0.6903766 0.7432950
## 41 0.7229757 0.6861925 0.7547893
## 61 0.7200500 0.6945607 0.7394636
## 81 0.7255567 0.6945607 0.7432950
## 101 0.7319450 0.6903766 0.7356322
## 121 0.7382452 0.6945607 0.7356322
## 141 0.7353757 0.7029289 0.7318008
## 161 0.7308549 0.7029289 0.7318008
## 181 0.7351272 0.7029289 0.7318008
## 201 0.7340050 0.7029289 0.7356322
## 221 0.7324099 0.7071130 0.7279693
## 241 0.7349028 0.7071130 0.7279693
## 261 0.7365780 0.7071130 0.7356322
## 281 0.7349749 0.6987448 0.7279693
## 301 0.7356963 0.7029289 0.7241379
## 321 0.7341493 0.6861925 0.7318008
## 341 0.7343898 0.6527197 0.7356322
## 361 0.7306385 0.6527197 0.7356322
## 381 0.7301816 0.6359833 0.7394636
## 401 0.7270957 0.6276151 0.7356322
## 421 0.7255487 0.6317992 0.7356322
54
## 441 0.7258933 0.6192469 0.7471264
## 461 0.7220619 0.6150628 0.7471264
## 481 0.7236330 0.6108787 0.7432950
##
## ROC was used to select the optimal model using the largest value.
## The final value used for the model was k = 121.
55
Motivations
Estimation du risque
Le sur-apprentissage
Le package caret
Bibliographie
56
Scores parfait et aléatoire
S ●● ●●
● ● ● ● ●●● ●
●
● ● ● ● ● ●
●● ● ● ●
● ●
● ●●● ● ●● ●● ● ●● ●
●
● ●●●●●
●
●
Y
random ●● ●
● ●● ●●● ●
● ●
●●
● ● ●
● ●
● ●
● ●● ● ● ●● ●
● ● ●●
●●●● ●●
●●
● ●● ● ● ● ● ● ● 0
● 1
Perfect ●●●●●
●● ● ● ● ●●● ●
●
● ● ● ● ● ●● ● ● ●
● ●
● ●●● ●
● ●● ●● ● ●● ●
●
● ● ●●
●
●
57
Scores parfait et aléatoire
S ●● ●●
● ● ● ● ●●● ●
●
● ● ● ● ● ●
●● ● ● ●
● ●
● ●●● ● ●● ●● ● ●● ●
●
● ●●●●●
●
●
Y
random ●● ●
● ●● ●●● ●
● ●
●●
● ● ●
● ●
● ●
● ●● ● ● ●● ●
● ● ●●
●●●● ●●
●●
● ●● ● ● ● ● ● ● 0
● 1
Perfect ●●●●●
●● ● ● ● ●●● ●
●
● ● ● ● ● ●● ● ● ●
● ●
● ●●● ●
● ●● ●● ● ●● ●
●
● ● ●●
●
●
Définition
• Score parfait : il est tel qu’il existe un seuil s ? tel que
57
Scores parfait et aléatoire
S ●● ●●
● ● ● ● ●●● ●
●
● ● ● ● ● ●
●● ● ● ●
● ●
● ●●● ● ●● ●● ● ●● ●
●
● ●●●●●
●
●
Y
random ●● ●
● ●● ●●● ●
● ●
●●
● ● ●
● ●
● ●
● ●● ● ● ●● ●
● ● ●●
●●●● ●●
●●
● ●● ● ● ● ● ● ● 0
● 1
Perfect ●●●●●
●● ● ● ● ●●● ●
●
● ● ● ● ● ●● ● ● ●
● ●
● ●●● ●
● ●● ●● ● ●● ●
●
● ● ●●
●
●
Définition
• Score parfait : il est tel qu’il existe un seuil s ? tel que
57
Lien score/règle de prévision
58
Lien score/règle de prévision
59
On définit également
59
Courbe ROC
• Idée : représenter sur un graphe 2d les deux types d’erreur pour tous
les seuils s.
Définition
C’est une courbe paramétrée par le seuil :
(
x(s) = α(s) = 1 − sp(s) = P(S(X ) > s|Y = −1)
y (s) = 1 − β(s) = se(s) = P(S(X ) ≥ s|Y = 1)
60
Courbe ROC
• Idée : représenter sur un graphe 2d les deux types d’erreur pour tous
les seuils s.
Définition
C’est une courbe paramétrée par le seuil :
(
x(s) = α(s) = 1 − sp(s) = P(S(X ) > s|Y = −1)
y (s) = 1 − β(s) = se(s) = P(S(X ) ≥ s|Y = 1)
Remarque
• La courbe ROC d’un score parfait passe par le point (0,1).
• La courbe ROC d’un score aléatoire correspond à la première
bissectrice.
60
1.00
0.75
true_positive_fraction
Scores
Perfect
0.50 random
S1
S2
0.25
0.00
61
1.00
0.75
true_positive_fraction
Scores
Perfect
0.50 random
S1
S2
0.25
0.00
Interprétation
On mesurera la performance d’un score par sa capacité à se rapprocher de
la droite d’équation y = 1 le plus vite possible.
61
AUC
Définition
• L’aire sous la courbe ROC d’un score S, notée AUC (S) est souvent
utilisée pour mesurer sa performance.
• Pour un score parfait on a AUC (S) = 1, pour un score aléatoire
AUC (S) = 1/2.
62
AUC
Définition
• L’aire sous la courbe ROC d’un score S, notée AUC (S) est souvent
utilisée pour mesurer sa performance.
• Pour un score parfait on a AUC (S) = 1, pour un score aléatoire
AUC (S) = 1/2.
Proposition
• Etant données deux observations (X1 , Y1 ) et (X2 , Y2 ) indépendantes et
de même loi que (X , Y ), on a
62
AUC
> library(pROC)
> df1 %>% group_by(Scores) %>% summarize(auc(D,M))
## # A tibble: 4 x 2
## Scores ‘auc(D, M)‘
## <chr> <dbl>
## 1 Perfect 1
## 2 random 0.5
## 3 S1 0.896
## 4 S2 0.699
63
Score optimal
• Le critère AUC (S) peut être interprété comme une fonction de perte
pour un score S ;
• Se pose donc la question d’existence d’un score optimal S ? vis-à-vis de
ce critère.
64
Score optimal
• Le critère AUC (S) peut être interprété comme une fonction de perte
pour un score S ;
• Se pose donc la question d’existence d’un score optimal S ? vis-à-vis de
ce critère.
Théorème ([Clémençon et al., 2008])
Soit S ? (x) = P(Y = 1|X = x), on a alors pour toutes fonctions de score
S
AUC (S ? ) ≥ AUC (S).
64
Score optimal
• Le critère AUC (S) peut être interprété comme une fonction de perte
pour un score S ;
• Se pose donc la question d’existence d’un score optimal S ? vis-à-vis de
ce critère.
Théorème ([Clémençon et al., 2008])
Soit S ? (x) = P(Y = 1|X = x), on a alors pour toutes fonctions de score
S
AUC (S ? ) ≥ AUC (S).
Conséquence
Le problème pratique consistera à trouver un "bon" estimateur
Sn (x) = Sn (x, Dn ) de
Estimation du risque
Le sur-apprentissage
Le package caret
Bibliographie
65
Références i
66
Références ii
67
Deuxième partie II
68
SVM - cas séparable
69
Cadre et notation
70
Règles linéaires
71
Règles linéaires
Mathématiquement
• On cherche une combinaison linéaire des variables w1 X1 + . . . + wp Xp .
• Règle associée :
(
1 si w1 X1 + . . . + wp Xp ≥ 0
g (x) =
−1 sinon.
71
Exemple 1 : régression logistique
• Modèle :
p(x)
logit = β0 + β1 x1 + . . . + βp xp
1 − p(x)
où p(x) = P(Y = 1|X = x).
• Règle de classification :
(
1 si p(x) ≥ 0.5
g (x) =
−1 sinon.
72
Exemple 1 : régression logistique
• Modèle :
p(x)
logit = β0 + β1 x1 + . . . + βp xp
1 − p(x)
où p(x) = P(Y = 1|X = x).
• Règle de classification :
(
1 si p(x) ≥ 0.5
g (x) =
−1 sinon.
• équivalent à
(
1 si β0 + β1 x1 + . . . + βp xp ≥ 0
g (x) =
−1 sinon.
72
Exemple 2 : LDA
73
Exemple 2 : LDA
• équivalent à
(
1 si c + x 0 Σ−1 (µ1 − µ0 ) ≥ 0
g (x) =
−1 sinon.
73
Illustration avec p = 2
1.00 ● 1.00 ●
● ●
● ●
0.75 ● 0.75 ●
● ●
● ● ● ● ● ●
● ●
● ● ● ●
● ●
● label ● label
X2
X2
● ● ● 0 ● ● ● 0
0.50 ● 0.50 ●
● ● ● ●
● 1 ● 1
● ● ● ●
● ● ● ●
● ●
● ● ● ●
● ●
● ● ● ●
0.25 ● 0.25 ●
● ●
● ●
● ●
● ● ● ● ● ● ● ●
● ● ● ● ● ●
● ●
● ●
● ● ● ●
● ● ● ●
● ●
0.00 0.00
0.00 0.25 0.50 0.75 1.00 0.00 0.25 0.50 0.75 1.00
X1 X1
74
• Ces approches linéaires s’obtiennent à partir d’un modèle statistique
• sur la loi de Y sachant X pour la logistique ;
• sur la loi de X sachant Y pour la discriminante linéaire.
75
• Ces approches linéaires s’obtiennent à partir d’un modèle statistique
• sur la loi de Y sachant X pour la logistique ;
• sur la loi de X sachant Y pour la discriminante linéaire.
75
SVM - cas séparable
76
Bibliographie
En plus des documents cités précédemment, cette partie s’appuie sur les
diapos de cours de
• Magalie Fromont, Apprentissage statistique, Université Rennes 2
([Fromont, 2015]).
78
Présentation
Cas simple
Les données (x1 , y1 ), . . . , (xn , yn ) sont dites linéairement séparables si il
existe (w , b) ∈ Rp × R tel que pour tout i :
• yi = 1 si hw , xi i + b = w t xi + b > 0 ;
• yi = −1 si hw , xi i + b = w t xi + b < 0.
78
79
hw , xi + b = 0
79
hw , xi + b = 0
Vocabulaire
• L’équation hw , xi + b définit un hyperplan séparateur de vecteur
normal w .
• La fonction signe(hw , xi + b) est une règle de discrimination
potentielle.
79
Problème
Il existe une infinité d’hyperplans séparateurs donc une infinité de règles
de discrimination potentielles.
80
Solution
[Vapnik, 2000] propose de choisir l’hyperplan ayant la marge maximale.
hw , xi + b = 0
1
M= kw k
marge
1
M= kw k
81
Le problème d’optimisation
82
Le problème d’optimisation
• Version 1 :
max M
w ,b,kw k=1
82
Le problème d’optimisation
• Version 1 :
max M
w ,b,kw k=1
• Version 2 :
1
min kw k2
w ,b 2
82
Solutions
• On obtient
n
X
w? = αi? yi xi .
i=1
83
Solutions
• On obtient
n
X
w? = αi? yi xi .
i=1
Remarque
w ? s’écrit omme une combinaison linéaire des xi .
83
Vecteurs supports
84
Vecteurs supports
Conséquence (importante)
• Si αi? = 0 alors yi (xit w ? + b) = 1 et xi est sur la marge.
• w ? se calcule uniquement à partir de ces points là.
84
Vecteurs supports
Conséquence (importante)
• Si αi? = 0 alors yi (xit w ? + b) = 1 et xi est sur la marge.
• w ? se calcule uniquement à partir de ces points là.
• Ces points sont appelés les vecteurs supports de la SVM.
84
Représentation
hw ? , xi + b ? = 0
M = kw1? k
α?
i > 0
marge
M = kw1? k
85
Le coin R
● ●
●
●
●
●
0.75
●
●
●
Y
X1
0.50 ● 0
● ●
● 1
0.25 ●
● ●
0.00
0.00 0.25 0.50 0.75
X2
> library(e1071)
> [Link] <- svm(Y~.,data=df,kernel="linear",cost=10000000000)
86
La fonction svm
87
La fonction svm
● ●
●
●
●
●
0.75
●
●
●
Y
X1
0.50 ● 0
● ●
● 1
0.25 ●
● ●
0.00
0.00 0.25 0.50 0.75
X2
88
• La fonction plot donne aussi une représentation de l’hyperplan
séparateur.
> plot([Link],data=df,fill=TRUE,grid=500)
0.8 o
1
o
0.6
x
o
o
X1
x o
0.4 o
o
o
0
o
0.2
o
x o
0.2 0.4 0.6 0.8 89
SVM - cas séparable
90
Problème
Dans la vraie vie, les données ne sont (quasiment) jamais linéairement
séparables...
hw , xi + b = 0
1
M= kw k
marge
1
M= kw k
91
Problème
Dans la vraie vie, les données ne sont (quasiment) jamais linéairement
séparables...
hw , xi + b = 0
1
M= kw k
marge
1
M= kw k
91
Problème
Dans la vraie vie, les données ne sont (quasiment) jamais linéairement
séparables...
hw , xi + b = 0
Idée
Autoriser certains points
1
M= kw k
1. à être bien classés mais à
l’intérieur de la marge ;
2. et/ou à être mal classés.
marge
1
M= kw k
91
Slack variables
92
Slack variables
93
• Bien entendu, on souhaite avoir le maximum de variables ressorts ξi
nulles ;
• Lorsque ξi > 0, on souhaite que ξi soit le plus petit possible.
1
kw k2
2
(
yi (w t xi + b) ≥ 1
sous les contraintes
93
• Bien entendu, on souhaite avoir le maximum de variables ressorts ξi
nulles ;
• Lorsque ξi > 0, on souhaite que ξi soit le plus petit possible.
93
• Bien entendu, on souhaite avoir le maximum de variables ressorts ξi
nulles ;
• Lorsque ξi > 0, on souhaite que ξi soit le plus petit possible.
93
• Bien entendu, on souhaite avoir le maximum de variables ressorts ξi
nulles ;
• Lorsque ξi > 0, on souhaite que ξi soit le plus petit possible.
93
• Les solutions de ce nouveau problème d’optimisation s’obtiennent de la
même façon que dans le cas séparable (Lagrangien, problème dual...).
• L’hyperplan optimal est défini par
n
X
w? = αi? yi xi
i=1
94
• Les solutions de ce nouveau problème d’optimisation s’obtiennent de la
même façon que dans le cas séparable (Lagrangien, problème dual...).
• L’hyperplan optimal est défini par
n
X
w? = αi? yi xi
i=1
94
• Les solutions de ce nouveau problème d’optimisation s’obtiennent de la
même façon que dans le cas séparable (Lagrangien, problème dual...).
• L’hyperplan optimal est défini par
n
X
w? = αi? yi xi
i=1
94
hw ? , xi + b ? = 0
ξ1?
ξ3? 1
M=
ξ2? kw ? k
ξ5?
marge
1
M= kw ? k
95
Le coin R
●
0.75
●
● Y
X1
0.50 ● 0
1
●
0.25 ●
● ●
0.00
0.00 0.25 0.50 0.75
X2
> plot(mod.svm1,data=df1,fill=TRUE,grid=500)
0.8 o
1
x
0.6
x
o
o
X1
x x
0.4 o
o
o
0
o
0.2
x
x o
0.2 0.4 0.6 0.8
X2
97
Choix de C
98
Choix de C
98
Choix de C
98
Choix de C
Conclusion
Il est donc très important de bien choisir ce paramètre.
98
• Le choix est souvent effectué de façon "classique" :
1. On se donne un critère de performance (taux de mal classés par
exemple) ;
2. On estime la valeur du critère pour différentes valeurs de C ;
3. On choisit la valeur de C pour laquelle le critère estimé est minimum.
99
• Le choix est souvent effectué de façon "classique" :
1. On se donne un critère de performance (taux de mal classés par
exemple) ;
2. On estime la valeur du critère pour différentes valeurs de C ;
3. On choisit la valeur de C pour laquelle le critère estimé est minimum.
99
Un exemple
1.00 ●
● ● ● ● ●
●
● ●
● ●
● ● ●●
●● ● ● ● ●● ● ● ●
●● ●●● ● ● ● ● ● ● ●● ● ● ● ●
●
● ● ● ● ●
● ●
● ● ● ●
●● ● ● ●● ●
● ●● ● ● ● ●
●● ● ● ●
● ● ●● ●
● ●
●● ● ●
● ●● ● ●
● ● ● ●●
●
● ●● ● ● ● ●● ●●
● ● ● ● ● ● ● ●●
● ● ●
● ●
● ● ● ●
● ● ●
● ● ● ●● ● ●● ●
● ● ●
● ● ●● ● ● ●
● ● ● ● ● ● ●● ●
● ● ● ● ●
● ● ● ● ● ● ●
● ● ● ● ●● ● ●
● ● ● ● ● ●●●
● ● ● ● ● ● ●
●
● ● ● ●● ● ●●
●
● ● ● ●
● ● ● ●● ● ● ● ● ●
● ●
●
● ● ● ●● ●
● ● ● ●
● ● ● ●● ● ●
●● ● ● ● ●● ● ●
● ●● ● ● ● ● ● ● ●
●
● ●
0.75 ●
●
● ● ●
●● ●
● ● ●
●
● ● ● ●
●
● ● ●
●
● ● ● ● ● ●●
● ●
●
● ● ● ●● ●
● ● ● ●
● ● ● ● ●
● ● ●
●
● ●● ● ●
● ● ● ● ● ●
● ●
● ● ● ●● ● ●● ●
●● ● ● ● ● ● ● ●● ● ● ●●
● ● ● ● ● ● ●
● ● ● ●
● ● ● ●
● ● ● ● ● ● ● ● ● ●
● ● ● ●
●● ● ● ●
● ● ● ●● ● ● ● ● ●
● ● ●● ● ●● ●
● ●
● ● ● ●● ●
● ● ● ● ● ● ● ● ● ●●
● ● ● ● ●
● ● ● ● ● ●
● ●
● ● ● ● ● ● ●● ● ●
●● ● ● ●
●● ● ● ● ●● ● ● ● ● ●● ●
●● ●
● ●
● ● ●
● ● ●●
● ●● ● ● ●●
●
● ● ●
●
Y
● ● ● ●
● ● ● ● ● ● ● ●
● ●● ● ● ● ● ●● ●●
V1
● ● ● ●● ● ● ●
● ●● ● ● 0
0.50 ●● ● ● ●
● ● ● ●
●
●
●
● ● ● ● ●● ●
●● ● ● ●●
●●● ● ● ●
●● ● ● ● ● ● ●
●
● ● 1
● ● ●
● ● ●● ● ● ● ●
● ●
●● ● ● ●
● ● ● ● ●
● ●● ● ●
● ● ● ● ● ●● ●
● ●
● ●
● ● ●● ● ●
● ● ● ● ● ●●
● ● ● ● ● ● ● ● ● ●
● ● ● ●
● ● ● ● ● ●
●
● ● ● ●● ● ●
●
● ● ● ●
●●
● ●
● ● ● ● ● ●● ●
● ● ●● ● ● ●
● ● ● ● ●
● ●● ● ●●
● ● ● ● ● ●●
● ●
● ●●● ● ● ● ● ● ● ●● ●●●
● ●
● ● ●
● ● ● ● ●
● ●
●● ● ● ● ● ● ● ● ●
● ● ● ● ● ● ● ●
● ●
● ●● ●
● ●● ● ●● ●
● ●
●
●
●
● ● ●● ● ●
● ●● ●
0.25 ●● ●●
● ●
●
● ●
●
●● ● ● ● ● ●
● ● ● ● ● ● ●
●● ● ●● ● ● ● ●
● ● ●
● ● ● ●● ● ●
● ● ● ●
● ● ● ●● ● ●●● ● ● ●●
● ● ● ● ● ●● ● ● ● ● ● ● ●
● ● ● ● ● ●
● ● ● ● ●
● ● ● ●
● ● ● ● ●
● ● ●
● ● ● ● ● ●
●
●● ●● ● ● ● ●● ● ●
● ● ● ● ● ● ● ●
● ●● ● ● ●● ●● ● ● ● ● ●
●● ● ● ●● ● ●
● ●●● ● ● ●● ● ●
● ● ● ●
●
● ● ● ● ● ●●
● ●●● ● ● ● ● ● ●
●
● ●● ● ● ●
● ●● ● ● ● ● ●
● ●
●● ● ●●● ● ● ● ● ●● ●
●
● ● ●
● ● ● ●● ● ● ● ●
● ● ● ● ● ●
● ●● ● ●
● ● ● ● ● ●●
0.00 ● ●
1
o x x x xx o o x x oo o o x x oo
x x x x xx x xxx xx xx xx xx x o o o o oo o ooo xx xx xx xx o o o o o oo o ooo xx xx xx xx o
x x x xx x xxx x x x xxx x xx x xx x x o o o ox x xxx x x x xxx x xx x oo o o o o o ox o xxx x x x xxx x xx x oo o o
xxxx xxx x xx xx xx x xx xx x x x x ooxo xoo o oo oo ox x xx xx x x x o ooxo xoo o oo oo ox x xx xx x x x o
x x x x x x x x x x
xxx x xx xxxx x x x x x x x o o o oo o o o o o
ooox o oo xxxx x xx x x x o o o o oo o o o o o
ooox o oo ooxx x xx x x x o
x x xx o o oo o o oo
0.6 xx
x x x x x
x x
x x xxx xx x xxxx xx xx
0.6 oo
o o o o o
o xx x xxx xx x xxxo oo oo
0.6 oo
o o o o o
o xx x xxx xx x oooo oo oo
x xx xxxx x x x x x o oo oooo o o oo o x x x x x x o oo oooo o o oo ooo o x x o
x x x xxx x xx x x xx x xx x x oo x xx xo oo
xxx xxx x x xx xx xx x xxxx x x x x x x x xxx xxx x xxx x ooo ooo x o oo xo oo x xxxx x x x x x x x ooo ooo o oooo ooo ooo x o oo xo oo x xxxx x x x x x x o ooo ooo o oooo
x x x xx x x o o x oo x o o o x oo x o
x xxx xx x x x x xx xx x x x xx xxx x x xxxxx x o ooo ox o x x x xx xx x x x oo ooo o ooooxo o o ooo ox o o o x xx xx x x o oo ooo o ooooxo o
V1
V1
V1
xx xxx xxx x x x x x xxx x x xxx xx x x x oo oxo ooo o o o x x xxx x x xxx xx x o o oo oxo ooo o o o x x xxx x x xxx xx o o o
xx x xx x x x x xx xx x x x x oo o oo o x x x xx oo o o o o oo o oo o o x x ox oo o o o o
x x xxxxxxx xx x x x x o o ooooooo oo x o o o o o ooooooo oo x o o o
x xx x xxx xx xx xx x x x x x
xxxx xxx xxx o oo o xxx xx xx xx x x x x o
oooo oxx ooo o oo o oxx xx xx xx x x x x o
oooo oxx ooo
0.4 xxx x x x xx x x xx x x x 0.4 ooo o x x xx x x xx x o o 0.4 ooo o o x xx x x xo x o o
x x x x x x x x o o o x x x o x o o o o x x o x
x x x x xxx x x xx x
xx x x xx x x o o o x xxx x x xx o
oo o o ooo o o o o x xxx x x xx o
oo o o ooo o
x x x xx xx x xxx x x x x xx xxx x x xx x x o o ooo xx x xxx x x x o oo ooo o o oo o o o o ooo xx x xxx x x o o oo ooo o o oo o o
xxxx xx xx xx x x x xx x xxx x x x x oooo ox xx xx x o o oo oooo o o o o oooo ox xx xx x o o oo oooo o o o o
x x x x xxxx xxx x xx xx x xxxxx x x x x x xxx x x x o ox x x xxxx xxx x xx xx x xooxo o o o o o ooo o o o o ox o o xxxx xxx x xx xxooooooo o o o o o ooo o o o
x x x x xxxx x x xx x xx x x x
x x x o o x
ooo o o oo o xoo o o
o x o o o x
ooo o o oo o xoo o o
o
xxx x o o
0
ooo
0
x x x xx x xx x x o oo x oo ooo x x o oo x oo
xxxxxx x x x xx xx x x xx x x xx x x xx
x oooooo x x x xx xx x x oo o o oo o o o oooooo o x x xx xx x x oo o o oo o o o
0.2 x xxx xxx xx x x xxx x x xxx xx x xx x xx xx xxxx 0.2 o xxx xxx xx x x xxx x o ooo ooo oo o oo oxoooo o ooo 0.2 o xxx xxx xx x x xxx x o ooo ooo oo o oo oxoooo o ooo
x x x xx xx x x x x x x x x x xx oo o o o o x x x xx oo o o o o
x x xx x x x x o o oo o o o o o o oo o o o o
x xx x xx xx x xxxxx x xx x xx x xx x xx x xx xx x ooooo o oo x oo o oo x xx x xx xx x ooooo o oo x oo o oo
x xx x xxx xx xxxx x xx x xx xxx xx x x xx xxx x xx x xxx xx xooo ooo o oo xooo oo x o oo ooo x xx x xxx oo xooo ooo o oo xooo oo x o oo ooo
x x x x x x o o o o o o o o o o o o
x xxxx x x x x xx x xx x xxxx x o o o oo o o x xxxx o o o o oo o o
x xxxxxx x x x xx x x x xx x x x x x x x xoooox o o o oo o o o oo o o o o o o o x ooooox o o o oo o o o oo o o o o o o o
xxx x xxx x xx x x xx xx x xx xxx x xx xxx x xxx o oo o o oo xo o oo ooo o oo xxx x xxx o oo o o oo xo o oo ooo o oo
x x xxxx xx xx x x x x ooxo oo oo o o x x ooxo oo oo o o
0.2 0.4 0.6 0.8 0.2 0.4 0.6 0.8 0.2 0.4 0.6 0.8
V2 V2 V2
> mod.svm1$nSV
## [1] 480 480
> mod.svm2$nSV
## [1] 190 190
> mod.svm3$nSV
## [1] 166 165
101
Un autre exemple
• n = 1000 observations.
1.00 ● ●●
●● ● ● ●
●●
●● ● ● ● ● ●
●
●
● ●●● ● ● ●● ●
●● ● ● ●
● ● ● ●
●● ● ● ●
●
● ● ● ●
● ● ● ●
● ●
●●● ● ● ● ●●
● ● ● ● ● ● ● ● ●
● ● ● ● ●● ● ● ● ● ● ● ● ●●
● ●
● ● ●
● ● ● ● ●●
● ●
●● ● ● ●●
● ● ● ●●
● ● ●
● ● ● ●
● ●
●
● ●
● ●
● ● ● ● ●
● ● ●
● ●
● ●
● ● ●
●
0.75 ●
● ● ●
●
● ●
● ●
●
● ● ●
● ● ●
● ● ● ● ●
● ●
● ● ● ●
● ●
● ● ●
●
● ● ● ●
●● ● ●
● ●
● ● ●
● ● ● ●
● ● ●
● ●
● ● ● ●
●
● ●
● ● ●
● ●
● Y
● ● ●
●
● ●
X2
0.50 ● ● ● ● ● ● 0
● ● ● ●
● ●
● ●
● ● ● 1
● ● ● ● ● ● ●
● ●● ●
● ●
● ●
● ● ● ● ● ●
● ● ●
● ● ●
● ● ●● ● ●
● ●
●
● ●● ● ●
● ●
● ●
● ● ● ● ●
● ● ● ●
●
● ●
● ● ●
● ● ● ● ●●
● ●
● ●
0.25 ● ● ● ●
● ●
●
● ● ● ●
● ● ●
● ●
● ● ●
● ●
● ●● ● ●
● ● ●
● ● ●
● ● ● ● ●
● ●
●●
● ● ● ●
● ● ● ●
● ●
● ● ● ● ●
●
●● ● ●●
● ● ●
● ● ●
● ● ● ● ●
● ● ●
● ● ● ●
● ● ● ●
● ● ●●
● ●
0.00
102
> model1 <- svm(Y~.,data=donnees,cost=0.001,kernel="radial",gamma=5)
> model2 <- svm(Y~.,data=donnees,cost=1,kernel="radial",gamma=5)
> model3 <- svm(Y~.,data=donnees,cost=100000,kernel="radial",gamma=5)
0.00 0.25 0.50 0.75 1.00 0.00 0.25 0.50 0.75 1.00 0.00 0.25 0.50 0.75 1.00
103
Choix de C avec tune
104
> bestmod <- [Link]$[Link]
> summary(bestmod)
##
## Call:
## [Link](method = svm, train.x = Y ~ ., data = df3, ranges =
## list(cost = c(0.001, 0.01, 1, 10, 100, 1000)), kernel = "linear")
##
## Parameters:
## SVM-Type: C-classification
## SVM-Kernel: linear
## cost: 1
## gamma: 0.5
##
## Number of Support Vectors: 336
##
## ( 168 168 )
##
## Number of Classes: 2
##
## Levels:
## 0 1
105
Choix de C avec caret
> library(caret)
> gr <- [Link](C=c(0.001,0.01,1,10,100,1000))
> ctrl <- trainControl(method="repeatedcv",number=10,repeats=5)
> train(Y~.,data=df3,method="svmLinear",trControl=ctrl,tuneGrid=gr)
## Support Vector Machines with Linear Kernel
## No pre-processing
## Resampling: Cross-Validated (10 fold, repeated 5 times)
## Summary of sample sizes: 900, 900, 900, 900, 900, 900, ...
## Resampling results across tuning parameters:
## C Accuracy Kappa
## 1e-03 0.8700 0.7377051
## 1e-02 0.9188 0.8369121
## 1e+00 0.9304 0.8604317
## 1e+01 0.9292 0.8580356
## 1e+02 0.9294 0.8584333
## 1e+03 0.9294 0.8584333
## Accuracy was used to select the optimal model using the largest value.
## The final value used for the model was C = 1.
106
SVM - cas séparable
107
• Les solutions linéaires ne sont pas toujours intéressantes.
1.0
0.5
● ●
● ● ●
X1
0.0 ●● ● ●
● ● ●
●
−0.5
−1.0
108
• Les solutions linéaires ne sont pas toujours intéressantes.
1.00
1.0
0.75
0.5
● ●
●
X1^2
● ● 0.50
X1
0.0 ●● ● ●
● ● ●
●
0.25
−0.5
●
● ●●
●
●
−1.0 0.00 ●● ●● ●● ●●
−1.0 −0.5 0.0 0.5 1.0 0.00 0.25 0.50 0.75 1.00
X2 X2^2
108
• Les solutions linéaires ne sont pas toujours intéressantes.
1.00
1.0
0.75
0.5
● ●
●
X1^2
● ● 0.50
X1
0.0 ●● ● ●
● ● ●
●
0.25
−0.5
●
● ●●
●
●
−1.0 0.00 ●● ●● ●● ●●
−1.0 −0.5 0.0 0.5 1.0 0.00 0.25 0.50 0.75 1.00
X2 X2^2
108
• Les solutions linéaires ne sont pas toujours intéressantes.
1.00
1.0
0.75
0.5
● ●
●
X1^2
● ● 0.50
X1
0.0 ●● ● ●
● ● ●
●
0.25
−0.5
●
● ●●
●
●
−1.0 0.00 ●● ●● ●● ●●
−1.0 −0.5 0.0 0.5 1.0 0.00 0.25 0.50 0.75 1.00
X2 X2^2
Idée
Trouver une transformation des données telle que les données
transformées soient linéairement séparables.
108
Noyau
Définition
Soit Φ : X → H une application qui va de l’espace des observations X
dans un Hilbert H. Le noyau K entre x et x 0 associé à Φ est le produit
scalaire entre Φ(x) et Φ(x 0 ) :
K :X ×X →R
(x, x 0 ) 7→ hΦ(x), Φ(x 0 )iH .
109
Noyau
Définition
Soit Φ : X → H une application qui va de l’espace des observations X
dans un Hilbert H. Le noyau K entre x et x 0 associé à Φ est le produit
scalaire entre Φ(x) et Φ(x 0 ) :
K :X ×X →R
(x, x 0 ) 7→ hΦ(x), Φ(x 0 )iH .
Exemple
Si X = H = R2 et ϕ(x1 , x2 ) = (x12 , x22 ) alors
109
L’astuce noyau
110
L’astuce noyau
110
L’astuce noyau
110
L’astuce noyau
110
SVM dans l’espace original
111
SVM dans le feature space
112
SVM dans le feature space avec un noyau
113
Conclusion
114
Conclusion
114
Conclusion
1. K (x, x 0 ) = K (x 0 , x) ∀(x, x 0 ) ∈ X 2 ;
2. ∀(x1 , . . . , xN ) ∈ X N et ∀(a1 , . . . , aN ) ∈ RN
N X
X N
ai aj K (xi , xj ) ≥ 0.
i=1 j=1
114
Exemple
1.00
1.0
0.75
0.5
● ●
●
X1^2
● ● 0.50
X1
0.0 ●● ● ●
● ● ●
●
0.25
−0.5
●
● ●●
●
●
−1.0 0.00 ●● ●● ●● ●●
−1.0 −0.5 0.0 0.5 1.0 0.00 0.25 0.50 0.75 1.00
X2 X2^2
• Si
Φ: R2 → R3
√
(x1 , x2 ) 7→ (x12 , 2x1 x2 , x22 )
alors K (x, x 0 ) = (x t x 0 )2 (noyau polynomial de degré 2). 115
Exemples de noyau
kx − x 0 k
0
K (x, x ) = exp − .
2σ 2
116
Exemples de noyau
kx − x 0 k
0
K (x, x ) = exp − .
2σ 2
Remarque
N’importe quelle fonction définie positive fait l’affaire... Possibilité de
construire des noyaux (et donc de faire des svm) sur des objets plus
complexes (courbes, images, séquences de lettres...).
116
Le coin R - exemple 1
> svm(Y~.,data=donnees,cost=1,kernel="linear")
> svm(Y~.,data=donnees,cost=1,kernel="polynomial",degree=2)
> svm(Y~.,data=donnees,cost=1,kernel="radial",gamma=1)
o o o o o o
x o o
x o x o x o
o o o
1
x x o x x o
x x x x x o
x x o x o x
x x o x x x x o o
x x x o x o o o x
x o o
X1
X1
X1
0.0 xx x x 0.0 xx o o 0.0 xo o o
x x x
x o o
x x x x o x x x x o x x x x o
x x o x x x
o x o
x o o
0
0
−0.5 x x −0.5 x o −0.5 o o
x x o x o x
x x x
o x o
x o o o o o
o o o
−0.5 0.0 0.5 −0.5 0.0 0.5 −0.5 0.0 0.5
X2 X2 X2
117
Le coin R - exemple 2
> svm(Y~.,data=donnees,kernel="linear",cost=1)
> svm(Y~.,data=donnees,kernel="polynomial",degree=2,cost=1)
2 o x x o o o
●
1.5 xx xx x
x 1.5 oo ooo
o
x x o o
xx oo
●
● o x xxx xx o o ooo oo
x xxxx xx x o oooo oo o
●● ●
ooxx x x x x oooo o o o o
●
●
●● x xxx xx x x x x x x x xx o ooo oo o o o o o o o oo
1.0 xx 1.0 oo
1
●● x x x x xx x xxx x x x xx
o o o o oo o
o oo o o o oo
●
●●
● ● ● ●
x x x xx x x x
x xx x o o o oo o o x
o oo o
● ● ● ● xx xx x oo xx o
1 ●●
● ● ●● xx x x oo x o
● ● ●●
● ● ● ● x o
● 0.5 x o 0.5 x o
● ●● ● ● x x
●● ● x o
● xx xx
X1
X1
●
0.0 0.0
●●
X1
x x x x
0
x x x x
−0.5 x x x x −0.5 o o o o
● x x x x x o
x x x xx x o o o oo o
x x x o oo o
x xx
0
● xx x x x oo o x o
x x x x x o o o o o
● ● x x x o o o
● −1.0
xx xx xx xx xx x x −1.0
oo oo oo oo ooo o
● ● ● x xxx xx x x x xx x x o ooo oo o o o xx o o
x x xx xx o o oo oo
●
●
● o x x x x x o oo o
● ● x x x x xx x
xx o o o o oo o
oo
x x xxxx o o oooo
−1 ●
● ● x xx xx o oo oo
● ● ●
● ● ●●●● ● ● ● o x x o o o
● ●
●●●●
● −1.5 x x −1.5 o o
● ● ● ● ● ●
●● ●
●●
●
xx oo
●
●
● −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5
−1 0 1 X2 X2
X2
118
Le package kernlab
1.0
●
1.5 ● ●
● ●
●
●
● ● ●
● ●
●
1.0 ●● ● ●
● ● 0.5
● ●
●●
●● ●
●● ●
● ●
● ● ●
●● ● ●
●
● ●
●● ●
0.5 ●
● ●
●
●
0.0
X1
0.0
−0.5 ●
● ●●
● ● ● −0.5
● ● ● ●
● ●● ● ●
● ● ●
●
● ●●●
−1.0 ● ● ●●● ●●
●●
● ● ●
● ● ●
● ●● ●
● ●
● ●
● −1.0
−1.5
X2
119
Troisième partie III
Arbres
120
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
121
Présentation
122
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
123
Notations
124
Notations
124
Notations
124
Représentation des données
125
Représentation des données
Arbre binaire
Un arbre binaire de décision CART est
126
Arbres binaires
127
• A chaque étape, la méthode cherche une nouvelle division : une
variable et un seuil de coupure.
128
• A chaque étape, la méthode cherche une nouvelle division : une
variable et un seuil de coupure.
s1
128
• A chaque étape, la méthode cherche une nouvelle division : une
variable et un seuil de coupure.
s2
s1
128
• A chaque étape, la méthode cherche une nouvelle division : une
variable et un seuil de coupure.
s2
s1 s3
128
• A chaque étape, la méthode cherche une nouvelle division : une
variable et un seuil de coupure.
s2
s4
s1 s3
128
Représentation de l’arbre
s2 X 1 < s1 X1 ≥ s1
X 2 ≥ s2 X2 < s2
X 1 < s3 X 1 ≥ s3
s4
X 2 < s4 X 2 ≥ s4
s1 s3
129
Représentation de l’arbre
s2 X 1 < s1 X1 ≥ s1
X 2 ≥ s2 X2 < s2
X 1 < s3 X 1 ≥ s3
s4
X 2 < s4 X 2 ≥ s4
s1 s3
Règle de classification
On effectue un vote à la majorité dans les nœuds terminaux de l’arbre.
129
Définitions
Définition
• Les éléments de la partition d’un arbre sont appelés les nœuds
terminaux ou les feuilles de l’arbre.
• L’ensemble Rp constitue le nœud racine.
• Chaque division définit deux nœuds, les nœuds fils à gauche et à droite.
130
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
131
Questions
1. Comment choisir les découpes ?
2. Faut-il stopper les découpes ? Si oui, quand ?
132
Questions
1. Comment choisir les découpes ?
2. Faut-il stopper les découpes ? Si oui, quand ?
132
Critère de découpe
133
Critère de découpe
L’idée
Une fois I définie, on choisira le couple (j, s) qui maximise le gain
d’impureté :
∆(I) = P(N )I(N ) − (P(N1 )I(N1 (j, s)) + P(N2 )I(N2 (j, s))
133
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
134
• Une mesure naturelle de l’impureté d’un nœud N en régression est la
variance du nœud :
1 X
I(N ) = (Yi − ȲN )2 ,
|N |
i:Xi ∈N
Découpe en régression
A chaque étape, on choisit le couple (j, s) qui minimise
X X
(Yi − Ȳ1 )2 + (Yi − Ȳ2 )2
Xi ∈N1 (j,s) Xi ∈N2 (j,s)
1 P
où Ȳk = |Nk (j,s)| Xi ∈Nk (j,s) Yi , k = 1, 2.
135
Exemple
2.5
2.5
2.0
2.0
1.5
1.5
1.0
1.0
0.5
0.5
0.0
0.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
136
Exemple
2.5
2.5
2.0
2.0
1.5
1.5
1.0
1.0
0.5
0.5
0.0
0.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
136
Exemple
2.5
2.5
2.0
2.0
0,25 76,95 2,71
1.5
1.5
1.0
1.0
0.81
0.5
0.5
0.0
0.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0
136
Exemple
2.5
2.5
2.0
2.0
0,25 76,95 2,71
1.5
1.5
1.0
1.0
0.81
0.5
0.5
0.0
0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.0 0.2 0.4 0.6 0.8 1.0
Sélection
On choisira le seuil de droite.
136
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
137
• On se place ici dans le cas binaire, Y dans {0, 1} (voir Annexe pour le
cas multiclasse).
• Un nœud est pur si
• il contient beaucoup de 0 et peu de 1 (ou l’inverse) ;
• la proportion de 1 est proche de 1 (ou de 0).
138
• On se place ici dans le cas binaire, Y dans {0, 1} (voir Annexe pour le
cas multiclasse).
• Un nœud est pur si
• il contient beaucoup de 0 et peu de 1 (ou l’inverse) ;
• la proportion de 1 est proche de 1 (ou de 0).
Impureté de Gini
138
Exemple
I(N ) = 0.4872
1.00 1.00
● ●
● ●
● ●
● ● ● ●
●
● ●
●
0.75 0.75
● ●
● ●
● ●
● ●
Y Y
0.50 ● ● 0 0.50 ● ● 0
1 1
● ●
● ●
● ● ● ●
● ●
● ● ● ●
● ●
● ●
0.25 0.25
● ● ● ●
● ●
● ●
● ●
● ●
● ●
● ●
0.00 0.00
0.00 0.25 0.50 0.75 1.00 0.00 0.25 0.50 0.75 1.00
139
Exemple
1.00 1.00
● ●
● ●
● ●
● ● ● ●
●
● ●
●
0.75 0.75
● ●
● ●
● ●
● ●
Y Y
0.50 ● ● 0 0.50 ● ● 0
1 1
● ●
● ●
● ● ● ●
● ●
● ● ● ●
● ●
● ●
0.25 0.25
● ● ● ●
● ●
● ●
● ●
● ●
● ●
● ●
0.00 0.00
0.00 0.25 0.50 0.75 1.00 0.00 0.25 0.50 0.75 1.00
139
Exemple
1.00 1.00
● ●
● ●
● ●
● ● ● ●
●
● ●
●
0.75 0.75
● ●
● ●
● ●
● ●
Y Y
0.50 ● ● 0 0.50 ● ● 0
1 1
● ●
● ●
● ● ● ●
● ●
● ● ● ●
● ●
● ●
0.25 0.25
● ● ● ●
● ●
● ●
● ●
● ●
● ●
● ●
0.00 0.00
0.00 0.25 0.50 0.75 1.00 0.00 0.25 0.50 0.75 1.00
139
Exemple
1.00 1.00
● ●
● ●
● ●
● ● ● ●
●
● ●
●
0.75 0.75
● ●
● ●
● ●
● ●
Y Y
0.50 ● ● 0 0.50 ● ● 0
1 1
● ●
● ●
● ● ● ●
● ●
● ● ● ●
● ●
● ●
0.25 0.25
● ● ● ●
● ●
● ●
● ●
● ●
● ●
● ●
0.00 0.00
0.00 0.25 0.50 0.75 1.00 0.00 0.25 0.50 0.75 1.00
Conclusion
On choisira la découpe de gauche. 139
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
140
Questions
141
Questions
141
Questions
141
Questions
141
Un exemple en discrimination
1.00 ● ● ●
● ●
● ●
● ● ●
● ● ● ● ●
● ●
● ● ● ●
●
●
● ●● ● ● ● ●
● ● ●
● ● ● ● ●● ● ●
● ●
● ●
● ● ●●
● ● ● ●
● ● ● ● ●
● ●
● ● ● ● ●●
● ● ● ● ●
● ● ●● ●
●
●
●
●
0.75 ● ●
● ●
●
●
● ●
●
● ●
●
●
Y
0.50 ● 0
● 1
●
● ●
●
● ● ●
● ●
● ● ●
●
● ● ●
● ●
●
● ● ●
●●● ●
●
● ●
●● ● ●
0.25 ● ● ● ●
● ● ●
●
● ● ●
●
● ●
● ● ●
● ● ● ● ●
● ●
● ●
● ●● ●
● ● ●● ● ●
● ●
● ●
● ● ●
● ●
● ● ● ●
● ●● ● ●
● ● ●
● ● ●● ●
● ● ● ●●
● ●
●
● ● ● ● ●
●
0.00
142
Un exemple en discrimination
1.00 ● ● ●
● ●
● ●
● ● ●
● ● ● ● ●
● ●
● ● ● ●
●
●
● ●● ● ● ● ●
● ● ●
● ● ● ● ●● ● ●
● ●
● ●
● ● ●●
● ● ● ●
● ● ● ● ●
● ●
● ● ● ● ●●
● ● ● ● ●
● ● ●● ●
●
●
●
●
0.75 ● ●
● ●
●
●
● ●
●
● ●
●
●
Y
0.50 ● 0
● 1
●
● ●
●
● ● ●
● ●
● ● ●
●
● ● ●
● ●
●
● ● ●
●●● ●
●
● ●
●● ● ●
0.25 ● ● ● ●
● ● ●
●
● ● ●
●
● ●
● ● ●
● ● ● ● ●
● ●
● ●
● ●● ●
● ● ●● ● ●
● ●
● ●
● ● ●
● ●
● ● ● ●
● ●● ● ●
● ● ●
● ● ●● ●
● ● ● ●●
● ●
●
● ● ● ● ●
●
0.00
Arbre optimal ?
Intuitivement, on a envie de faire à peu près 5 classes.
142
Arbre « maximal »
> library(rpart)
> library([Link])
> arbre1 <- rpart(Y~.,data=donnees[1:350,],cp=0.0001,minsplit=2)
> prp(arbre1)
X2 >= 0.78
X2 < 0.4
X2 >= 0.32 X2 < 0.42 X1 < 0.42 X1 < 0.038 X2 >= 0.18 X1 >= 0.49
X1 >= 0.66 X1 < 0.77 0 0 0 X1 >= 0.2
X1 < 0.66 1 X1 >= 0.95 1 1 1 X1 < 0.12 X2 < 0.43 X2 >= 0.59
0 0 0 X2 >= 0.42 X2 >= 0.8 X1 >= 0.028 X2 < 0.2 X1 < 0.2 X1 < 0.49
1 X1 < 0.8 1 X1 >= 0.35 1 X1 < 0.038 1 X1 >= 0.21 1 X2 < 0.31 1
0 X1 < 0.96 0 X2 < 0.92 0 0 X2 < 0.1 0 X2 >= 0.37 0 X2 < 0.62
1 1 X2 >= 0.23 1 1 1 1 1
0 X1 < 0.36 0 X1 < 0.058 0 X1 < 0.1 0 X1 < 0.55
1 1 1
0 0 X2 < 0.61
1
0
143
Un arbre plus petit
0 1 0 1
144
Comparaison des deux arbres
145
Comparaison des deux arbres
Conclusion
La performance n’augmente pas forcément avec la profondeur.
145
Sur-ajustement pour les arbres
Train error
Test error
OVERFITTING
Complexity (λ)
Remarque
La complexité d’un arbre est mesurée par sa taille ou profondeur. 146
Biais et variance
La profondeur régule le compromis biais/variance :
147
Biais et variance
La profondeur régule le compromis biais/variance :
Tmax = T0 ⊃ T1 ⊃ . . . ⊃ TK .
147
• La construction de la suite de sous-arbres emboitées est détaillée en
Annexe.
• Sur R, on obtient cette sous-suite à l’aide de la fonction printcp :
> arbre <- rpart(Y~.,data=donnees,cp=0.0001,minsplit=2)
> printcp(arbre)
##
## Classification tree:
## rpart(formula = Y ~ ., data = donnees, cp = 1e-04, minsplit = 2)
##
## Variables actually used in tree construction:
## [1] X1 X2
##
## Root node error: 204/500 = 0.408
##
## n= 500
##
## CP nsplit rel error xerror xstd
## 1 0.2941176 0 1.000000 1.00000 0.053870
## 2 0.1225490 1 0.705882 0.72059 0.049938
## 3 0.0931373 3 0.460784 0.51471 0.044646
## 4 0.0637255 4 0.367647 0.42647 0.041555
## 5 0.0122549 5 0.303922 0.35294 0.038483
## 6 0.0098039 7 0.279412 0.35294 0.038483
## 7 0.0049020 9 0.259804 0.35784 0.038704
## 8 0.0040107 25 0.181373 0.39216 0.040184
## 9 0.0036765 41 0.112745 0.39706 0.040386
## 10 0.0032680 49 0.083333 0.40196 0.040586
## 11 0.0024510 52 0.073529 0.41667 0.041174
148
## 12 0.0001000 82 0.000000 0.45098 0.042473
Sorties printcp
149
Sorties printcp
149
Tracé de l’arbre final
1
0.59
100%
yes X1 >= 0.57 no
0 1
0.36 0.76
42% 58%
X2 < 0.37 X2 >= 0.8
1 0
0.56 0.34
25% 12%
X2 >= 0.77 X1 >= 0.22
0 0 1 0 1 1
0.07 0.09 0.80 0.10 0.81 0.88
17% 9% 16% 8% 4% 45%
150
Règle de classification et score par arbre
151
Règle de classification et score par arbre
• Règle de classification :
( P P
1 si i:Xi ∈N (x) 1Yi =1 ≥ i:Xi ∈N (x) 1Yi =0
ĝ (x) =
0 sinon,
151
Règle de classification et score par arbre
• Règle de classification :
( P P
1 si i:Xi ∈N (x) 1Yi =1 ≥ i:Xi ∈N (x) 1Yi =0
ĝ (x) =
0 sinon,
• Score :
1 X
Ŝ(x) = P̂(Y = 1|X = x) = 1Yi =1 .
n
i:Xi ∈N (x)
151
Fonction predict
152
Bilan
153
Bilan
153
Bilan
153
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
154
• Les Yi , i = 1, . . . , n sont à valeurs dans {1, . . . , K }.
155
• Les Yi , i = 1, . . . , n sont à valeurs dans {1, . . . , K }.
• On cherche une fonction I telle que I(N ) soit
• petite si un label majoritaire se distingue clairement dans N ;
• grande sinon.
155
• Les Yi , i = 1, . . . , n sont à valeurs dans {1, . . . , K }.
• On cherche une fonction I telle que I(N ) soit
• petite si un label majoritaire se distingue clairement dans N ;
• grande sinon.
Impureté
L’impureté d’un nœud N en classification se mesure selon
K
X
I(N ) = f (pj (N ))
j=1
où
155
Exemples de fonctions f
156
Exemples de fonctions f
156
Exemples de fonctions f
156
Exemples de fonctions f
Cas binaire
Dans ce cas on a
156
Impureté dans le cas binaire
0.6
0.4
indice
impurete
gini
information
0.2
0.0
157
Découpe en classification supervisée
158
Découpe en classification supervisée
Choix de (j, s)
Pour une mesure d’impureté I donnée, on choisira le couple (j, s) qui
maximise le gain d’impureté :
∆(I) = P(N )I(N ) − (P(N1 )I(N1 (j, s)) + P(N2 )I(N2 (j, s)).
158
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
159
Construction de la suite de sous arbres
160
Construction de la suite de sous arbres
Définition
Soit α > 0, on pose
|T |
X
Cα (T ) = Nm R(Nm ) + α|T |.
m=1
160
Idée
• Cα (T ) est un critère qui prend en compte l’adéquation d’un arbre et sa
complexité.
• L’idée est de chercher un arbre Tα qui minimise Cα (T ) pour une
valeur de α bien choisie.
161
Idée
• Cα (T ) est un critère qui prend en compte l’adéquation d’un arbre et sa
complexité.
• L’idée est de chercher un arbre Tα qui minimise Cα (T ) pour une
valeur de α bien choisie.
Remarque
• α = 0 =⇒ Tα = T0 = Tmax .
• α = +∞ =⇒ Tα = T+∞ =arbre sans coupure.
161
Idée
• Cα (T ) est un critère qui prend en compte l’adéquation d’un arbre et sa
complexité.
• L’idée est de chercher un arbre Tα qui minimise Cα (T ) pour une
valeur de α bien choisie.
Remarque
• α = 0 =⇒ Tα = T0 = Tmax .
• α = +∞ =⇒ Tα = T+∞ =arbre sans coupure.
• α est appelé paramètre de complexité et Cα (T ) le cout de l’arbre T .
161
Théorème ([Breiman et al., 1984])
Il existe une sous-suite finie α0 = 0 < α1 < . . . < αM avec M < |Tmax | et
une suite associée d’arbres emboités
Tmax = T0 ⊃ T1 ⊃ . . . ⊃ TM
Tm = argmin Cα (T ).
T
162
Théorème ([Breiman et al., 1984])
Il existe une sous-suite finie α0 = 0 < α1 < . . . < αM avec M < |Tmax | et
une suite associée d’arbres emboités
Tmax = T0 ⊃ T1 ⊃ . . . ⊃ TM
Tm = argmin Cα (T ).
T
T0 T1 TM
α0 = 0 α1 α2 .......... αM
162
Théorème ([Breiman et al., 1984])
Il existe une sous-suite finie α0 = 0 < α1 < . . . < αM avec M < |Tmax | et
une suite associée d’arbres emboités
Tmax = T0 ⊃ T1 ⊃ . . . ⊃ TM
Tm = argmin Cα (T ).
T
T0 T1 TM
α0 = 0 α1 α2 .......... αM
Conséquences
• On se ramène à une sous-suite finie d’arbres (emboités).
• Il reste à choisir un arbre (ou une valeur de α). 162
Exemple
> printcp(arbre)
Classification tree:
rpart(formula = Y ~ ., data = donnees, cp = 1e-04, minsplit = 2)
Variables actually used in tree construction:
[1] X1 X2
Root node error: 204/500 = 0.408
n= 500
CP nsplit rel error xerror xstd
1 0.2941176 0 1.000000 1.00000 0.053870
2 0.1225490 1 0.705882 0.71569 0.049838
3 0.0931373 3 0.460784 0.49020 0.043844
4 0.0637255 4 0.367647 0.43627 0.041928
5 0.0122549 5 0.303922 0.34314 0.038034
6 0.0098039 7 0.279412 0.34314 0.038034
7 0.0049020 9 0.259804 0.36275 0.038923
8 0.0040107 25 0.181373 0.34804 0.038260
9 0.0036765 41 0.112745 0.39216 0.040184
10 0.0032680 49 0.083333 0.40196 0.040586
11 0.0024510 52 0.073529 0.41176 0.040980
12 0.0001000 82 0.000000 0.43137 0.041742
163
> arbre1 <- prune(arbre,cp=0.005)
> prp(arbre)
> prp(arbre1)
X2 >= 0.8
X2 < 0.37
X1 >= 0.6 0 0 0 X2 >= 0.95 X2 < 0.94 X1 >= 0.015 X2 < 0.62
X1 < 0.59 1 X1 < 0.59 X2 < 0.95 1 X1 >= 0.079 1 1 X1 >= 0.54 X1 >= 0.55
0 X2 >= 0.77 X1 >= 0.22 X2 < 0.017
X2 < 0.3 X1 >= 0.66 X1 >= 0.66 0 X1 < 0.35 0 X2 >= 0.027 X2 < 0.19 0 X1 >= 0.2
X2 >= 0.32 1 X1 < 0.64 1 X2 < 0.42 1 1 1 1 X1 >= 0.54 X1 < 0.3 X2 < 0.43 1
X1 >= 0.66 0 0 X1 < 0.8 X1 >= 0.58 0 0 0 X2 < 0.07 0 X1 < 0.56 0 X1 < 0.55
0 X2 < 0.4 0 1 0 1
X1 < 0.66 1 1 X1 >= 0.95 1 1 X1 >= 0.16 X2 >= 0.23 1 X2 >= 0.78 1 1
0 1 0 1
1 1 X2 < 0.1 X1 >= 0.41 1 1 1
X2 >= 0.26 1 1 1 1
1 1 1
0 X2 >= 0.074 0
Tmax = T0 ⊃ T1 ⊃ . . . ⊃ TM
164
Sélection d’un arbre
165
Sélection d’un arbre
165
Elagage/pruning - Algorithme
Algorithme
1. Calculer la suite α0 = 0 < α1 < . . . < αM et poser
√ √
β1 = 0, β2 = α1 α2 , β3 = α2 α3 , ..., βM+1 = ∞.
166
• Les estimations R(m) se trouvent dans la colonne xerror de la fonction
printcp :
CP nsplit rel error xerror xstd
1 0.2941176 0 1.000000 1.00000 0.053870
2 0.1225490 1 0.705882 0.71569 0.049838
3 0.0931373 3 0.460784 0.49020 0.043844
4 0.0637255 4 0.367647 0.43627 0.041928
5 0.0122549 5 0.303922 0.34314 0.038034
6 0.0098039 7 0.279412 0.34314 0.038034
7 0.0049020 9 0.259804 0.36275 0.038923
167
• Les estimations R(m) se trouvent dans la colonne xerror de la fonction
printcp :
CP nsplit rel error xerror xstd
1 0.2941176 0 1.000000 1.00000 0.053870
2 0.1225490 1 0.705882 0.71569 0.049838
3 0.0931373 3 0.460784 0.49020 0.043844
4 0.0637255 4 0.367647 0.43627 0.041928
5 0.0122549 5 0.303922 0.34314 0.038034
6 0.0098039 7 0.279412 0.34314 0.038034
7 0.0049020 9 0.259804 0.36275 0.038923
size of tree
1 2 4 5 6 8 10 26 42 50 53 83
1.0
●
X−val Relative Error
0.8
●
0.6
● ●
0.4
● ●
●
●
● ● ●
0.2
cp
167
Tracé de l’arbre final
0 1 0 1
168
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
169
• CHAID : Chi2 Automatic Interaction Detection [Kass, 1980].
170
• CHAID : Chi2 Automatic Interaction Detection [Kass, 1980].
170
χ2 d’indépendance : rappel
171
χ2 d’indépendance : rappel
171
χ2 d’indépendance : rappel
171
χ2 d’indépendance : rappel
Propriété
Sous H0 la statistique
2
NI • N•J
I X
X J
n − Nij
Xn = NI • N•J
i=1 j=1 n
172
Le test
Propriété
Sous H0 la statistique
2
NI • N•J
I X
X J
n − Nij
Xn = NI • N•J
i=1 j=1 n
Conséquence
• Au niveau α, on rejettera l’hypothèse H0 si Xobs est supérieure au
quantile d’ordre 1 − α de la loi du χ2(I −1)(J−1) .
172
Le test
Propriété
Sous H0 la statistique
2
NI • N•J
I X
X J
n − Nij
Xn = NI • N•J
i=1 j=1 n
Conséquence
• Au niveau α, on rejettera l’hypothèse H0 si Xobs est supérieure au
quantile d’ordre 1 − α de la loi du χ2(I −1)(J−1) .
• Une forte valeur de Xobs (ou une faible valeur de la probabilité
critique) signifiera un lien fort entre les deux variables.
172
Chaid : le principe
173
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
174
1. On se place dans un nœud N et on considère une variable Xj à Mj
modalités ;
2. Les observations dans le nœud définissent la table de contingence
suivante
M1 . . . Mj
1
..
.
K
3. ∀(Mi , M` ) ∈ {M1 , . . . , Mj }2 , on calcule la statistique du χ2 croisant Y
et les modalités (Mi , M` ) =⇒ χ2 (Mi , M` ) et p(Mi , M` ) la probabilité
critique associée.
175
1. On se place dans un nœud N et on considère une variable Xj à Mj
modalités ;
2. Les observations dans le nœud définissent la table de contingence
suivante
M1 . . . Mj
1
..
.
K
3. ∀(Mi , M` ) ∈ {M1 , . . . , Mj }2 , on calcule la statistique du χ2 croisant Y
et les modalités (Mi , M` ) =⇒ χ2 (Mi , M` ) et p(Mi , M` ) la probabilité
critique associée.
Remarque
• 2 modalités discriminantes =⇒ dépendance forte dans le test avec Y =⇒
"Fort rejet" de H0 =⇒ χ2 élevé ou pc faible ;
175
1. On se place dans un nœud N et on considère une variable Xj à Mj
modalités ;
2. Les observations dans le nœud définissent la table de contingence
suivante
M1 . . . Mj
1
..
.
K
3. ∀(Mi , M` ) ∈ {M1 , . . . , Mj }2 , on calcule la statistique du χ2 croisant Y
et les modalités (Mi , M` ) =⇒ χ2 (Mi , M` ) et p(Mi , M` ) la probabilité
critique associée.
Remarque
• 2 modalités discriminantes =⇒ dépendance forte dans le test avec Y =⇒
"Fort rejet" de H0 =⇒ χ2 élevé ou pc faible ;
• Regrouper les modalités peu discriminantes revient donc à regrouper celles
qui ont un χ2 faible ou une pc grande.
175
4. On choisit la paire de modalités qui minimise le χ2 :
176
4. On choisit la paire de modalités qui minimise le χ2 :
5. Si p(M̃i , M̃` ) > α2 (α2 ∈]0, 1[ fixé par l’utilisateur) alors on regroupe
les modalités M̃i et M̃` et on retourne à l’étape 2 avec le tableau à
Mj − 1 modalités
M1 ... Mj − 1
1
..
.
K
Sinon, on stoppe les regroupements.
176
Exemple i
177
Exemple ii
Exemple de regroupement
Les modalités divorced et never married sont regroupées (si α2 < 0.742).
178
Exemple iii
• En effet
> ctrl <- chaid_control(minsplit = 20,alpha2=0.74)
> a1 <- chaid(vote3~marstat,data=USvoteS,control = ctrl)
> plot(a1)
179
Exemple iv
1
marstat
married widowed
divorced, never married
Gore
Gore
0.8 0.8 0.8
Bush
0 0 Bush 0
180
> ctrl <- chaid_control(minsplit = 20,alpha2=0.75)
> a2 <- chaid(vote3~marstat,data=USvoteS,control = ctrl)
> plot(a2)
1
marstat
Gore
Gore
Gore
0.8 0.8 0.8 0.8
Bush
Bush
Bush
0 0 0 0 181
Variables continues et ordinales
182
Variables continues et ordinales
182
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
183
Un autre χ2 pour choisir la variable
184
Un autre χ2 pour choisir la variable
184
Un autre χ2 pour choisir la variable
184
Un autre χ2 pour choisir la variable
184
Correction de Bonferroni
185
Correction de Bonferroni
p 0 (Xj ) = bj p(Xj )
185
Correction de Bonferroni
p 0 (Xj ) = bj p(Xj )
185
• On choisira la variable j ? qui minimise p 0 (Xj )...
186
• On choisira la variable j ? qui minimise p 0 (Xj )...
• à condition que p 0 (Xj ) soit plus petit qu’un certain seuil α4 fixé par
l’utilisateur.
186
• On choisira la variable j ? qui minimise p 0 (Xj )...
• à condition que p 0 (Xj ) soit plus petit qu’un certain seuil α4 fixé par
l’utilisateur.
186
Critère d’arrêt
187
Critère d’arrêt
Remarque
Sur R, on pourra regarder la fonction [Link] :
187
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
188
• En plus des paramètres associés au critère d’arrêt, deux paramètres
sont à calibrer pour construire l’arbre : les niveaux α2 et α4 .
189
• En plus des paramètres associés au critère d’arrêt, deux paramètres
sont à calibrer pour construire l’arbre : les niveaux α2 et α4 .
189
• En plus des paramètres associés au critère d’arrêt, deux paramètres
sont à calibrer pour construire l’arbre : les niveaux α2 et α4 .
Choix de α4
Degrés d’exigence pour couper un nœud :
189
Choix de α2
Degrés d’exigence pour regrouper des modalités :
190
Illustration α4 i
191
Illustration α4 ii
1
marstat
Gore
0.8 0.8
0.6 0.6
0.4 0.4
0.2 0.2
Bush
Bush
0 0
192
Illustration α4 iii
1
marstat
<HS, HS,
College,
>HS Post Coll male
female
4 16 25
empstat empstat ager
yes, no
retired < HS
HS, >HS, College, Post Coll <HS,
>HS,
HSCollege, Post Coll
7 19 28 33
educr empstat educr marstat
male
female divorced,
married, widowed
never married 18−24,
yes,
25−34,
retired
no 35−44,
65+ 45−54, 55−64
Node
Node
3 (n Node
=
6 311)
(n Node
=9189)
(nNode
=
1023)
(n
Node
11
= Node
9)
(n13
= 6)
(n
Node
14= (n
3)
Node
18
= Node
19)
(n21
= Node
8)
(n
22=(n
Node
3)23
= 104)
Node
(n24
= 26)
(n
Node
26= (n
18)
Node
29
= 127)
(n
Node
31
= 17)
(n
Node
32
= 16)
(n
Node
35
= 26)
(n
Node
36
= 10)
(n37
= 32)
(n = 14)
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
Bush Gore
0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8
0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6
0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4
0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
193
Illustration α2 i
194
Illustration α2 ii
1
marstat
married
widowed, divorced, never married
2 5
educr gender
male female
7
<HS, HS,
College,
>HS Post Coll ager
Node 3 (n = 311) Node 4 (n = 249) Node 6 (n = 159) Node 8 (n = 127) Node 9 (n = 115)
1 1 1 1 1
Gore
Gore
Gore
Gore
Gore
0.8 0.8 0.8 0.8 0.8
Bush
Bush
Bush
Bush
0 0 0 0 0
195
Illustration α2 iii
1
marstat
marrieddivorced,
widowed never married
2 18 21
educr ager gender
< HSPost
HS, >HS College
Coll male female
4 14 22 25
ager empstat empstat educr
18−24,
35−44
45−54
25−34
55−64
65+ 18−24, 25−34,
55−64,
35−44,
65+ 45−54 > HS
<HS,
College
Post Coll
6 10 29
educr gender no,
yesretired no,
yesretired empstat
>HS, <HS,
College,
HS Post Coll
male
female yes,
retired
no
Node
Node
3 (n
Node
5
= (n
26)
Node
7
= (n
33)
Node
8
= (n
29)
Node
9
= (n
55)
Node
11
= 71)
Node
(n
12=Node
(n
19)
13= Node
(n
26)
15=(n
Node
52)
16
= 113)
(n
Node
17
= Node
(n
53)
19
=Node
83)
(n
20=Node
(n
23
9)=(n
Node
92)
24
= 107)
Node
(n
26= Node
(n
29)
27= Node
(n
37)
28= (n
58)
Node
30
= (n
45)
31
= 20)
(n = 4)
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
Gore
0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8 0.8
0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6 0.6
0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
Bush
0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
196
En pratique...
197
En pratique...
197
En pratique...
197
Exemple i
• On veut expliquer avec un arbre CHAID la variable chd par les autres
variables du jeu de données SAheart.
> donnees <- SAheart
> donnees$chd <- [Link](donnees$chd)
> for (i in c(1:4,6:9)){donnees[,i] <- [Link](donnees[,i])}
198
Exemple ii
199
Exemple iii
200
Exemple iv
1
age
3 6
typea famhist
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
69,45,
70,46,
71,47,
72,48,
73,49,
74,50,
75,51,
77,52,
7853, 54, Absent
55, 56, 57,
Present
58, 59, 60, 61, 62, 63, 64, 65
Node 2 (n = 67) Node 4 (n = 209) Node 5 (n = 14) Node 7 (n = 82) Node 8 (n = 90)
1 1 1 1 1
0
0
0.8 0.8 0.8 0.8 0.8
1
0 0 0 0 0
201
Avec Caret i
462 samples
9 predictor
2 classes: ’0’, ’1’
No pre-processing
Resampling: Repeated Train/Test Splits Estimated (1 reps, 75%)
Summary of sample sizes: 300
202
Avec Caret ii
203
Avec Caret iii
204
Avec Caret iv
205
Avec Caret v
Accuracy was used to select the optimal model using the largest value.
The final values used for the model were alpha2 = 0.01, alpha3 = -1
and alpha4 = 0.21.
206
Arbres binaires
Choix des découpes
Cas de la régression
Cas de la classification supervisée
Elagage
Annexe 1 : impureté, cas multiclasses
Annexe 2 : algorithme élagage
Annexe 3 : arbres Chaid
Regroupement des modalités
Division d’un nœud
Choix des paramètres
Bibliographie
207
Références i
208
Références ii
209
Références iii
210
Références iv
Stone, C. J. (1977).
Consistent nonparametric regression.
Annals of Statistics, 5 :595–645.
211
Quatrième partie IV
Agrégation
212
Bagging et forêts aléatoires
Bagging
Forêts aléatoires
Boosting
Algorithmes de gradient boosting
Choix des paramètres
Bibliographie
213
Les approches que nous allons étudier sont basées sur l’agrégation :
214
Les approches que nous allons étudier sont basées sur l’agrégation :
214
Les approches que nous allons étudier sont basées sur l’agrégation :
Questions
1. Intérêt d’agréger ?
2. Comment construire les gk pour que ĝ soit performant ?
214
Bagging et forêts aléatoires
Bagging
Forêts aléatoires
Boosting
Algorithmes de gradient boosting
Choix des paramètres
Bibliographie
215
Cadre
216
Cadre
216
Cadre
• Notations :
• (X , Y ) un couple aléatoire à valeurs dans Rd × R.
• Dn = (X1 , Y1 ), . . . , (Xn , Yn ) un n-échantillon i.i.d. de même loi que
(X , Y ).
216
Bagging et forêts aléatoires
Bagging
Forêts aléatoires
Boosting
Algorithmes de gradient boosting
Choix des paramètres
Bibliographie
217
• Le bagging désigne un ensemble de méthodes introduit par Léo
Breiman [Breiman, 1996].
218
Pourquoi agréger ?
Y = m(X ) + ε.
• On note
B
1 X
m̂B (x) = mk (x)
B
k=1
un estimateur de m obtenu en agrégeant B estimateurs m1 , . . . , mB .
219
Pourquoi agréger ?
Y = m(X ) + ε.
• On note
B
1 X
m̂B (x) = mk (x)
B
k=1
un estimateur de m obtenu en agrégeant B estimateurs m1 , . . . , mB .
• Rappels : m̂B (x) = m̂B (x; (X1 , Y1 ), . . . , (Xn , Yn )) et
mk (x) = mk (x; (X1 , Y1 ), . . . , (Xn , Yn )) sont des variables aléatoires.
219
Pourquoi agréger ?
Y = m(X ) + ε.
• On note
B
1 X
m̂B (x) = mk (x)
B
k=1
un estimateur de m obtenu en agrégeant B estimateurs m1 , . . . , mB .
• Rappels : m̂B (x) = m̂B (x; (X1 , Y1 ), . . . , (Xn , Yn )) et
mk (x) = mk (x; (X1 , Y1 ), . . . , (Xn , Yn )) sont des variables aléatoires.
219
Biais et variance
220
Biais et variance
Conclusion
Agréger ne modifie pas le biais.
220
Biais et variance
Conclusion
Agréger ne modifie pas le biais.
• Variance :
1
V[m̂B (x)] = V[mk (x)].
B
Conclusion
Agréger tue la variance.
220
• Les conclusions précédentes sont vraies sous l’hypothèse que les
variables aléatoires m1 , . . . , mB sont i.i.d.
221
• Les conclusions précédentes sont vraies sous l’hypothèse que les
variables aléatoires m1 , . . . , mB sont i.i.d.
221
• Les conclusions précédentes sont vraies sous l’hypothèse que les
variables aléatoires m1 , . . . , mB sont i.i.d.
Idée
Atténuer la dépendance entre les estimateurs mk , k = 1, . . . , B en
introduisant de nouvelles sources d’aléa.
221
Idée : échantillons bootstrap
• Echantillon initial :
1 2 3 4 5 6 7 8 9 10
222
Idée : échantillons bootstrap
• Echantillon initial :
1 2 3 4 5 6 7 8 9 10
• Echantillons bootstrap :
3 4 6 10 3 9 10 7 7 1 m1
2 8 6 2 10 10 2 9 5 6 m2
2 9 4 4 7 7 2 3 6 7 m3
6 1 3 3 9 3 8 10 10 1 m4
3 7 10 3 2 8 6 9 10 2 m5
.. ..
. .
7 10 3 4 9 10 10 8 6 1 mB
222
Idée : échantillons bootstrap
• Echantillon initial :
1 2 3 4 5 6 7 8 9 10
• Echantillons bootstrap :
3 4 6 10 3 9 10 7 7 1 m1
2 8 6 2 10 10 2 9 5 6 m2
2 9 4 4 7 7 2 3 6 7 m3
6 1 3 3 9 3 8 10 10 1 m4
3 7 10 3 2 8 6 9 10 2 m5
.. ..
. .
7 10 3 4 9 10 10 8 6 1 mB
• A la fin, on agrège :
B
1 X
m̂B (x) = mk (x).
B
k=1
222
Bagging
223
Bagging
223
Bagging
Pour k = 1, . . . , B :
224
Tirage de l’échantillon bootstrap
224
Tirage de l’échantillon bootstrap
224
Tirage de l’échantillon bootstrap
Conséquence
Les estimateurs agrégés contiennent 2 sources d’aléa (échantillon et tirage
bootstrap) :
mk (x) = m(x, θk , Dn ).
224
Choix du nombre d’itérations
225
Choix du nombre d’itérations
225
Choix du nombre d’itérations
225
Choix du nombre d’itérations
Conséquence importante
Le nombre d’itérations B n’est pas un paramètre à calibrer, il est conseillé
de le prendre le plus grand possible en fonction du temps de calcul.
225
Choix du régresseur
1 − ρ(x)
V[m̂B (x)] = ρ(x)V[m(x, θk , Dn )] + V[m(x, θk , Dn )]
B
où ρ(x) = corr (m(x, θk , Dn ), m(x, θk 0 , Dn ))) pour k 6= k 0 .
226
Choix du régresseur
1 − ρ(x)
V[m̂B (x)] = ρ(x)V[m(x, θk , Dn )] + V[m(x, θk , Dn )]
B
où ρ(x) = corr (m(x, θk , Dn ), m(x, θk 0 , Dn ))) pour k 6= k 0 .
Conclusion
• Bagger ne modifie pas le biais.
226
Choix du régresseur
1 − ρ(x)
V[m̂B (x)] = ρ(x)V[m(x, θk , Dn )] + V[m(x, θk , Dn )]
B
où ρ(x) = corr (m(x, θk , Dn ), m(x, θk 0 , Dn ))) pour k 6= k 0 .
Conclusion
• Bagger ne modifie pas le biais.
• B grand =⇒ V[m̂B (x)] ≈ ρ(x)V[m̂k (x, θk (Dn )]
226
Choix du régresseur
1 − ρ(x)
V[m̂B (x)] = ρ(x)V[m(x, θk , Dn )] + V[m(x, θk , Dn )]
B
où ρ(x) = corr (m(x, θk , Dn ), m(x, θk 0 , Dn ))) pour k 6= k 0 .
Conclusion
• Bagger ne modifie pas le biais.
• B grand =⇒ V[m̂B (x)] ≈ ρ(x)V[m̂k (x, θk (Dn )] =⇒ la variance
diminue d’autant plus que la corrélation entre les prédicteurs diminue.
226
Choix du régresseur
1 − ρ(x)
V[m̂B (x)] = ρ(x)V[m(x, θk , Dn )] + V[m(x, θk , Dn )]
B
où ρ(x) = corr (m(x, θk , Dn ), m(x, θk 0 , Dn ))) pour k 6= k 0 .
Conclusion
• Bagger ne modifie pas le biais.
• B grand =⇒ V[m̂B (x)] ≈ ρ(x)V[m̂k (x, θk (Dn )] =⇒ la variance
diminue d’autant plus que la corrélation entre les prédicteurs diminue.
• Il est donc nécessaire d’agréger des estimateurs sensibles à de légères
perturbations de l’échantillon.
226
Choix du régresseur
1 − ρ(x)
V[m̂B (x)] = ρ(x)V[m(x, θk , Dn )] + V[m(x, θk , Dn )]
B
où ρ(x) = corr (m(x, θk , Dn ), m(x, θk 0 , Dn ))) pour k 6= k 0 .
Conclusion
• Bagger ne modifie pas le biais.
• B grand =⇒ V[m̂B (x)] ≈ ρ(x)V[m̂k (x, θk (Dn )] =⇒ la variance
diminue d’autant plus que la corrélation entre les prédicteurs diminue.
• Il est donc nécessaire d’agréger des estimateurs sensibles à de légères
perturbations de l’échantillon.
• Les arbres sont connus pour posséder de telles propriétés.
226
Bagging et forêts aléatoires
Bagging
Forêts aléatoires
Boosting
Algorithmes de gradient boosting
Choix des paramètres
Bibliographie
227
Rappels sur les arbres
s2 X 1 < s1 X1 ≥ s1
X 2 ≥ s2 X2 < s2
X 1 < s3 X 1 ≥ s3
s4
X 2 < s4 X 2 ≥ s4
s1 s3
228
Rappels sur les arbres
s2 X 1 < s1 X1 ≥ s1
X 2 ≥ s2 X2 < s2
X 1 < s3 X 1 ≥ s3
s4
X 2 < s4 X 2 ≥ s4
s1 s3
Paramètre à calibrer
Profondeur
• Comme son nom l’indique, une forêt aléatoire est définie à partir d’un
ensemble d’arbres.
229
Définition
• Comme son nom l’indique, une forêt aléatoire est définie à partir d’un
ensemble d’arbres.
Définition
Soit Tk (x), k = 1, . . . , B des prédicteurs par arbre (Tk : Rd → R). Le
prédicteur des forêts aléatoires est obtenu par agrégation de cette
collection d’arbres :
B
1 X
T̂B (x) = Tk (x).
B
k=1
229
Forêts aléatoires
230
Forêts aléatoires
• Les forêts aléatoires les plus utilisées sont (de loin) celles proposées par
Léo Breiman (au début des années 2000).
230
Forêts aléatoires
• Les forêts aléatoires les plus utilisées sont (de loin) celles proposées par
Léo Breiman (au début des années 2000).
230
Forêts aléatoires
• Les forêts aléatoires les plus utilisées sont (de loin) celles proposées par
Léo Breiman (au début des années 2000).
230
s2 X 1 < s1 X1 ≥ s1
X 2 ≥ s2 X2 < s2
X 1 < s3 X 1 ≥ s3
s4
X 2 < s4 X 2 ≥ s4
s1 s3
231
s2 X 1 < s1 X1 ≥ s1
X 2 ≥ s2 X2 < s2
X 1 < s3 X 1 ≥ s3
s4
X 2 < s4 X 2 ≥ s4
s1 s3
231
s2 X 1 < s1 X1 ≥ s1
X 2 ≥ s2 X2 < s2
X 1 < s3 X 1 ≥ s3
s4
X 2 < s4 X 2 ≥ s4
s1 s3
232
Algorithme : randomforest
Entrées :
Pour k = 1, . . . , B :
232
Commentaires
233
Commentaires
233
Commentaires
233
Commentaires
• Estimateur connu pour fournir des estimations précises sur des données
complexes (beaucoup de variables, données manquantes...).
233
Commentaires
• Estimateur connu pour fournir des estimations précises sur des données
complexes (beaucoup de variables, données manquantes...).
233
Choix des paramètres
234
Choix des paramètres
1 − ρ(x)
V[T̂B (x)] = ρ(x)V[T (x, θk , Dn )] + V[T (x, θk , Dn )]
B
234
Choix des paramètres
1 − ρ(x)
V[T̂B (x)] = ρ(x)V[T (x, θk , Dn )] + V[T (x, θk , Dn )]
B
Conséquence
• Le biais n’étant pas amélioré par "l’agrégation bagging", il est
recommandé d’agréger des estimateurs qui possèdent un biais faible
(contrairement au boosting).
234
Choix des paramètres
1 − ρ(x)
V[T̂B (x)] = ρ(x)V[T (x, θk , Dn )] + V[T (x, θk , Dn )]
B
Conséquence
• Le biais n’étant pas amélioré par "l’agrégation bagging", il est
recommandé d’agréger des estimateurs qui possèdent un biais faible
(contrairement au boosting).
• Arbres "profonds", peu d’observations dans les nœuds terminaux.
234
Choix des paramètres
1 − ρ(x)
V[T̂B (x)] = ρ(x)V[T (x, θk , Dn )] + V[T (x, θk , Dn )]
B
Conséquence
• Le biais n’étant pas amélioré par "l’agrégation bagging", il est
recommandé d’agréger des estimateurs qui possèdent un biais faible
(contrairement au boosting).
• Arbres "profonds", peu d’observations dans les nœuds terminaux.
• Par défaut dans randomForest, nmax = 5 en régression et 1 en
classification.
234
Choix de m
235
Choix de m
235
Choix de m
235
Choix de m
235
Choix de m
235
Choix de m
235
Choix de m
235
Choix de m
235
Choix de m
235
Choix de m
> library(randomForest)
> foret1 <- randomForest(type~.,data=spam)
> foret1
##
## Call:
## randomForest(formula = type ~ ., data = spam)
## Type of random forest: classification
## Number of trees: 500
## No. of variables tried at each split: 7
##
## OOB estimate of error rate: 4.52%
## Confusion matrix:
## nonspam spam [Link]
## nonspam 2708 80 0.02869440
## spam 128 1685 0.07060121
236
Mesure de performance
237
Mesure de performance
• Exemples :
• Erreur de prédiction : E[(Y − T̂B (X ))2 ] en régression ;
• Probabilité d’erreur : P(Y 6= T̂B (X )) en classification.
237
Mesure de performance
• Exemples :
• Erreur de prédiction : E[(Y − T̂B (X ))2 ] en régression ;
• Probabilité d’erreur : P(Y 6= T̂B (X )) en classification.
• Comme pour les autres méthodes, ces critères peuvent être évalués par
apprentissage/validation ou validation croisée.
237
Mesure de performance
• Exemples :
• Erreur de prédiction : E[(Y − T̂B (X ))2 ] en régression ;
• Probabilité d’erreur : P(Y 6= T̂B (X )) en classification.
• Comme pour les autres méthodes, ces critères peuvent être évalués par
apprentissage/validation ou validation croisée.
237
Erreur Ouf Of Bag
238
Erreur Ouf Of Bag
238
Exemple
3 4 6 10 3 9 10 7 7 1 m1
2 8 6 2 10 10 2 9 5 6 m2
2 9 4 4 7 7 2 3 6 7 m3
6 1 3 3 9 3 8 10 10 1 m4
3 7 10 3 2 8 6 9 10 2 m5
7 10 3 4 9 10 10 8 6 1 m6
239
Exemple
3 4 6 10 3 9 10 7 7 1 m1
2 8 6 2 10 10 2 9 5 6 m2
2 9 4 4 7 7 2 3 6 7 m3
6 1 3 3 9 3 8 10 10 1 m4
3 7 10 3 2 8 6 9 10 2 m5
7 10 3 4 9 10 10 8 6 1 m6
239
Exemple
3 4 6 10 3 9 10 7 7 1 m1
2 8 6 2 10 10 2 9 5 6 m2
2 9 4 4 7 7 2 3 6 7 m3
6 1 3 3 9 3 8 10 10 1 m4
3 7 10 3 2 8 6 9 10 2 m5
7 10 3 4 9 10 10 8 6 1 m6
240
Exemple
Remarque
L’erreur OOB est de 8.06%, elle est de 4.52% lorsque m = 7.
240
Importance des variables
• Un des reproches souvent fait aux forêts est l’aspect boîte noire et
manque d’interprétabilité par rapport aux modèles paramétriques tels
que le modèle logistique.
241
Importance des variables
• Un des reproches souvent fait aux forêts est l’aspect boîte noire et
manque d’interprétabilité par rapport aux modèles paramétriques tels
que le modèle logistique.
• Comme l’erreur OOB, ce critère est basé sur le fait que toutes les
observations ne sont pas utilisées pour construire les arbres de la forêt.
241
• Soit OOBk l’échantillon Out Of Bag associé au k eme arbre : il contient
les observations qui ne sont pas dans le k eme échantillon bootstrap.
242
• Soit OOBk l’échantillon Out Of Bag associé au k eme arbre : il contient
les observations qui ne sont pas dans le k eme échantillon bootstrap.
• Soit EOOBk l’erreur de prédiction de l’arbre k mesurée sur cet
échantillon :
1 X
EOOBk = (T (Xi , θk , Dn ) − Yi )2 .
|OOBk |
i∈OOBk
242
• Soit OOBk l’échantillon Out Of Bag associé au k eme arbre : il contient
les observations qui ne sont pas dans le k eme échantillon bootstrap.
• Soit EOOBk l’erreur de prédiction de l’arbre k mesurée sur cet
échantillon :
1 X
EOOBk = (T (Xi , θk , Dn ) − Yi )2 .
|OOBk |
i∈OOBk
242
• Soit OOBk l’échantillon Out Of Bag associé au k eme arbre : il contient
les observations qui ne sont pas dans le k eme échantillon bootstrap.
• Soit EOOBk l’erreur de prédiction de l’arbre k mesurée sur cet
échantillon :
1 X
EOOBk = (T (Xi , θk , Dn ) − Yi )2 .
|OOBk |
i∈OOBk
243
> ggplot(Imp[1:15,]) + aes(x=reorder(variable,MeanDecreaseAccuracy),
+ y=MeanDecreaseAccuracy)+
+ geom_bar(stat="identity")+coord_flip()+xlab("")+theme_classic()
charExclamation
capitalAve
remove
hp
charDollar
edu
free
capitalLong
capitalTotal
george
your
our
num1999
re
you
0 10 20 30 40 50
MeanDecreaseAccuracy
244
Bagging et forêts aléatoires
Bagging
Forêts aléatoires
Boosting
Algorithmes de gradient boosting
Choix des paramètres
Bibliographie
245
• Le terme Boosting s’applique à des méthodes générales permettant de
produire des décisions précises à partir de règles faibles (weaklearner).
• C’est cette famille d’algorithmes que nous présentons dans cette partie.
246
Bagging et forêts aléatoires
Bagging
Forêts aléatoires
Boosting
Algorithmes de gradient boosting
Choix des paramètres
Bibliographie
247
• (X , Y ) couple aléatoire à valeurs dans Rd × Y. Etant donnée G une
famille de règles, on se pose la question de trouver la meilleure règle
dans G.
• Choisir la règle qui minimise une fonction de perte, par exemple
248
• (X , Y ) couple aléatoire à valeurs dans Rd × Y. Etant donnée G une
famille de règles, on se pose la question de trouver la meilleure règle
dans G.
• Choisir la règle qui minimise une fonction de perte, par exemple
248
• On considère G l’ensemble des arbres binaires et on veut trouver la
meilleure combinaison linéaire d’abres binaires.
Un premier problème
Trouver g (x) = M
P
m=1 αm hm (x) ∈ G qui minimise
n
1X
Rn (g ) = `(Yi , g (Xi )).
n
i=1
249
• On considère G l’ensemble des arbres binaires et on veut trouver la
meilleure combinaison linéaire d’abres binaires.
Un premier problème
Trouver g (x) = M
P
m=1 αm hm (x) ∈ G qui minimise
n
1X
Rn (g ) = `(Yi , g (Xi )).
n
i=1
sans solution...
• Pas de solution explicite.
• Nécessité de trouver un algorithme pour approcher la solution.
249
Descente de gradient
250
Descente de gradient
250
Descente de gradient
250
Descente de gradient
Une restriction
Chaque élément de la suite doit être une combinaison d’arbres et fm+1
n’est pas (forcément) un arbre.
250
• Pour trouver l’arbre le plus proche du gradient fm+1 , on cherche un
arbre h qui minimise
n
1X
(fm+1 (Xi ) − h(Xi ))2 .
n
i=1
• Si on désigne par
∂
Ui = fm+1 (Xi ) = −∇Rn (gm )(Xi ) = − `(yi , g (xi )) ,
∂g (xi ) g (xi )=gm−1 (xi )
251
• Pour trouver l’arbre le plus proche du gradient fm+1 , on cherche un
arbre h qui minimise
n
1X
(fm+1 (Xi ) − h(Xi ))2 .
n
i=1
• Si on désigne par
∂
Ui = fm+1 (Xi ) = −∇Rn (gm )(Xi ) = − `(yi , g (xi )) ,
∂g (xi ) g (xi )=gm−1 (xi )
251
Gradient Boost Algorithm [Friedman, 2001] : FGD
2. Pour m = 1 à M :
a) Calculer l’opposé du gradient − ∂g∂(xi ) `(yi , g (xi )) et l’évaluer aux points
gm−1 (xi ) :
∂
Ui = − `(yi , g (xi )) , i = 1, . . . , n.
∂g (xi ) g (xi )=gm−1 (xi )
253
Commentaires
253
Bagging et forêts aléatoires
Bagging
Forêts aléatoires
Boosting
Algorithmes de gradient boosting
Choix des paramètres
Bibliographie
254
Choix de la fonction de perte
255
Choix de la fonction de perte
Exemple
• Classification binaire avec Y dans {−1, 1} :
1. `(y , g (x)) = exp(−yg (x)) =⇒ adaboost ;
2. `(y , g (x)) = log(1 + exp(−2yg (x))) =⇒ logitboost ;
255
Choix de la fonction de perte
Exemple
• Classification binaire avec Y dans {−1, 1} :
1. `(y , g (x)) = exp(−yg (x)) =⇒ adaboost ;
2. `(y , g (x)) = log(1 + exp(−2yg (x))) =⇒ logitboost ;
• Régression avec Y dans R : `(y , g (x)) = 0.5(y − g (x))2 =⇒
L2 -boosting.
255
Remarque
256
Remarque
256
Remarque
Interprétation
• L’estimateur à l’étape m est construit en faisant une régression sur les
résidus correpondants à l’estimateur à l’étape m − 1.
• On "corrige" gm−1 en cherchant à expliquer "l’information restante"
qui est contenue dans les résidus.
256
• L’algorithme L2 -boosting (simplifié) peut alors s’écrire.
L2 -boosting - autre version
1. Initialisation g0 .
2. Pour m = 1 à M :
a) Calculer les résidus Ui = yi − gm−1 (xi ), i = 1, . . . , n.
b) Ajuster la règle faible sur (x1 , U1 ), . . . , (xn , Un ) =⇒ hm .
c) Mise à jour : gm (x) = gm−1 (x) + λhm (x).
257
• L’algorithme L2 -boosting (simplifié) peut alors s’écrire.
L2 -boosting - autre version
1. Initialisation g0 .
2. Pour m = 1 à M :
a) Calculer les résidus Ui = yi − gm−1 (xi ), i = 1, . . . , n.
b) Ajuster la règle faible sur (x1 , U1 ), . . . , (xn , Un ) =⇒ hm .
c) Mise à jour : gm (x) = gm−1 (x) + λhm (x).
257
• L’algorithme L2 -boosting (simplifié) peut alors s’écrire.
L2 -boosting - autre version
1. Initialisation g0 .
2. Pour m = 1 à M :
a) Calculer les résidus Ui = yi − gm−1 (xi ), i = 1, . . . , n.
b) Ajuster la règle faible sur (x1 , U1 ), . . . , (xn , Un ) =⇒ hm .
c) Mise à jour : gm (x) = gm−1 (x) + λhm (x).
●
●
● ● ●
● ●
● ● ●
● ●
1.0 ● ●
●●●
●
● ●
● ● ● ● ● ● ● ●
● ● ●
● ●
● ● ●
● ● ●●
● ● ● ● ●
● ●
● ●
● ● ● ●
●
● ● ● ●
● ● ●
● ●
● ●
0.5 ● ● ●
● ● ●
●
● ●● ●
● ● ●
● ● ● ●
●
● ●
●
● ● ●
●
● ●
● ●
●● ● ●
●
0.0 ●
● ● ● ●
● ●
● ●
●
● ● ●
● ● ● ●
●
● ●
●
●●
● ● ●●
●
● ●
●
● ● ● ●
−0.5 ● ● ●
● ●
● ● ● ●●
●
●● ● ●
●
●
●● ● ●● ● ●●
● ● ●
● ●● ●
●●
● ● ●●
● ● ●
●● ●
● ● ● ●
● ●
−1.0 ●
● ●
● ●
● ●●
● ●
● ●
●
−1.5
−4 0 4
258
On ajuste un premier arbre simple :
●
●
● ● ●
● ●
● ● ●
● ●
1.0 ● ●
●●●
●
● ●
● ● ● ● ● ● ● ●
● ● ●
● ●
● ● ●
● ● ●●
● ● ● ● ●
● ●
● ●
● ● ● ●
●
● ● ● ●
● ● ●
● ●
● ●
0.5 ● ● ●
● ● ●
●
● ●● ●
● ● ●
● ● ● ●
●
● ●
●
● ● ●
●
● ●
● ●
●● ● ●
●
0.0 ●
● ● ● ●
● ●
● ●
●
● ● ●
● ● ● ●
●
● ●
●
●●
● ● ●●
●
● ●
●
● ● ● ●
−0.5 ● ● ●
● ●
● ● ● ●●
●
●● ● ●
●
●
●● ● ●● ● ●●
● ● ●
● ●● ●
●●
● ● ●●
● ● ●
●● ●
● ● ● ●
● ●
−1.0 ●
● ●
● ●
● ●●
● ●
● ●
●
−1.5
−4 0 4
259
On calcule les résidus :
●
●
1.0
●
●
●
●
●● ● ●
●
● ●
● ●
●
● ● ●
● ●
●
0.5 ● ●
●
●
●
● ●● ● ●● ●
● ● ●
● ● ●
● ●
●
● ●● ●
● ●
● ● ● ●
● ● ● ● ●
● ● ●
● ● ● ●
●
● ●
●● ● ● ●
● ● ● ● ●
● ● ●
●
● ●
● ● ●
● ● ● ● ●
● ●
0.0 ● ●
● ● ●
●
●
● ● ● ● ●
● ●
● ● ●
● ● ● ●
● ●
● ● ● ● ● ●
● ● ●
● ●
● ●● ● ● ●
● ●
● ●
● ●
●● ●● ●
● ● ●
● ● ●
● ● ● ●
● ●● ● ●
● ● ● ●
● ● ● ● ●
● ● ●
● ● ●●
● ●●
●
−0.5 ● ●
●
● ●
● ● ●
●
● ●
●
●
●
●
●
● ●
●
●
−4 0 4
260
On ajuste un nouvel arbre sur les résidus :
●
●
1.0
●
●
●
●
●● ● ●
●
● ●
● ●
●
● ● ●
● ●
●
0.5 ● ●
●
●
●
● ●● ● ●● ●
● ● ●
● ● ●
● ●
●
● ●● ●
● ●
● ● ● ●
● ● ● ● ●
● ● ●
● ● ● ●
●
● ●
●● ● ● ●
● ● ● ● ●
● ● ●
●
● ●
● ● ●
● ● ● ● ●
● ●
0.0 ● ●
● ● ●
●
●
● ● ● ● ●
● ●
● ● ●
● ● ● ●
● ●
● ● ● ● ● ●
● ● ●
● ●
● ●● ● ● ●
● ●
● ●
● ●
●● ●● ●
● ● ●
● ● ●
● ● ● ●
● ●● ● ●
● ● ● ●
● ● ● ● ●
● ● ●
● ● ●●
● ●●
●
−0.5 ● ●
●
● ●
● ● ●
●
● ●
●
●
●
●
●
● ●
●
●
−4 0 4
261
On obtient ainsi 2 arbres :
1.0
0.5
0.0
−0.5
−1.0
−4 0 4
262
Que l’on ajoute pour déduire un nouvel estimateur (2 itérations)...
1.0
0.5
0.0
−0.5
−1.0
−4 0 4
263
• Pour 1,000 et 500,000 itérations, on obtient :
M=1000 M=500000
● ●
● ●
● ●
● ● ● ● ● ●
● ● ● ●
● ● ● ● ● ●
● ● ● ● ● ●
1.0 ● ●●
●
●
●● ● ●●
●
●
●●
● ●● ● ●●● ● ● ●● ● ●●● ●
● ● ● ●
● ●● ● ●●
●● ● ●● ●
● ● ● ● ● ●
● ●
● ● ● ● ● ● ● ●
● ● ● ● ● ●
● ● ● ●
● ● ● ●
● ●● ● ●●
● ● ● ● ● ●
● ●
● ● ● ● ● ●
● ● ● ●
● ● ● ●
0.5 ● ● ● ● ● ●
● ●● ● ●●
● ● ● ●
● ● ● ● ● ●
● ●● ● ●●
● ● ●● ● ● ●●
● ●
● ● ● ●
● ● ● ●
●● ● ●● ●
● ● ● ●
● ● ● ●
● ● ● ●
●● ● ●● ●
0.0 ●
●● ● ● ●
●● ● ●
● ● ● ●
● ● ● ●
● ●
● ● ● ● ● ●
● ●● ● ● ●● ●
● ●
● ● ● ● ● ● ● ● ● ●
●
● ●● ●
● ●●
● ●
● ●
● ● ● ●
● ● ● ● ● ● ● ●
−0.5 ● ● ● ● ● ●
● ● ● ●
● ● ● ● ● ● ● ●
● ●
● ●
●● ● ● ●● ● ●
● ●
● ● ● ●
●●●
● ● ●● ●●●
● ● ●●
● ● ●● ● ● ●●
●● ● ●● ●
●● ●●
●● ●
●
● ●● ●● ●
●
● ●●
●
● ● ●
● ●
●●● ● ●●● ●
● ● ● ●
−1.0 ● ●
● ● ● ●
● ● ● ●
● ● ● ●
● ●
● ● ● ●
● ● ● ●
● ●
● ●
−1.5
−4 0 4 −4 0 4
264
• Pour 1,000 et 500,000 itérations, on obtient :
M=1000 M=500000
● ●
● ●
● ●
● ● ● ● ● ●
● ● ● ●
● ● ● ● ● ●
● ● ● ● ● ●
1.0 ● ●●
●
●
●● ● ●●
●
●
●●
● ●● ● ●●● ● ● ●● ● ●●● ●
● ● ● ●
● ●● ● ●●
●● ● ●● ●
● ● ● ● ● ●
● ●
● ● ● ● ● ● ● ●
● ● ● ● ● ●
● ● ● ●
● ● ● ●
● ●● ● ●●
● ● ● ● ● ●
● ●
● ● ● ● ● ●
● ● ● ●
● ● ● ●
0.5 ● ● ● ● ● ●
● ●● ● ●●
● ● ● ●
● ● ● ● ● ●
● ●● ● ●●
● ● ●● ● ● ●●
● ●
● ● ● ●
● ● ● ●
●● ● ●● ●
● ● ● ●
● ● ● ●
● ● ● ●
●● ● ●● ●
0.0 ●
●● ● ● ●
●● ● ●
● ● ● ●
● ● ● ●
● ●
● ● ● ● ● ●
● ●● ● ● ●● ●
● ●
● ● ● ● ● ● ● ● ● ●
●
● ●● ●
● ●●
● ●
● ●
● ● ● ●
● ● ● ● ● ● ● ●
−0.5 ● ● ● ● ● ●
● ● ● ●
● ● ● ● ● ● ● ●
● ●
● ●
●● ● ● ●● ● ●
● ●
● ● ● ●
●●●
● ● ●● ●●●
● ● ●●
● ● ●● ● ● ●●
●● ● ●● ●
●● ●●
●● ●
●
● ●● ●● ●
●
● ●●
●
● ● ●
● ●
●●● ● ●●● ●
● ● ● ●
−1.0 ● ●
● ● ● ●
● ● ● ●
● ● ● ●
● ●
● ● ● ●
● ● ● ●
● ●
● ●
−1.5
−4 0 4 −4 0 4
Remarque importante
L’algorithme sur-ajuste si le nombre d’itérations est (trop) grand.
264
Choix de m et λ
265
Choix de m et λ
265
Choix de m et λ
265
Choix de m et λ
265
• L’algorithme étant construit pour une fonction de perte ` donnée, il est
d’usage d’utiliser la même fonction de perte pour sélectionner m.
266
• L’algorithme étant construit pour une fonction de perte ` donnée, il est
d’usage d’utiliser la même fonction de perte pour sélectionner m.
266
Le coin R
267
Le coin R
267
Exemple
> library(gbm)
> [Link](1234)
> spam1 <- spam
> spam1$type <- [Link](spam1$type)-1
> ada <- gbm(type~.,data=spam1,distribution="adaboost",[Link]=5,
+ [Link]=1000,shrinkage=0.05)
> mopt <- [Link](ada)
> mopt
## [1] 440
0.9
0.8
AdaBoost exponential bound
0.7
0.6
0.5
0.4
0.3
• Pour être efficace les arbres hk doivent être des règles faibles
(weaklearner), donc des arbres peu performants :
269
Conclusion
• Pour être efficace les arbres hk doivent être des règles faibles
(weaklearner), donc des arbres peu performants :
• randomforest : arbres très profonds avec beaucoup de variance et peu
de biais ;
• boosting : arbres peu profonds avec peu de variance et beaucoup de
biais.
269
Conclusion
• Pour être efficace les arbres hk doivent être des règles faibles
(weaklearner), donc des arbres peu performants :
• randomforest : arbres très profonds avec beaucoup de variance et peu
de biais ;
• boosting : arbres peu profonds avec peu de variance et beaucoup de
biais.
Résumé
• Agrégation RF : réduction de variance ;
• Agrégation boosting : réduction de biais.
269
Bagging et forêts aléatoires
Bagging
Forêts aléatoires
Boosting
Algorithmes de gradient boosting
Choix des paramètres
Bibliographie
270
Références i
Aronszajn, N. (1950).
Theory of reproducing kernels.
Transactions of the American Mathematical Society, 68 :337–404.
Breiman, L. (1996).
Bagging predictors.
Machine Learning, 26(2) :123–140.
Bühlmann, P. and Hothorn, T. (2007).
Boosting algorithms : regularization, prediction and model
fitting.
Statistical Science, 22 :477–505.
271
Références ii
272
Références iii
273
Références iv
Friedman, J. H. (2001).
Greedy function approximation : A gradient boosting machine.
Annals of Statistics, 29 :1189–1232.
Fromont, M. (2015).
Apprentissage statistique.
Université Rennes 2, diapos de cours.
Genuer, R. (2010).
Forêts aléatoires : aspects théoriques, sélection de variables et
applications.
PhD thesis, Université Paris XI.
274
Références v
275
Références vi
Vapnik, V. (2000).
The Nature of Statistical Learning Theory.
Springer, second edition.
Vert, J. (2014).
Support vector machines and applications in computational
biology.
disponible à l’url [Link]
kernelcourse/slides/kernel2h/[Link].
276
Cinquième partie V
Réseaux de neurones
277
Introduction
Le perceptron simple
Perceptron multicouches
Estimation
Bibliographie
278
Introduction
Le perceptron simple
Perceptron multicouches
Estimation
Bibliographie
279
Bibliographie
280
Historique
281
• Développement considérable (au début des années 90)
• Remis en veilleuse au milieu des années 90 au profit d’autres
algorithmes d’apprentissage : boosting, support vector machine...
• Regain d’intérêt dans les années 2010, énorme battage médiatique sous
l’appellation d’apprentissage profond/deep learning.
• Résultats spectaculaires obtenus par ces réseaux en reconnaissance
d’images, traitement du langage naturel...
282
Différentes architectures
283
Différentes architectures
283
Neurone : vision biologique
284
Définition : neurone biologique
Un neurone biologique est une cellule qui se caractérise par
285
Définition : neurone biologique
Un neurone biologique est une cellule qui se caractérise par
• des entrées x1 , . . . , xp ;
• des poids w0 , w1 , . . . , wp ;
• une fonction d’activation σ : R → R ;
• une sortie :
ŷ = σ(w0 + w1 x1 + . . . + xp xp ).
285
Introduction
Le perceptron simple
Perceptron multicouches
Estimation
Bibliographie
286
• Le problème : expliquer une sortie y ∈ R par des entrées
x = (x1 , . . . , xp ).
287
• Le problème : expliquer une sortie y ∈ R par des entrées
x = (x1 , . . . , xp ).
Définition
Le perceptron simple est une fonction f des entrées x
ŷ = f (x) = σ(w0 + w1 x1 + . . . + xp xp ).
287
Fonction d’activation
• Identité : σ(x) = x ;
• sigmoïde ou logistique : σ(x) = 1/(1 + exp(−x)) ;
• seuil : σ(x) = 1x≥0 ;
• ReLU (Rectified Linear Unit) : σ(x) = max(x, 0) ;
p
• Radiale : σ(x) = 1/2π exp(−x 2 /2).
288
Fonction d’activation
• Identité : σ(x) = x ;
• sigmoïde ou logistique : σ(x) = 1/(1 + exp(−x)) ;
• seuil : σ(x) = 1x≥0 ;
• ReLU (Rectified Linear Unit) : σ(x) = max(x, 0) ;
p
• Radiale : σ(x) = 1/2π exp(−x 2 /2).
Remarque
Les poids wj sont estimés à partir des données (voir plus loin).
288
Représentation graphique
w0
x1 w1
x2 w2
x3 w3 Σ σ y
..
.
..
.
xp wp
289
Le coin R
> library(keras)
> install_keras()
290
Exemple
291
Définition du modèle
292
Définition du modèle
292
Summary
> summary(model)
## ___________________________________________________________________________
## Layer (type) Output Shape Param #
## ===========================================================================
## dense (Dense) (None, 1) 5
## ===========================================================================
## Total params: 5
## Trainable params: 5
## Non-trainable params: 0
## ___________________________________________________________________________
293
Estimation des paramètres
294
Estimation
295
Visualisation du réseau
0.174
x1 0.251
x2 0.092
x3 −0.163 Σ σ y
x4 −0.005
296
Visualisation du réseau
0.174
x1 0.251
x2 0.092
x3 −0.163 Σ σ y
x4 −0.005
Estimation
1
P(Y
b = 1|X = x) =
1 + exp(−(0.174 + 0.251x1 + . . . − 0.005x4 ))
296
Prévision
297
Prévision
297
Introduction
Le perceptron simple
Perceptron multicouches
Estimation
Bibliographie
298
Constat
• Règle de classification : le preceptron simple affecte un individu dans le
groupe 1 si
299
Constat
• Règle de classification : le preceptron simple affecte un individu dans le
groupe 1 si
299
Constat
• Règle de classification : le preceptron simple affecte un individu dans le
groupe 1 si
Idée
Conserver cette structure de réseau en considérant plusieurs couches de
plusieurs neurones.
299
Perceptron simple
x1
x2
x3
σ y
..
.
..
.
xp
300
Une couche cachée
x1
σ1,1
x2
x3 σ1,2
σ y
.. ..
. .
..
.
σ1,k1
xp
301
Deux couches cachées
x1
σ1,1 σ2,1
x2
x3 σ1,2 σ2,2
σ y
.. .. ..
. . .
..
.
σ1,k1 σ2,k2
xp
302
Commentaires
303
Commentaires
303
Commentaires
304
Le coin R
304
> summary(model)
## ___________________________________________________________________________
## Layer (type) Output Shape Param #
## ===========================================================================
## dense_1 (Dense) (None, 10) 50
## ___________________________________________________________________________
## dense_2 (Dense) (None, 5) 55
## ___________________________________________________________________________
## dense_3 (Dense) (None, 1) 6
## ===========================================================================
## Total params: 111
## Trainable params: 111
## Non-trainable params: 0
## ___________________________________________________________________________
305
Introduction
Le perceptron simple
Perceptron multicouches
Estimation
Bibliographie
306
• L’utilisateur doit choisir le nombre de couches, le nombre de neurones
par couche, les fonctions d’activation de chaque neurone.
307
• L’utilisateur doit choisir le nombre de couches, le nombre de neurones
par couche, les fonctions d’activation de chaque neurone.
• Une fois ces paramètres choisis, il faut calculer (estimer) tous les
vecteurs de poids dans tous les neurones.
307
• L’utilisateur doit choisir le nombre de couches, le nombre de neurones
par couche, les fonctions d’activation de chaque neurone.
• Une fois ces paramètres choisis, il faut calculer (estimer) tous les
vecteurs de poids dans tous les neurones.
L’approche
• On désigne par θ l’ensemble des paramètres à estimer =⇒ f (x, θ) la
règle associée au réseau.
• Minimisation de risque empirique : minimiser
n
1X
Rn (θ) = `(yi , f (xi , θ))
n
i=1
307
Fonctions de perte
309
Descente de gradient
309
Batch et epoch
310
Batch et epoch
310
Algorithme de rétropropagation stochastique
Algorithme
Entrées : ε (learning rate), m (taille des batchs), nb (nombre d’epochs).
1. Pour ` = 1 à nb
2. Partitionner aléatoire les données en n/m batch de taille m =⇒
B1 , . . . , Bn/m .
2.1 Pour j = 1 à n/m
2.1.1 Calculer les gradients sur le batch j avec l’algorithme de
rétropropagation : ∇θ .
2.1.2 Mettre à jour les paramètres
311
Choix des paramètres
312
Choix des paramètres
En pratique
Il est courant de visualiser l’évolution de la fonction de perte et/ou d’un
critère de performance en fonction du nombre d’epoch.
312
Un exemple
313
• On utilise
• crossentropy comme perte.
• Adam comme algorithme d’optimisation.
• accuracy (taux de bien classés) comme mesure de performance.
314
• On estime les paramètres avec m = 5 et nb = 1000 et utilise 20% des
données dans l’échantillon de validation.
315
Erreur et perte
> plot(history)
●
●●
●
● ●●●● ●●●
●● ● ●
●● ●
●●
0.75 ●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●●
● ●
●
● ●●● ● ●● ●
●
●
●
●●
●
●
●
●●●
●●●
●●
●●
●
●
●
●●
●
● ●
●
●●
●●●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
● ●
●● ●●●
●●●
●
●●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●● ●
●
●●
●●●●
●
●
●
●
●
●●
●
●
● ●
●●
●
●
●●●
●
●●
●
●
●
● ●●
●
●●
●●
●
●●
● ●●
●●
●●●
●
●
●
●
● ●●
●
●●
● ●
●
●
●
● ●
●
●●
●
●
●
●
● ●●
●
●
●
●
● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●●
●●
●
● ●
●
●
●● ●
●
●
●●
●
●
●● ●
●●●
●
●
●●
●
● ●●●
0.50 ●
●●
●
●
●
●
●
●●
loss
●
●
●●
●
●
● ●●●
●●●
●
●●
●
●
● ●●
●
●
●●
●
●
●
●
●● ● ●
●●
●●
●
●● ●
●
●
●
●
●
● ●
●●
● ●
●
●
●
●
●
● ●●●
●
●
●
●
●●
● ●●
●
●
●
●
●●
● ●
●
●
●●
●
●
●
●
●●
● ●●
●●
●
●
●
● ●
●●
●●
●
●
●● ●●
●
●●
●
●
●
● ●●
●
●●
●
●
●
●
●● ●●
●
●
●
●●
●
●
●
● ●●
●
●●
●
●
●
● ●●
●●
●
● ●
●●
●
●
●
●
●●●●●
●
●
●
●
● ●
●●
●
●●
0.25 ●
●
●
● ●
●●
●
●
●●● ●
●
●
●
●
●●●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
● ● ●
●
●
●●
●
●●
●●
●●
●
●
●
●
●●
●
●
●●
● ●
●
●
●
●
●●
●
●
●●●
●
●● ●
●
●
●
●
●
●●
●●
●
●
●
●
●
●
●
●
●●
●
● ● ●
● ● ●
● ●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
● ●● ●
● ● ● ●● ● ● ●
●●●
●
●
●●●
●
●●●
● ●●●
●●
●
●
●
●●
●
●●
●●●
●
●
●
●●
●
●
●
●●
●●●
●●●
●● ●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
● ●
●
● ● ● ● ● ● ●● ● ● ● ● ● ●●●
●
●●●●
●●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●●
●
●
●
●●●●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
● ●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●●
●
●
●●
●
●●●●
●●● ●●●
●●● ●● ●● ●● ●● ● ●●●●
●●
●
●
●●
●
● ●
●
●
●
● ●
●
●●
●
●●
●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●●●●
●● ●● ● ●
● ●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●●
●
●●
●●
●
●
●●
●
●●
●
●
●
●●
●●
● ●●
●
●●● ●● ●●●
●
● ● ●●
●
●●● ●
●
●
●
●●
●
●●
●
●●
●●
●
●
●●
●
●
●
●
●●
●●
●
●
●
●●
●
●●
●
●●
●
●●●
● ● ● ●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
● ●
●
●●
●●
●
● ●
●●●
●
●
●●
●●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●
●●
●●
●
●
●●
●●
●●
●●
●
●
●●
●
●
●●●
●
●●
●
●
●
●●
●
●●
●
●
●●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●●
●
●
●●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●
● ● ●
●●
●●
●
●●
●
●●
●
●●
●
●●
● ● ●●
●
●●●
●
●
●● ●
●●
● ●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
●●●
●
●●●
●
●
●●
● ●
● ●
●●
● ●
● ●
● ●
● ●
● ●
●
● ●
●
●
●
● ●● ●
data
0.00 ● ●●
●●
●
●
●●●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
● training
1.0 ● ●
●●●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●● ●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
● ● validation
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●●●
●●
●
●●
●
●●●
●
●
●●●
●●●
●
●●
●
●
●
●● ●●●● ●
●
●●
●
●
● ●
●
●
●●●
●
●
●●
●
●●
●●
●
●●
●
●
●●
●
●●
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●●
●
●
●●
●
●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●●
●
●●
●
●●
●
●
●●
●
●●
●
●
●
●●
●
●
● ●●
●
●●●●
●
●●
●●
●
●●●
●
●
●●
●●
●●●●
●●
●
●●
●●
●
●●
●
●●
●
●
●●
●●●
●
●●
●●
●●
●●
●
●●● ● ●
● ● ● ●● ●● ● ●
●
●
●
●●
●
●
●
●●
●
●●
●
●●
●
●●
●●
●
●●
● ● ●
●
●
●
●●
●
●
●
●●●
●
●●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●
●●
●
●
●●
●
●
●
●●●
●
●●
●
●●
●
●●
●
●●●
●
●●
●● ●
●●●
●●
●●
●●
●
●
●●●
●●●
●
●●
●
●●
●
●
●
●●
●
●●●
● ●●
●
●●
●●
●●
●
●
●●
● ● ●
●
●
●●
●●
●
●
●
●● ●●
●●
●
●
●● ●●●●
●●●●
●
●
●●
●
●●
0.8 ●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
●●
●
●●
●
●
●
●●● ●
●
●●●●
● ●
●
●●● ●●●
●
●●●
●
●●
●
●
●●
●
●
●●●●●
●●
● ●●
●
●●●●●
●
●
●
●
●
●
●
●
●
●●● ●● ●
● ●
● ●
●
●
●
●
●
●
● ●●
●●● ●
●●
● ●●● ●
●
● ●●●
●
●●
●●
● ●●
●
●●
acc
●
●● ●
●●
●
●
●●
●
●●● ● ●
●
● ●
●● ●
●
0.6 ●
●
●
●
●
● ● ●
●
●
●
● ●
●●
●
●●
●
●
● ● ● ●
●●
●● ●●
●
●
●●
●
●●
●
●
●●
●●
●
●●
●
● ●●●
●
●●
●
●
●
● ●●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●
● ●
●
●●
●●
●●
●
●
●●
●
●
●●● ●●
●●
●
●
●● ●
●
●● ●
●●● ● ●
● ●● ●
● ●●
● ●
● ●●
● ●
● ●●
● ●
●●
●
●
●
●
●
●
●
●●
●
● ●●
●
●
0.4 ●
●
●●
●
●
●●
●●
●●
●● ●
●
●
●
●
●
●
●
●●●
●●
●●
●
●
●
●
●
● ●
●●
●●
●●●●
●●
●●
●●
●●
●●
●●
●●
●●●
●
●●
●
●
●
●●
●●●
●
●●●●
316
• On compare ce nouveau réseau avec le perceptron simple construit
précédemment.
317
Nombre de couches et de neurones
318
Introduction
Le perceptron simple
Perceptron multicouches
Estimation
Bibliographie
319
Surapprentissage
320
Surapprentissage
C1 C2 C3 S
Dropout
C1 C2 C3 S C1 C2 C3 S
Dropout
C1 C2 C3 S C1 C2 C3 S
321
Le coin R
322
Sélection avec caret
323
Sélection avec caret
> library(caret)
> dapp1 <- dapp
> dapp1$Y <- [Link](dapp1$Y)
> param_grid <- [Link](size=c(10,50,100),
+ lambda=0,batch_size=5,lr=0.001,
+ rho=0.9,decay=0,
+ activation=c("relu","sigmoid"))
323
• On calcule ensuite les taux de bien classés par validation croisée 5
blocs pour chaque combinaison de paramètres.
324
> caret_mlp
## Multilayer Perceptron Network with Weight Decay
## 300 samples
## 4 predictor
## 2 classes: ’0’, ’1’
## No pre-processing
## Resampling: Cross-Validated (5 fold)
## Summary of sample sizes: 240, 240, 240, 240, 240
## Resampling results across tuning parameters:
## size activation Accuracy Kappa
## 10 relu 0.9200000 0.8394122
## 10 sigmoid 0.8966667 0.7913512
## 50 relu 0.9266667 0.8515286
## 50 sigmoid 0.9066667 0.8127427
## 100 relu 0.9366667 0.8722974
## 100 sigmoid 0.9300000 0.8595025
## Tuning parameter ’lambda’ was held constant at a value of 0
## Tuning parameter ’rho’ was held constant at a value of 0.9
## Tuning parameter ’decay’ was held constant at a value of 0
## Accuracy was used to select the optimal model using the largest value.
## The final values used for the model were size = 100, lambda =
## 0, batch_size = 5, lr = 0.001, rho = 0.9, decay = 0 and activation = relu.
325
Conclusion
• Avantages :
• Méthode connue pour être efficace pour (quasiment) tous les
problèmes.
• Plus particulièrement sur des architectures particulières : images,
données textuelles.
326
Conclusion
• Avantages :
• Méthode connue pour être efficace pour (quasiment) tous les
problèmes.
• Plus particulièrement sur des architectures particulières : images,
données textuelles.
• Inconvénients :
• Gain plus discutable sur des problèmes standards.
• (Beaucoup) plus difficile à calibrer que les autres algorithmes ML.
• Niveau d’expertise important.
326
Introduction
Le perceptron simple
Perceptron multicouches
Estimation
Bibliographie
327
Références i
328