Unngå Overtilpasning i Beslutningstrær
Sveip for å vise menyen
Før vi går videre til å implementere et beslutningstre med Python, er det et viktig tema å ta opp: overtilpasning – den viktigste utfordringen knyttet til beslutningstrær.
Nedenfor er et eksempel på hvordan beslutningstreet tilpasser seg datasettet. Legg merke til hvordan modellen tilpasser seg treningsdataene og fanger opp mønstre og detaljer:
Selv om modellen passer perfekt til treningssettet uten å feilkategorisere noen eksempler, er problemet at beslutningsgrensene er for komplekse. Som et resultat vil nøyaktigheten på testsettet (eller kryssvalidering) være betydelig lavere enn nøyaktigheten på treningssettet, noe som indikerer at modellen overtilpasser.
Årsaken til dette er at modellen vil gjøre så mange delinger som nødvendig for å tilpasse treningsdataene perfekt.
Heldigvis er beslutningstrær svært konfigurerbare, så vi kan justere hyperparametrene for å minimere overtilpasning.
Maksimal tre-dybde
Dybde til en node er avstanden (vertikalt) fra noden til roten.
Vi kan begrense maksimal dybde på et beslutningstre, noe som gjør det mindre og mindre utsatt for overtilpasning. For å gjøre dette, gjør vi beslutningsnoder på maksimal dybde om til bladnoder.
Her er også en gif som viser hvordan beslutningsgrensen endres med ulike verdier for maksimal dybde:
Minimum antall eksempler
En annen måte å begrense treet på er å sette minimum antall eksempler på bladnodene. Dette gjør modellen enklere og mer robust mot uteliggere.
Du kan se hvordan denne hyperparameteren påvirker beslutningsgrensen:
Begge disse hyperparametrene er tilgjengelige i scikit-learn sin Decision Tree-implementasjon.
Som standard er treet uten begrensninger: max_depth er satt til None, noe som betyr at det ikke er noen grense for dybden, og min_samples_leaf er satt til 1.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår