Surapprentissage et élagage
À l'aide de l'algorithme décrit ci-dessus, nous pouvons entraîner un arbre de décision qui classera parfaitement les exemples d'entraînement, en supposant que les exemples sont séparables. Toutefois, si l'ensemble de données contient du bruit, cet arbre s'ajustera trop aux données et affichera une faible précision de test.
La figure suivante montre un ensemble de données bruyant avec une relation linéaire entre une caractéristique x et le libellé y. La figure montre également un arbre de décision entraîné sur cet ensemble de données sans aucun type de régularisation. Ce modèle prédit correctement tous les exemples d'entraînement (la prédiction du modèle correspond aux exemples d'entraînement). Toutefois, sur un nouvel ensemble de données contenant le même modèle linéaire et une autre instance de bruit, le modèle ne fonctionnerait pas bien.
Figure 12. Ensemble de données bruyant.
Pour limiter le surajustement d'un arbre de décision, appliquez l'un ou les deux critères de régularisation suivants lors de l'entraînement de l'arbre de décision:
- Définir une profondeur maximale:empêche les arbres de décision de dépasser une profondeur maximale, par exemple 10.
- Définir un nombre minimal d'exemples dans la feuille:une feuille contenant moins d'un certain nombre d'exemples ne sera pas prise en compte pour le fractionnement.
La figure suivante illustre l'effet du nombre minimal d'exemples par feuille. Le modèle capture moins de bruit.
Figure 13. Nombre minimal d'exemples par feuille différent.
Vous pouvez également régulariser après l'entraînement en supprimant de manière sélective (élagage) certaines branches, c'est-à-dire en convertissant certains nœuds non-feuilles en feuilles. Une solution courante pour sélectionner les branches à supprimer consiste à utiliser un ensemble de données de validation. Autrement dit, si la suppression d'une branche améliore la qualité du modèle sur l'ensemble de données de validation, la branche est supprimée.
Le dessin suivant illustre cette idée. Ici, nous testons si la précision de validation de l'arbre de décision serait améliorée si le nœud vert non feuille était transformé en feuille, c'est-à-dire en élaguant les nœuds orange.
Figure 14. Élagage d'une condition et de ses enfants en feuille.
La figure suivante illustre l'effet de l'utilisation de 20% de l'ensemble de données à des fins de validation pour élaguer l'arbre de décision:
Figure 15. Utiliser 20% de l'ensemble de données pour élaguer l'arbre de décision.
Notez que l'utilisation d'un ensemble de données de validation réduit le nombre d'exemples disponibles pour l'entraînement initial de l'arbre de décision.
De nombreux créateurs de modèles appliquent plusieurs critères. Par exemple, vous pouvez effectuer les opérations suivantes:
- Appliquez un nombre minimal d'exemples par feuille.
- Appliquez une profondeur maximale pour limiter la croissance de l'arbre de décision.
- Élaguez l'arbre de décision.
- Le nombre minimal d'exemples est de cinq (
min_examples = 5
). - 10% de l'ensemble de données d'entraînement est conservé pour la validation (
validation_ratio = 0.1
).
validation_ratio=0.0
.
Ces critères introduisent de nouveaux hyperparamètres qui doivent être ajustés (par exemple, la profondeur maximale de l'arborescence), souvent avec un réglage automatique des hyperparamètres. Les arbres de décision sont généralement assez rapides à entraîner pour utiliser le réglage des hyperparamètres avec la validation croisée. Par exemple, sur un ensemble de données comportant "n" exemples:
- Divisez les exemples d'entraînement en p groupes non chevauchants. Exemple :
p=10
. - Pour toutes les valeurs d'hyperparamètres possibles, par exemple, profondeur maximale dans {3,5,6,7,8,9}, exemples minimaux dans {5,8,10,20}.
- Évaluez, pour chaque groupe, la qualité d'un arbre de décision entraîné sur les autres groupes p-1.
- Calculez la moyenne de l'évaluation pour tous les groupes.
- Sélectionnez la valeur d'hyperparamètre offrant la meilleure évaluation moyenne.
- Entraînez un arbre de décision final à l'aide de tous les exemples "n" avec les hyperparamètres sélectionnés.
Dans cette section, nous avons vu comment les arbres de décision limitent le surajustement. Malgré ces méthodes, le sous-apprentissage et le surapprentissage sont des points faibles majeurs des arbres de décision. Les forêts de décision introduisent de nouvelles méthodes pour limiter le surajustement, que nous verrons plus tard.
Interprétation directe de l'arbre de décision
Les arbres de décision sont faciles à interpréter. Cela dit, même quelques exemples peuvent complètement modifier la structure (et donc l'interprétation) de l'arbre de décision.
En raison de la façon dont les arbres de décision sont construits, en partitionnant les exemples d'entraînement, vous pouvez utiliser un arbre de décision pour interpréter l'ensemble de données lui-même (par opposition au modèle). Chaque feuille représente un coin particulier de l'ensemble de données.
model.describe()
.
Vous pouvez également accéder à un arbre individuel et l'afficher avec model.get_tree()
.
Pour en savoir plus, consultez le
tutoriel d'inspection de modèle de YDF.
Cependant, l'interprétation indirecte est également informative.