Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Skogens Tilfeldighet | Random Forest
Klassifisering med Python

Skogens Tilfeldighet

Sveip for å vise menyen

Random Forest bygger et stort antall beslutningstrær – vanligvis rundt 100 eller flere. Å lage så mange forskjellige trær er ikke enkelt bare ved å justere innstillinger, så tilfeldighet introduseres for å hjelpe til. Heldigvis er beslutningstrær svært følsomme for små endringer i dataene og innstillinger, noe som naturlig fører til stor variasjon blant trærne i skogen.

Det finnes to kilder til tilfeldighet i en Random Forest:

  1. Uttrekking av data for hvert tre;
  2. Uttrekking av egenskaper ved hvert beslutningspunkt i hvert tre.

Uttrekking av data

For å lage et forskjellig treningssett for hvert beslutningstre i en skog, brukes bootstrap-metoden (også kjent som bagging). Ideen er å trekke ut, med tilbakelegging, et datasett av samme størrelse for hvert tre.

Som standard tilsvarer størrelsen på datasettet til hvert tre størrelsen på det opprinnelige datasettet. Uttrekking med tilbakelegging kan sees på som å tilfeldig velge et datapunkt fra treningssettet – likt det å trekke et kort fra en kortstokk. Men i motsetning til vanlig korttrekking, fjernes ikke det valgte datapunktet, så det samme datapunktet kan velges flere ganger.

RandomForest

Hvert tre trenes på et forskjellig delsett av dataene, noe som allerede bidrar til å gjøre trærne ulike. For å tilføre enda mer tilfeldighet og øke treningshastigheten, kan vi også begrense antall egenskaper hvert tre vurderer når det foretas delinger.

Utvalg av egenskaper

I et standard beslutningstre vurderer hver node alle tilgjengelige egenskaper for å finne den beste delingen – vanligvis ved å beregne mål som Gini impurity. Denne prosessen er beregningsmessig krevende.

I et Random Forest vurderes kun et tilfeldig delsett av egenskaper ved hver node. Dette gjør treningen raskere og tilfører tilfeldighet, noe som bidrar til å gjøre trærne mer varierte. En vanlig tilnærming er å bruke kvadratroten av det totale antallet egenskaper. For eksempel, hvis det finnes 9 egenskaper, kan 3 velges tilfeldig ved hver node; hvis det er 10 000 egenskaper, kan omtrent 100 velges.

Egenskapene velges uten tilbakelegging, slik at samme egenskap ikke kan forekomme mer enn én gang i en node. Antallet egenskaper som vurderes kan justeres etter behov.

Egenskaper

Du kan kontrollere hvor mange funksjoner som vurderes ved hvert beslutningspunkt ved å bruke parameteren max_features i scikit-learn-implementasjonen. Her er noen populære valg:

  • max_features='sqrt': bruker kvadratroten av det totale antallet funksjoner. Dette er en vanlig standard som balanserer nøyaktighet og effektivitet;
  • max_features='log2': bruker base-2-logaritmen av det totale antallet funksjoner, og gir enda mer tilfeldighet;
  • max_features=0.1: bruker 10 % av funksjonene, hvor verdien behandles som en andel.
Note
Merk

Du kan også sette max_features til en hvilken som helst andel mellom 0 og 1 (f.eks. max_features=0.1 bruker 10 % av funksjonene).

Oppsummert er en Random Forest utformet slik at hvert tre trenes på et forskjellig utvalg av dataene, og hvert beslutningspunkt i disse trærne vurderer et forskjellig tilfeldig delsett av funksjoner. Denne innebygde tilfeldigheten fører til en variert samling av trær, som til slutt forbedrer den totale ytelsen til modellen.

question mark

Hva bidrar til å oppnå tilfeldighet i en Random Forest? Velg alle som gjelder.

Velg alle riktige svar

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 4. Kapittel 2
some-alt