Skovens Tilfældighed
Stryg for at vise menuen
Random Forest opbygger et stort antal beslutningstræer – typisk omkring 100 eller endnu flere. Det er ikke let at skabe så mange forskellige træer blot ved at justere indstillinger, så der introduceres tilfældighed for at hjælpe. Heldigvis er beslutningstræer meget følsomme over for små ændringer i data og indstillinger, hvilket naturligt fører til en bred variation af træer i skoven.
Der er to kilder til tilfældighed i en Random Forest:
- Udtagning af data til hvert træ;
- Udtagning af features ved hver beslutningsnode i hvert træ.
Udtagning af data
For at skabe et forskelligt træningssæt til hvert beslutningstræ i en skov anvendes bootstrap-metoden (også kendt som bagging). Ideen er at udtage, med tilbagelægning, et datasæt af samme størrelse til hvert træ.
Som standard matcher størrelsen på hvert træs datasæt størrelsen på det oprindelige datasæt. Udtagning med tilbagelægning kan opfattes som tilfældig udvælgelse af et datapunkt fra træningssættet – svarende til at trække et kort fra en kortbunke. Men i modsætning til almindelig korttrækning fjernes det udvalgte datapunkt ikke, så det samme datapunkt kan vælges flere gange.
Hvert træ trænes på et forskelligt delmængde af dataene, hvilket allerede hjælper med at gøre træerne forskellige. For at tilføje endnu mere tilfældighed og øge træningshastigheden kan vi også begrænse antallet af features, som hvert træ overvejer ved opdeling.
Udvælgelse af features
I et standard beslutningstræ undersøger hver node alle tilgængelige features for at finde den bedste opdeling – typisk ved at beregne metrikker som Gini impurity. Denne proces er beregningsmæssigt krævende.
I et Random Forest overvejes kun et tilfældigt delmængde af features ved hver node. Dette øger træningshastigheden og tilføjer tilfældighed, hvilket hjælper med at gøre træerne mere forskellige. En almindelig tilgang er at bruge kvadratroden af det samlede antal features. For eksempel, hvis der er 9 features, kan 3 tilfældigt vælges ved hver node; hvis der er 10.000 features, vælges omkring 100.
Features udvælges uden tilbageføring, så den samme feature ikke optræder mere end én gang ved en enkelt node. Antallet af features, der skal overvejes, kan justeres afhængigt af anvendelsen.
Du kan styre, hvor mange features der overvejes ved hver beslutningsnode, ved at bruge parameteren max_features i scikit-learn's implementering. Her er nogle af de populære valg:
max_features='sqrt': bruger kvadratroden af det samlede antal features. Dette er en almindelig standard, der balancerer nøjagtighed og effektivitet;max_features='log2': bruger base-2 logaritmen af det samlede antal features, hvilket giver endnu mere tilfældighed;max_features=0.1: bruger 10% af features, hvor værdien behandles som en andel.
Du kan også sætte max_features til en hvilken som helst andel mellem 0 og 1 (f.eks. max_features=0.1 bruger 10% af features).
Sammenfattende er et Random Forest designet således, at hvert træ trænes på et forskelligt datasample, og hver beslutningsnode i disse træer overvejer et forskelligt tilfældigt udvalg af features. Denne indbyggede tilfældighed fører til en varieret samling af træer, hvilket i sidste ende forbedrer modellens samlede ydeevne.
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