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 qu'ils sont séparables. Toutefois, si l'ensemble de données contient du bruit, cet arbre risque d'être en surapprentissage par rapport aux données, et la précision du test sera médiocre.
La figure suivante montre un ensemble de données comportant du bruit avec une relation linéaire entre une caractéristique x et l'étiquette 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 motif linéaire et une instance de bruit différente, le modèle ne sera pas performant.
Figure 12 Ensemble de données avec bruit.
Pour limiter le surapprentissage d'un arbre de décision, appliquez l'un des critères de régularisation suivants, ou les deux, lors de l'entraînement de l'arbre de décision:
- Set a maximum depth (Définir une profondeur maximale) : empêchez les arbres de décision de dépasser une profondeur maximale, telle que 10.
- Définissez un nombre minimal d'exemples dans une feuille:une feuille comportant un nombre inférieur à un certain nombre d'exemples ne sera pas prise en compte pour la division.
La figure suivante illustre l'effet d'un nombre minimal différent d'exemples par feuille. Le modèle capte moins de bruit.
Figure 13 Nombre minimal différent d'exemples par feuille.
Vous pouvez également effectuer une régularisation après l'entraînement en supprimant (élargissant) certaines branches de manière sélective, 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 justesse de validation de l'arbre de décision est améliorée si le nœud vert non feuille est transformé en feuille, c'est-à-dire, en éliminant les nœuds orange.
Figure 14 Élagage d'une condition et de ses enfants en une feuille
La figure suivante illustre l'effet de l'utilisation de 20% de l'ensemble de données en tant que validation pour élaguer l'arbre de décision:
Figure 15 Utilisation de 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 toutes les opérations suivantes:
- Appliquer un nombre minimal d'exemples par feuille.
- Appliquez une profondeur maximale pour limiter la croissance de l'arbre de décision.
- Élagez 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 réglés (par exemple, la profondeur maximale de l'arbre), souvent avec un réglage automatisé des hyperparamètres. Les arbres de décision sont généralement assez rapides pour être entraînés afin d'utiliser les réglages d'hyperparamètres avec la validation croisée. Par exemple, sur un ensemble de données avec "n" exemples:
- Divisez les exemples d'entraînement en p groupes qui ne se chevauchent pas. Exemple :
p=10
. - Pour toutes les valeurs d'hyperparamètres possibles ; par exemple, profondeur maximale dans {3,5,6,7,8,9}, exemples min dans {5,8,10,20}.
- Évaluer, sur chaque groupe, la qualité d'un arbre de décision entraîné sur les autres groupes p-1
- Faire la moyenne de l'évaluation à l'échelle des groupes.
- Sélectionnez la valeur d'hyperparamètre offrant la meilleure moyenne d'évaluation.
- 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 abordé la façon dont les arbres de décision limitent le surapprentissage. Malgré ces méthodes, le sous-apprentissage et le surapprentissage sont des faiblesses majeures des arbres de décision. Les forêts de décision introduisent de nouvelles méthodes pour limiter le surapprentissage, que nous verrons plus tard.
Interprétation directe de l'arbre de décision
Les arbres de décision sont facilement interprétables. Cela dit, la modification de quelques exemples peut complètement changer 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, qui consiste à partitionner 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 à une arborescence individuelle et la représenter avec model.get_tree()
.
Pour en savoir plus, consultez le
tutoriel d'inspection de modèles de YDF.
Cependant, l'interprétation indirecte est également informative.