Gå til indhold
atlas

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.

  1. Træningsdata
  2. →Feature (inputvariabel)
  3. →Beslutningstræ
  4. →Random forest

Relationer

Forudsætter
Beslutningstræ
Alternativ til
Gradient boosting

Kilder og videre læsning

Officiel dokumentation

Opslagsværker

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…

Atlas er i beta.