Skovens Tilfældighed
Random Forest opbygger et stort antal beslutningstræer – typisk omkring 100 eller 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 oprette et forskelligt træningssæt til hvert beslutningstræ i en skov anvendes bootstrap-metoden (også kendt som bagging). Ideen er at udtage, med tilbageføring, et datasæt af samme størrelse til hvert træ.
Som standard svarer størrelsen på hvert træs datasæt til størrelsen på det oprindelige datasæt. Udtagning med tilbageføring 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 data, hvilket allerede bidrager til 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 funktioner
I et standard beslutningstræ undersøger hver node alle tilgængelige funktioner for at finde den bedste opdeling – typisk ved at beregne målinger som Gini-urenhed. Denne proces er beregningsmæssigt krævende.
I et Random Forest overvejes kun et tilfældigt delmængde af funktioner ved hver node. Dette øger træningshastigheden og tilføjer tilfældighed, hvilket gør træerne mere forskellige. En almindelig tilgang er at bruge kvadratroden af det samlede antal funktioner. For eksempel, hvis der er 9 funktioner, kan 3 tilfældigt vælges ved hver node; hvis der er 10.000 funktioner, kan omkring 100 blive udvalgt.
Funktionerne udvælges uden tilbageføring, så den samme funktion ikke optræder mere end én gang ved en enkelt node. Antallet af funktioner, der skal overvejes, kan justeres afhængigt af anvendelsen.
Du kan styre, hvor mange funktioner der overvejes ved hver beslutningsnode ved at bruge parameteren max_features i scikit-learn-implementeringen. Her er nogle af de populære valg:
max_features='sqrt': bruger kvadratroden af det samlede antal funktioner. Dette er en almindelig standard, der balancerer nøjagtighed og effektivitet;max_features='log2': bruger base-2 logaritmen af det samlede antal funktioner, hvilket giver endnu mere tilfældighed;max_features=0.1: bruger 10% af funktionerne, 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. bruger max_features=0.1 10% af funktionerne).
For at opsummere er et Random Forest designet således, at hvert træ trænes på et forskelligt udsnit af dataene, og hver beslutningsnode i disse træer overvejer et forskelligt tilfældigt delmængde af funktioner. 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
Awesome!
Completion rate improved to 4.17
Skovens Tilfældighed
Stryg for at vise menuen
Random Forest opbygger et stort antal beslutningstræer – typisk omkring 100 eller 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 oprette et forskelligt træningssæt til hvert beslutningstræ i en skov anvendes bootstrap-metoden (også kendt som bagging). Ideen er at udtage, med tilbageføring, et datasæt af samme størrelse til hvert træ.
Som standard svarer størrelsen på hvert træs datasæt til størrelsen på det oprindelige datasæt. Udtagning med tilbageføring 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 data, hvilket allerede bidrager til 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 funktioner
I et standard beslutningstræ undersøger hver node alle tilgængelige funktioner for at finde den bedste opdeling – typisk ved at beregne målinger som Gini-urenhed. Denne proces er beregningsmæssigt krævende.
I et Random Forest overvejes kun et tilfældigt delmængde af funktioner ved hver node. Dette øger træningshastigheden og tilføjer tilfældighed, hvilket gør træerne mere forskellige. En almindelig tilgang er at bruge kvadratroden af det samlede antal funktioner. For eksempel, hvis der er 9 funktioner, kan 3 tilfældigt vælges ved hver node; hvis der er 10.000 funktioner, kan omkring 100 blive udvalgt.
Funktionerne udvælges uden tilbageføring, så den samme funktion ikke optræder mere end én gang ved en enkelt node. Antallet af funktioner, der skal overvejes, kan justeres afhængigt af anvendelsen.
Du kan styre, hvor mange funktioner der overvejes ved hver beslutningsnode ved at bruge parameteren max_features i scikit-learn-implementeringen. Her er nogle af de populære valg:
max_features='sqrt': bruger kvadratroden af det samlede antal funktioner. Dette er en almindelig standard, der balancerer nøjagtighed og effektivitet;max_features='log2': bruger base-2 logaritmen af det samlede antal funktioner, hvilket giver endnu mere tilfældighed;max_features=0.1: bruger 10% af funktionerne, 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. bruger max_features=0.1 10% af funktionerne).
For at opsummere er et Random Forest designet således, at hvert træ trænes på et forskelligt udsnit af dataene, og hver beslutningsnode i disse træer overvejer et forskelligt tilfældigt delmængde af funktioner. 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!