Random forest
Også kendt som: tilfældig skov
En model, der bygger mange lidt forskellige beslutningstræer på tilfældige dele af data og lader dem stemme om svaret.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
En samling af beslutningstræer, hvor hvert træ trænes på en tilfældig stikprøve af træningsdata og kun må se på nogle få tilfældigt valgte features ved hver opdeling; for en ny sag kombineres træernes svar ved afstemning eller gennemsnit.
Forklaret enkelt
Som at bede hundredvis af mennesker gætte, hvor mange bolcher der er i et glas, hver fra sin egen side. De enkelte gæt rammer tit ved siden af, men gennemsnittet er som regel tæt på.
I praksis
Et dansk hospital forudsiger, hvilke patienter der sandsynligvis bliver genindlagt inden for 30 dage, ud fra alder, tidligere indlæggelser og prøvesvar, og det virker godt uden meget finjustering.
Hvorfor det betyder noget
Den retter den største svaghed ved et enkelt træ, at det lærer eksemplerne for tæt, og giver stærke resultater på data i tabeller med lille indsats, hvilket gør den til et oplagt førstevalg.
Teknisk uddybning
Random forests blev introduceret af Leo Breiman (2001, Machine Learning 45(1)). De kombinerer bagging (bootstrap aggregating, Breiman 1996), hvor hvert træ trænes på en bootstrapstikprøve trukket med tilbagelægning, med tilfældig udvælgelse af features: Ved hver opdeling overvejes kun en tilfældig delmængde af features. Den anden kilde til tilfældighed dekorrelerer træerne, og fordi variansen af et gennemsnit falder med korrelationen mellem dets medlemmer, har ensemblet langt lavere varians end noget enkelt dybt træ, samtidig med at den lave bias bevares.
De vigtigste hyperparametre er antallet af træer, hvor flere aldrig giver dårligere nøjagtighed, men koster tid; max_features, størrelsen af den tilfældige delmængde, hvor sqrt(p) er en almindelig standard ved klassifikation og alle features er scikit-learns standard ved regression; samt træernes dybde eller mindste bladstørrelse. Breimans oprindelige metode lader hvert træ stemme; scikit-learn tager i stedet gennemsnittet af træernes forudsagte klassesandsynligheder.
Da hver bootstrapstikprøve udelader omkring en tredjedel af rækkerne (1 - 1/e, ca. 36,8 procent), har hvert træ out-of-bag-eksempler, det aldrig har set. Forudsiges hver række kun med de træer, der ikke er trænet på den, får man out-of-bag-fejlen, et næsten gratis skøn over generaliseringsfejlen. Skove giver også feature-vigtigheder, enten gennemsnitligt fald i urenhed (hurtigt, men skævt mod features med mange værdier) eller permutationsvigtighed.
Random forests er robuste, lader sig let parallelisere og kræver lidt tuning, hvilket gør dem til en stærk målestok for data i tabeller. Veltunet gradient boosting slår dem som regel på nøjagtighed, og som alle træensembler kan de ikke ekstrapolere ud over det interval af målværdier, de så under træningen. Extremely randomised trees (Geurts m.fl., 2006) fører idéen videre ved også at vælge opdelingstærsklerne tilfældigt.
Hvad du bør lære først
Alt det, dette bygger på - grundlaget først.
- Træningsdata
- →Feature (inputvariabel)
- →Beslutningstræ
- →Random forest
Relationer
- Forudsætter
- Beslutningstræ
- Alternativ til
- Gradient boosting
- Afbøder
- Overtilpasning (overfitting)
Kilder og videre læsning
Officiel dokumentation
- scikit-learn User Guide, 1.11 Ensembles: random forests · scikit-learn
Opslagsværker
- Breiman (2001), Random Forests · Machine Learning
Lærebøger
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Test dig selv
Indlæser…