Arbres de décision
07 nov. 2025
La théorie des arbres de décision
Les arbres en pratique
Exemple
Variables : \(X_1, \ldots, X_p\) avec \(n\) observations dans \(\mathbb{R}^p\).
Classification : Prédire l’appartenance à l’un des \(K\) groupes.
Régression : Prédire une variable numérique continue \(Y\).
Partitionner l’espace des observations \(\mathbb{R}^p\) en sous-ensembles homogènes.
Découper selon une variable \(X_j\) à un seuil \(s\).
Créer des sous-régions rectangulaires (hyper-rectangles).
Chaque sous-ensemble = une feuille avec une prédiction.
⚠️ Algorithme glouton: Optimisation locale, pas globale !
Classification : Classe majoritaire
Régression : Moyenne des \(Y\)
Point de départ: L’ensemble complet des observations
Pour chaque nœud:
Évaluer tous les couples \((X_j, s)\) possibles.
Calculer la réduction du critère d’homogénéité.
Sélectionner le couple \((X_j, s)\) qui maximise le gain.
Diviser le nœud selon \(X_j \leq s\) vs \(X_j > s\).
Répéter jusqu’au critère d’arrêt.
Soit \(\widehat{p}_{jk}\) la proportion d’observations de la région \(R_j\) appartenant à la classe \(k\).
Taux d’erreur de classification
\[E_j = 1 - \max_k \widehat{p}_{jk}\]
Facile à interpréter.
Peu sensible → rarement utilisé pour la construction.
Soit \(\widehat{p}_{jk}\) la proportion d’observations de la région \(R_j\) appartenant à la classe \(k\).
Indice de Gini (le plus utilisé)
\[G_j = \sum_{k=1}^{K} \widehat{p}_{jk}(1 - \widehat{p}_{jk})\]
Minimal (\(= 0\)) quand homogénéité parfaite.
On cherche un indice faible.
Soit \(\widehat{p}_{jk}\) la proportion d’observations de la région \(R_j\) appartenant à la classe \(k\).
Entropie croisée (théorie de l’information)
\[D_j = -\sum_{k=1}^{K} \widehat{p}_{jk} \log(\widehat{p}_{jk})\]
Basé sur l’information de Shannon.
Minimal pour classe parfaitement prédite.
Mesure de la réduction de l’hétérogénéité après division.
Objectif : Maximiser le gain d’information.
Exemple avec l’indice de Gini:
\[\Delta G = G_{\text{avant}} - \left(\frac{n_1}{n} G_1 + \frac{n_2}{n} G_2\right)\]
où:
\(n_1, n_2\) : nombres d’observations dans les sous-ensembles
\(n = n_1 + n_2\)
n= 400
node), split, n, deviance, yval
* denotes terminal node
1) root 400 3182.27500 7.496325
2) ShelveLoc=Bad,Medium 315 1859.56000 6.762984
4) Price>=105.5 207 956.57240 6.018792
8) ShelveLoc=Bad 61 240.81970 4.722459
16) Population< 196.5 25 88.22930 3.767200 *
17) Population>=196.5 36 113.93510 5.385833 *
9) ShelveLoc=Medium 146 570.41420 6.560411
18) Advertising< 5.5 77 280.11340 5.902468
36) Price>=127 34 133.53970 4.986765 *
37) Price< 127 43 95.52198 6.626512 *
19) Advertising>=5.5 69 219.77110 7.294638
38) CompPrice< 121.5 19 40.33360 6.230000 *
39) CompPrice>=121.5 50 149.71840 7.699200
78) Price>=127 28 71.99441 6.731786 *
79) Price< 127 22 18.16730 8.930455 *
5) Price< 105.5 108 568.61750 8.189352
10) Age>=54.5 65 303.05690 7.380154
20) Income< 105.5 56 203.03290 6.946071
40) ShelveLoc=Bad 20 76.96006 5.786500 *
41) ShelveLoc=Medium 36 84.24070 7.590278 *
21) Income>=105.5 9 23.81549 10.081110 *
11) Age< 54.5 43 158.66040 9.412558
22) Income< 57.5 13 19.24283 7.987692 *
23) Income>=57.5 30 101.58740 10.030000
46) ShelveLoc=Bad 9 22.75640 8.396667 *
47) ShelveLoc=Medium 21 44.53100 10.730000 *
3) ShelveLoc=Good 85 525.52220 10.214000
6) Price>=109.5 57 277.26520 9.244386
12) Advertising< 13.5 48 185.42030 8.742500
24) Price>=142.5 12 36.64722 7.152500 *
25) Price< 142.5 36 108.32350 9.272500
50) Income< 40.5 9 9.82780 7.603333 *
51) Income>=40.5 27 65.06227 9.828889 *
13) Advertising>=13.5 9 15.27049 11.921110 *
7) Price< 109.5 28 85.57727 12.187860 *
Dilemme:
Arbre trop profond → Sur-ajustement aux données d’apprentissage
Arbre trop simple → Sous-ajustement, classification trop simpliste
Conséquence → Perte de capacité de généralisation à de nouvelles données.
Solution → Élagage (pruning)
Stratégie en deux temps :
Croissance complète jusqu’aux feuilles pures
Élagage des branches peu performantes
Critère coût-complexité :
\[\sum_{j=1}^{|T|} c_j + \alpha |T|\]
où \(|T|\) est le nombre de feuilles, \(c_j\) est le coût dans la feuille \(j\) et \(\alpha\) est un paramètre de régularisation.
Interprétation
\(\alpha\) élevé → Favorise les arbres simples
\(\alpha\) faible → Arbres plus complexes
Méthode de sélection → Validation croisée pour comparer les performances sur différentes valeurs de \(\alpha\)
Très interprétables : Chemin explicite pour chaque prédiction.
Robustes aux valeurs extrêmes et transformations monotones.
Gestion naturelle des interactions entre variables.
Variables mixtes : Quantitatives et qualitatives.
Aucune hypothèse sur la distribution des données.
Sélection automatique des variables importantes.
Base des méthodes modernes (forêts aléatoires, boosting).
Instabilité : Sensibles aux petites modifications des données
Performance limitée seuls, surtout avec données bruitées.
Divisions rectangulaires inadaptées aux frontières non-linéaires.
Tendance au sur-ajustement sans élagage.
Sensibilité au déséquilibre des classes.
Solution : Méthodes ensemblistes (forêts, boosting).
Les arbres :
Méthode de partitionnement récursif
Algorithme glouton simple et intuitif
Nécessitent un élagage pour éviter le sur-ajustement
Prochaine étape → Les modèles ensemblistes