Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Prévention du Surapprentissage dans les Arbres de Décision | Arbre de Décision
Classification avec Python

Prévention du Surapprentissage dans les Arbres de Décision

Glissez pour afficher le menu

Avant de passer à l’implémentation d’un arbre de décision avec Python, il est important d’aborder un sujet essentiel : le surapprentissage – le principal défi lié aux arbres de décision.

meme+friends

Voici un exemple illustrant comment l’arbre de décision s’ajuste à l’ensemble de données. Remarquez comment le modèle s’adapte aux données d’entraînement, en capturant leurs motifs et leurs subtilités :

FrontièreDeDécisionArbre

Bien que le modèle s'ajuste parfaitement à l'ensemble d'entraînement sans mal classer aucun exemple, le problème est que les frontières de décision sont trop complexes. Par conséquent, la précision sur l'ensemble de test (ou de validation croisée) sera nettement inférieure à celle de l'ensemble d'entraînement, ce qui indique que le modèle surajuste.

La raison en est que le modèle effectuera autant de divisions que nécessaire pour s'ajuster parfaitement aux données d'entraînement.

Heureusement, l'Arbre de Décision est hautement configurable, ce qui permet d'ajuster ses hyperparamètres pour minimiser le surajustement.

Profondeur maximale de l'arbre

La profondeur d'un nœud correspond à la distance (verticale) entre ce nœud et le nœud racine.

ProfondeurDeLArbre

Il est possible de limiter la profondeur maximale d’un arbre de décision, ce qui le rend plus petit et réduit le risque de surapprentissage. Pour cela, les nœuds de décision atteignant la profondeur maximale deviennent des feuilles.

AnimationProfondeurArbre

Voici également un gif montrant comment la frontière de décision change avec différentes valeurs de profondeur maximale :

AnimationDeFrontièreDeDécisionArbre

Nombre minimum d'échantillons

Une autre façon de contraindre l'arbre consiste à définir le nombre minimum d'échantillons sur les nœuds feuilles. Cela rendra le modèle plus simple et plus robuste aux valeurs aberrantes.

TreeDepthAnimationLeaf

Vous pouvez observer comment cet hyperparamètre influence la frontière de décision :

DecisionBoundaryTreeLeaf

Ces deux hyperparamètres sont disponibles dans l’implémentation Decision Tree de scikit-learn.
Par défaut, l’arbre n’est pas contraint : max_depth est défini sur None, ce qui signifie qu’il n’y a pas de limite de profondeur, et min_samples_leaf est défini sur 1.

question mark

Choisissez l’affirmation INCORRECTE.

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 3. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 3. Chapitre 3
some-alt