Arbres de décision, Arbres de décision, Arbres de décision, Arbres de décision, Arbres de décision
Les arbres de décision sont des algorithmes d’apprentissage supervisé particulièrement populaires en machine learning. Leur capacité à modéliser des décisions de manière intuitive, leur simplicité d’interprétation et leur efficacité sur des jeux de données variés en font un outil central, notamment en classification.
Qu’est-ce qu’un arbre de décision ?
Un arbre de décision est une structure arborescente où chaque nœud interne représente un test sur une caractéristique, chaque branche représente le résultat du test, et chaque feuille une classe de sortie.
Exemple simple
Prenons un exemple de classification :
- Si “âge < 30” → classe “Non”
- Sinon, si “revenu > 50k” → classe “Oui”
- Sinon → classe “Non”
Cette logique est facilement représentée sous forme d’arbre, ce qui rend l’algorithme interprétable, même pour des non-spécialistes.
Fonctionnement de l’algorithme
L’algorithme construit l’arbre en divisant récursivement l’espace des données. Le but est de maximiser l’homogénéité des classes dans chaque feuille.
Étapes principales :
- Choix de la meilleure feature à chaque étape.
- Découpe récursive du dataset en sous-groupes plus homogènes.
- Arrêt lorsque certains critères sont atteints (profondeur max, taille minimale, pureté, etc.).
Critères de division
Pour savoir comment diviser les données, on mesure leur impureté. Deux mesures populaires :
1. Indice de Gini
Gini=1−∑i=1npi2Gini = 1 – \sum_{i=1}^{n} p_i^2Gini=1−i=1∑npi2
Où pip_ipi est la proportion d’observations de classe iii dans un nœud.
2. Entropie (Information Gain)
Entropy=−∑i=1npilog2(pi)Entropy = – \sum_{i=1}^{n} p_i \log_2(p_i)Entropy=−i=1∑npilog2(pi)
Le gain d’information mesure la réduction d’entropie après un split.
Exemple d’utilisation avec Scikit-Learn
pythonCopierModifierfrom sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
# Chargement des données
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
# Modèle
clf = DecisionTreeClassifier(criterion='gini', max_depth=3)
clf.fit(X_train, y_train)
# Prédiction
y_pred = clf.predict(X_test)
Élagage (Pruning)
Les arbres de décision peuvent facilement surapprendre (overfitting), surtout s’ils sont très profonds. Pour éviter cela, on utilise :
- Pré-élagage (limiter la profondeur, le nombre de feuilles, etc.)
- Post-élagage (supprimer des branches après la création)
Avantages des arbres de décision
- Très interprétables : faciles à visualiser et à expliquer.
- Peu de préparation de données nécessaire.
- Fonctionnent bien avec des variables catégoriques et numériques.
- Rapides à entraîner.
Inconvénients
- Très sensibles aux variations de données.
- Surapprentissage fréquent sans élagage.
- Moins performants que les ensembles (random forests, gradient boosting) sur des données complexes.
Visualisation
Scikit-Learn permet de visualiser un arbre :
pythonCopierModifierfrom sklearn.tree import plot_tree
import matplotlib.pyplot as plt
plt.figure(figsize=(12,8))
plot_tree(clf, filled=True, feature_names=iris.feature_names, class_names=iris.target_names)
plt.show()
Comparaison avec d’autres algorithmes de classification
Critère | Arbre de Décision | k-NN | SVM | Régression Logistique |
---|---|---|---|---|
Interprétabilité | ✅✅✅ | ❌ | ❌ | ✅ |
Temps d’entraînement | ✅ | ❌ | ❌ | ✅ |
Robustesse au bruit | ❌ | ✅ | ✅ | ✅ |
Précision | Moyenne | Moyenne | Haute | Moyenne |
Extensions : Random Forest et Boosting
Un arbre de décision simple est rarement l’algorithme le plus performant. Mais combiné avec d’autres arbres dans des méthodes d’ensemble comme :
- Random Forest : moyenne des prédictions de plusieurs arbres.
- Gradient Boosting (ex. XGBoost, LightGBM) : arbres corrigeant les erreurs des précédents.
Ces techniques apportent un gain significatif en performance tout en utilisant la base simple d’un arbre de décision.
Cas d’usage
Les arbres de décision sont utilisés dans :
- Le diagnostic médical
- L’analyse de churn client
- La détection de fraude
- Les systèmes de recommandation
- Le scoring de crédit
Bonnes pratiques
- Ne pas entraîner un arbre trop profond sans élagage.
- Normaliser les variables numériques n’est pas nécessaire.
- Tester plusieurs critères de division (Gini vs Entropie).
- Utiliser la validation croisée pour choisir les hyperparamètres.
Conclusion
Les arbres de décision pour la classification sont des modèles puissants, intuitifs et polyvalents. Bien qu’ils puissent présenter certaines limites, leur simplicité d’interprétation et leur rapidité les rendent idéaux pour de nombreux projets, notamment comme modèle de base, avant d’explorer des techniques d’ensemble plus avancées.