Bootstrap-utvalg og out-of-bag
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.
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.
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.
RegneeksempelEt datasett har 5 rader. Trekk et bootstrap-utvalg og regn ut sannsynligheten for at rad 4 blir out-of-bag.Vis løsningSkjul løsning
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.
Hva kjennetegner et bootstrap-utvalg med samme størrelse som originaldatasettet?
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?
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.