Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Overfitting Voorkomen bij Beslissingsbomen | Beslisboom
Classificatie met Python

Overfitting Voorkomen bij Beslissingsbomen

Veeg om het menu te tonen

Voordat we beginnen met het implementeren van een Decision Tree met Python, is er een belangrijk onderwerp om te bespreken: overfitting - de belangrijkste uitdaging bij Decision Trees.

meme+friends

Hieronder staat een voorbeeld van hoe de Decision Tree het dataset benadert. Let op hoe het model zich aanpast aan de trainingsdata en de patronen en details vastlegt:

DecisionBoundaryTree

Hoewel het model het trainingset perfect past zonder enige voorbeelden verkeerd te classificeren, is het probleem dat de beslissingsgrenzen te complex zijn. Hierdoor zal de nauwkeurigheid op de testset (of bij cross-validatie) aanzienlijk lager zijn dan die van de trainingset, wat aangeeft dat het model overfit.

De reden hiervoor is dat het model zoveel splitsingen maakt als nodig om de trainingsdata perfect te passen.

Gelukkig is de Decision Tree zeer configureerbaar, zodat we de hyperparameters kunnen aanpassen om overfitting te minimaliseren.

Maximale boomdiepte

Diepte van een knoop is de afstand (verticaal) van de knoop tot de wortelknoop.

Boomdiepte

Het beperken van de maximale diepte van een Decision Tree maakt de boom kleiner en vermindert de kans op overfitting. Hiervoor worden de beslissingsknooppunten op de maximale diepte omgezet in bladknooppunten.

BoomdiepteAnimatie

Hier is ook een gif die laat zien hoe de beslissingsgrens verandert bij verschillende maximale dieptewaarden:

DecisionBoundaryTreeAnimation

Minimum aantal samples

Een andere manier om de boom te beperken is door het minimum aantal samples op de bladknopen in te stellen. Dit maakt het model eenvoudiger en robuuster tegen uitschieters.

TreeDepthAnimationLeaf

Hier zie je hoe deze hyperparameter de beslissingsgrens beïnvloedt:

DecisionBoundaryTreeLeaf

Beide van deze hyperparameters zijn beschikbaar in de scikit-learn Decision Tree-implementatie.
Standaard is de boom onbeperkt: max_depth is ingesteld op None, wat betekent dat er geen limiet is aan de diepte, en min_samples_leaf is ingesteld op 1.

question mark

Kies de ONJUISTE uitspraak.

Selecteer het correcte antwoord

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Sectie 3. Hoofdstuk 3
some-alt