Forebyggelse af Overfitting i Beslutningstræer
Før vi går i gang med at implementere et Decision Tree i Python, er der et vigtigt emne at tage op: overfitting – den primære udfordring forbundet med Decision Trees.
Nedenfor ses et eksempel på, hvordan Decision Tree tilpasser sig datasættet. Bemærk, hvordan modellen tilpasser sig træningsdataene og opfanger dets mønstre og detaljer:
Selvom modellen passer perfekt til træningssættet uden at fejlklassificere nogen observationer, er problemet, at beslutningsgrænserne er for komplekse. Derfor vil nøjagtigheden på test- (eller krydsvaliderings-)sættet være markant lavere end på træningssættet, hvilket indikerer, at modellen overfitter.
Årsagen til dette er, at modellen vil foretage så mange opdelinger som nødvendigt for at tilpasse sig træningsdataene perfekt.
Heldigvis er Decision Tree meget konfigurerbar, så vi kan justere dets hyperparametre for at minimere overfitting.
Maksimal trædybde
Dybde for en node er afstanden (lodret) fra noden til rodnoden.
Vi kan begrænse maksimal dybde af et beslutningstræ, hvilket gør det mindre og mindre tilbøjeligt til at overtilpasse. For at gøre dette omdanner vi beslutningsnoder på en maksimal dybde til bladnoder.
Her er også en gif, der viser, hvordan beslutningsgrænsen ændrer sig med forskellige værdier for maksimal dybde:
Minimum antal prøver
En anden måde at begrænse træet på er at angive minimum antal prøver på bladnoderne. Dette gør modellen enklere og mere robust over for outliers.
Du kan se, hvordan denne hyperparameter påvirker beslutningsgrænsen:
Begge disse hyperparametre er tilgængelige i scikit-learns Decision Tree-implementering.
Som standard er træet ikke begrænset: max_depth
er sat til None
, hvilket betyder, at der ikke er nogen grænse for dybden, og min_samples_leaf
er sat til 1
.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Can you explain more about overfitting and why it's a problem for Decision Trees?
How do I choose the right values for max_depth and min_samples_leaf?
What other hyperparameters can help prevent overfitting in Decision Trees?
Awesome!
Completion rate improved to 4.17
Forebyggelse af Overfitting i Beslutningstræer
Stryg for at vise menuen
Før vi går i gang med at implementere et Decision Tree i Python, er der et vigtigt emne at tage op: overfitting – den primære udfordring forbundet med Decision Trees.
Nedenfor ses et eksempel på, hvordan Decision Tree tilpasser sig datasættet. Bemærk, hvordan modellen tilpasser sig træningsdataene og opfanger dets mønstre og detaljer:
Selvom modellen passer perfekt til træningssættet uden at fejlklassificere nogen observationer, er problemet, at beslutningsgrænserne er for komplekse. Derfor vil nøjagtigheden på test- (eller krydsvaliderings-)sættet være markant lavere end på træningssættet, hvilket indikerer, at modellen overfitter.
Årsagen til dette er, at modellen vil foretage så mange opdelinger som nødvendigt for at tilpasse sig træningsdataene perfekt.
Heldigvis er Decision Tree meget konfigurerbar, så vi kan justere dets hyperparametre for at minimere overfitting.
Maksimal trædybde
Dybde for en node er afstanden (lodret) fra noden til rodnoden.
Vi kan begrænse maksimal dybde af et beslutningstræ, hvilket gør det mindre og mindre tilbøjeligt til at overtilpasse. For at gøre dette omdanner vi beslutningsnoder på en maksimal dybde til bladnoder.
Her er også en gif, der viser, hvordan beslutningsgrænsen ændrer sig med forskellige værdier for maksimal dybde:
Minimum antal prøver
En anden måde at begrænse træet på er at angive minimum antal prøver på bladnoderne. Dette gør modellen enklere og mere robust over for outliers.
Du kan se, hvordan denne hyperparameter påvirker beslutningsgrænsen:
Begge disse hyperparametre er tilgængelige i scikit-learns Decision Tree-implementering.
Som standard er træet ikke begrænset: max_depth
er sat til None
, hvilket betyder, at der ikke er nogen grænse for dybden, og min_samples_leaf
er sat til 1
.
Tak for dine kommentarer!