Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Förhindra Överanpassning i Beslutsträd | Beslutsträd
Klassificering med Python

bookFörhindra Överanpassning i Beslutsträd

Innan vi går vidare till att implementera ett beslutsträd med Python, finns det ett viktigt ämne att diskutera: överanpassning – den främsta utmaningen med beslutsträd.

Nedan visas ett exempel på hur beslutsträdet anpassar sig till datamängden. Observera hur modellen anpassar sig till träningsdatan och fångar dess mönster och detaljer:

Även om modellen perfekt anpassar sig till träningsmängden utan att felklassificera några exempel, är problemet att beslutsgränserna är för komplexa. Därför kommer noggrannheten på testdata (eller vid korsvalidering) att vara avsevärt lägre än på träningsdatan, vilket indikerar att modellen överanpassar.

Anledningen till detta är att modellen kommer att göra så många uppdelningar som krävs för att passa träningsdatan perfekt.

Lyckligtvis är beslutsträdet mycket konfigurerbart, så vi kan justera dess hyperparametrar för att minimera överanpassning.

Maximal trädjup

Djup för en nod är avståndet (vertikalt) från noden till rot-noden.

Vi kan begränsa maximalt djup för ett beslutsträd, vilket gör det mindre och minskar risken för överanpassning. För att göra detta omvandlas beslutsnoder på maximalt djup till bladnoder.

Här finns även en gif som visar hur beslutsgränsen förändras med olika värden på maximalt djup:

Minsta antal prover

Ett annat sätt att begränsa trädet är att ange minsta antal prover på bladnoderna. Detta gör modellen enklare och mer robust mot avvikare.

Det går att se hur denna hyperparameter påverkar beslutsgränsen:

Båda dessa hyperparametrar finns tillgängliga i scikit-learns Decision Tree-implementation.
Som standard är trädet obegränsat: max_depth är satt till None, vilket innebär att det inte finns någon gräns för djupet, och min_samples_leaf är satt till 1.

question mark

Välj det FELAKTIGA påståendet.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 4.17

bookFörhindra Överanpassning i Beslutsträd

Svep för att visa menyn

Innan vi går vidare till att implementera ett beslutsträd med Python, finns det ett viktigt ämne att diskutera: överanpassning – den främsta utmaningen med beslutsträd.

Nedan visas ett exempel på hur beslutsträdet anpassar sig till datamängden. Observera hur modellen anpassar sig till träningsdatan och fångar dess mönster och detaljer:

Även om modellen perfekt anpassar sig till träningsmängden utan att felklassificera några exempel, är problemet att beslutsgränserna är för komplexa. Därför kommer noggrannheten på testdata (eller vid korsvalidering) att vara avsevärt lägre än på träningsdatan, vilket indikerar att modellen överanpassar.

Anledningen till detta är att modellen kommer att göra så många uppdelningar som krävs för att passa träningsdatan perfekt.

Lyckligtvis är beslutsträdet mycket konfigurerbart, så vi kan justera dess hyperparametrar för att minimera överanpassning.

Maximal trädjup

Djup för en nod är avståndet (vertikalt) från noden till rot-noden.

Vi kan begränsa maximalt djup för ett beslutsträd, vilket gör det mindre och minskar risken för överanpassning. För att göra detta omvandlas beslutsnoder på maximalt djup till bladnoder.

Här finns även en gif som visar hur beslutsgränsen förändras med olika värden på maximalt djup:

Minsta antal prover

Ett annat sätt att begränsa trädet är att ange minsta antal prover på bladnoderna. Detta gör modellen enklare och mer robust mot avvikare.

Det går att se hur denna hyperparameter påverkar beslutsgränsen:

Båda dessa hyperparametrar finns tillgängliga i scikit-learns Decision Tree-implementation.
Som standard är trädet obegränsat: max_depth är satt till None, vilket innebär att det inte finns någon gräns för djupet, och min_samples_leaf är satt till 1.

question mark

Välj det FELAKTIGA påståendet.

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 3
some-alt