Forebyggelse af Overfitting i Beslutningstræer
Stryg for at vise menuen
Før vi går i gang med at implementere et Decision Tree med 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 eksempler, er problemet, at beslutningsgrænserne er for komplekse. Derfor vil test- (eller krydsvaliderings-) nøjagtigheden være betydeligt lavere end træningssættets nøjagtighed, hvilket indikerer, at modellen overfitter.
Årsagen til dette er, at modellen vil lave så mange opdelinger som nødvendigt for at tilpasse træningsdataene perfekt.
Heldigvis er Decision Tree meget konfigurerbar, så vi kan justere dens hyperparametre for at minimere overfitting.
Maksimal trædybde
Dybde af en node er afstanden (lodret) fra noden til roden.
Det er muligt at begrænse maksimal dybde af et beslutningstræ, hvilket gør det mindre og mindsker sandsynligheden for overfitting. For at gøre dette omdannes beslutningsnoder på 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 eksempler
En anden måde at begrænse træet på er at angive minimum antal eksempler 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-learn's Decision Tree-implementering.
Som standard er træet uden begrænsninger: 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