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

bookSkogens Tilfeldighet

Random Forest bygger et stort antall beslutningstrær – vanligvis rundt 100 eller flere. Å lage så mange ulike trær er ikke enkelt kun ved å justere innstillinger, derfor introduseres tilfeldighet for å hjelpe. 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. Uttak av data for hvert tre;
  2. Uttak av egenskaper ved hvert beslutningspunkt i hvert tre.

Uttak av data

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

Som standard tilsvarer størrelsen på hvert tres datasett størrelsen på det opprinnelige datasettet. Uttak 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.

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

Utvalg av funksjoner

I et standard beslutningstre, vurderer hvert node alle tilgjengelige funksjoner for å finne det beste skillet – vanligvis ved å beregne mål som Gini-impuritet. Denne prosessen er beregningsmessig krevende.

I et Random Forest vurderes kun et tilfeldig utvalg av funksjoner ved hvert 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 funksjoner. For eksempel, hvis det er 9 funksjoner, kan 3 velges tilfeldig ved hvert node; hvis det er 10,000 funksjoner, kan omtrent 100 velges.

Funksjonene trekkes uten tilbakelegging, slik at samme funksjon ikke kan forekomme mer enn én gang i et enkelt node. Antallet funksjoner som vurderes kan justeres avhengig av bruksområdet.

Du kan kontrollere hvor mange funksjoner som vurderes ved hvert beslutningsnode 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, noe som gir enda mer tilfeldighet;
  • max_features=0.1: bruker 10% av funksjonene, der verdien tolkes som en andel.
Note
Merk

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

For å oppsummere: Et Random Forest er konstruert slik at hvert tre trenes på et forskjellig utvalg av dataene, og hver beslutningsnode i disse trærne vurderer et forskjellig tilfeldig utvalg av egenskaper. Denne innebygde tilfeldigheten fører til en variert samling av trær, noe som til slutt forbedrer modellens totale ytelse.

question mark

Hva bidrar til å oppnå tilfeldigheten i et Random Forest? Velg alle som gjelder.

Select the correct answer

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

Suggested prompts:

Can you explain why randomness is important in Random Forests?

How does sampling with replacement differ from sampling without replacement?

What is the effect of changing the max_features parameter?

Awesome!

Completion rate improved to 4.17

bookSkogens Tilfeldighet

Sveip for å vise menyen

Random Forest bygger et stort antall beslutningstrær – vanligvis rundt 100 eller flere. Å lage så mange ulike trær er ikke enkelt kun ved å justere innstillinger, derfor introduseres tilfeldighet for å hjelpe. 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. Uttak av data for hvert tre;
  2. Uttak av egenskaper ved hvert beslutningspunkt i hvert tre.

Uttak av data

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

Som standard tilsvarer størrelsen på hvert tres datasett størrelsen på det opprinnelige datasettet. Uttak 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.

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

Utvalg av funksjoner

I et standard beslutningstre, vurderer hvert node alle tilgjengelige funksjoner for å finne det beste skillet – vanligvis ved å beregne mål som Gini-impuritet. Denne prosessen er beregningsmessig krevende.

I et Random Forest vurderes kun et tilfeldig utvalg av funksjoner ved hvert 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 funksjoner. For eksempel, hvis det er 9 funksjoner, kan 3 velges tilfeldig ved hvert node; hvis det er 10,000 funksjoner, kan omtrent 100 velges.

Funksjonene trekkes uten tilbakelegging, slik at samme funksjon ikke kan forekomme mer enn én gang i et enkelt node. Antallet funksjoner som vurderes kan justeres avhengig av bruksområdet.

Du kan kontrollere hvor mange funksjoner som vurderes ved hvert beslutningsnode 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, noe som gir enda mer tilfeldighet;
  • max_features=0.1: bruker 10% av funksjonene, der verdien tolkes som en andel.
Note
Merk

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

For å oppsummere: Et Random Forest er konstruert slik at hvert tre trenes på et forskjellig utvalg av dataene, og hver beslutningsnode i disse trærne vurderer et forskjellig tilfeldig utvalg av egenskaper. Denne innebygde tilfeldigheten fører til en variert samling av trær, noe som til slutt forbedrer modellens totale ytelse.

question mark

Hva bidrar til å oppnå tilfeldigheten i et Random Forest? Velg alle som gjelder.

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 2
some-alt