CMD + K

Introduksjon til maskinlæringEnsembler: bagging, random forest og boostingBegreper & formler12
12 min lesing

Ensembler: bagging, random forest og boosting

Kombiner mange trær: bagging og random forest reduserer varians med tilfeldighet, mens AdaBoost og gradient boosting retter opp feil steg for steg.

Læringsmål
  • 01Forklar hva et bootstrap-utvalg er, og regn ut andelen rader som blir out-of-bag
  • 02Forklar hvorfor bagging reduserer varians, og hvorfor korrelasjon mellom trærne begrenser gevinsten
  • 03Forklar hvordan random forest dekorrelerer trærne med tilfeldig featureutvalg ved hver split
  • 04Regn ut stemmevekten og de nye vektene i én AdaBoost-runde
  • 05Regn ut én runde gradient boosting med residualer og læringsrate
  • 06Sammenlign bagging og boosting med hensyn til bias, varians og parallellisering
0 av 20 aktiviteter
Kjerneidé

Ett beslutningstre er som én ekspert med sterke meninger: treffsikker på det den har sett, men lett å vippe av pinnen. Et ensemble spør mange modeller og slår svarene sammen. Bagging og random forest lar mange uavhengige trær stemme, slik at de tilfeldige feilene deres jevner seg ut, mens boosting bygger modellene etter hverandre og lar hver ny modell øve mest på det de forrige bommet på.

Steg 1 av 7

Bootstrap-utvalg og out-of-bag

Konsept

Et beslutningstre er ustabilt: litt andre treningsdata gir et annet tre. Det er en svakhet når du har ett tre, men en mulighet når du kan lage mange. Hadde vi hatt mange uavhengige treningssett fra samme fordeling, kunne vi trent ett tre på hvert og tatt snittet. Det har vi ikke. Vi har ett datasett.

Løsningen er et bootstrap-utvalg: trekk rader fra de radene i treningssettet, med tilbakelegging. Hver trekning velger hvilken som helst rad med sannsynlighet , uansett hva som ble trukket før. Noen rader kommer derfor med flere ganger, og andre kommer ikke med i det hele tatt. Hvert tre ser en litt annen versjon av dataene.

Hvor mange rader blir utelatt? En bestemt rad blir ikke valgt i én trekning med sannsynlighet , og ikke i noen av de uavhengige trekningene med sannsynlighet

Hvert bootstrap-utvalg inneholder altså bare rundt av de unike radene. De rundt som ikke ble trukket, er out-of-bag for det treet. Det er en gave: for hver treningsrad finnes det trær som aldri har sett den. Lar vi bare de trærne stemme over raden, får vi en ærlig prediksjon. Gjør vi det for alle rader, har vi et OOB-estimat av testfeilen uten å sette av et eget valideringssett. I scikit-learn slår du det på med oob_score=True.

Interaktiv figur

Prøv: Gå gjennom ett tre om gangen: se hvilke punkter som trekkes flere ganger, hvilke som blir out-of-bag, og hvordan treet stemmer med de andre.

Laster interaktiv figur …
Figur 10.1Bootstrap-trekk og out-of-bag. Hvert tre trekker ti punkter med tilbakelegging; punktene som aldri ble trukket, er out-of-bag.
Interaktiv
Playground

Bootstrap og flertallsstemme

Prøv: Dra n ned mot 5 og se «andel unike rader» stige over 0,632; dra traer opp og se «flertallet av … har rett» nærme seg 1.

Pythonkap6-bootstrap-stemmer.py
RegneeksempelEt datasett har 5 rader. Trekk et bootstrap-utvalg og regn ut sannsynligheten for at rad 4 blir out-of-bag.

Steg 1. Fem trekk med tilbakelegging kan for eksempel gi radene . Rad 3 er med to ganger, og rad 4 er ikke med. Rad 4 er out-of-bag for dette treet.

Steg 2. I hver trekning er sannsynligheten for å ikke velge rad 4 lik . Trekningene er uavhengige, så sannsynligheten for å bomme på rad 4 alle fem gangene er .

Steg 3. For store datasett nærmer tallet seg . Et tre som trenes på et bootstrap-utvalg, ser derfor i snitt rundt av de unike radene.

Steg 4. Med 100 trær er en bestemt rad out-of-bag for omtrent av dem. Det er de trærne som gir OOB-prediksjonen for raden.

Øving 1 av 3

Hva kjennetegner et bootstrap-utvalg med samme størrelse som originaldatasettet?

Øving 2 av 3

En random forest har 200 trær trent på bootstrap-utvalg av samme størrelse som datasettet. Omtrent hvor mange trær kan brukes til out-of-bag-prediksjon for ett bestemt treningspunkt?

Øving 3 av 3

Et datasett har 8 rader. Du trekker et bootstrap-utvalg på 8 rader med tilbakelegging. Hva er sannsynligheten for at en bestemt rad ikke kommer med i utvalget? Oppgi svaret med to desimaler.

Mine notater

Skriv egne notater for dette kapittelet. De lagres automatisk og dukker opp i «Mine notater»-oversikten paa fag-siden.

Laster…