Forelesning 9 Classification and Regression Trees Målet med trær Målet med trær er å klassifisere eller predikere et utfall basert på et sett av prediktorer. For eksempel: Mål: klassifiser et sett som «aksepterer kreditt kort», eller «aksepterer ikke». Regelen kan være: Hvis (inntekt >= 106) og (utdanning < 1.5) og (familie <= 2.5), vil klasse være = 0, altså (aksepterer ikke). Hvordan blir treet produsert? Ved hjelp av rekursiv partisjonering splitter vi treet inn i to deler for å oppnå maksimum homogenitet for utfallet innenfor hver ny del. Stoppe treet fra å vokse: Et overfylt tre er for komplekst og vil lide av overmontering. Trinn for utførelse av Rekursiv partisjonering Velg en av prediktorvariablene, x_i Velg en verdi av x_i, f.eks s_i, som dividerer trenings datasettet inn i to deler (trenger ikke være 50/50). Mål hvor «ren» eller homogen hver del er «Ren» = Inneholder settet stort sett en klasse Algoritmer prøver forskjellige verdier av x_i og s_i for å maksimere renhet i hver splitt. Etter du får en maksimum renhet splittelse, repeter prosessen for en splitt nummer to på en annen variabel også videre. Notat: A, B, C kan splittes på 3 måter. Med mange kategorier blir splittelsen enorm. {A}, og {B, C} {B} og {A, C} {C} og {A, B} Måling av urenhet Gini indeksen for rektangel A Hvor p = proporsjon av utfall i rektangel A som tilhører klasse k (av m klasser) I(A) = 0 når alle cases tilhører samme klasse. Max verdi når alle klasser er lik representert Entropi Urenhet og rekursiv partisjonering Oppnå helhetlig måling av urenhet. I hvert trinn vi oppnår dette sammenligner vi mål på tvers av alle mulige splits i alle variabler. Velg splitten som reduserer urenhet mest. Valget på splitt blir til en gren på treet. Overmonteringsproblemet 100% urenhet kompliserer dataene, som gjør at vi får mye støy i datasettet. Fulle trær er for kompleks og tilfører støy. Trær kan også bli ustabil, f.eks hvis 2 eller flere variabler er av lik betydning, og en CART går for en splittelse som avhenger av den første inndelingen av trening og validering settet. En annen inndeling i trening/validering kan lede til forskjellige initiale splitter. Dette kan føre til et veldig ulikt tre. Løsningen er cross validation. CART = Decision Trees, or just Trees Rules are represented by tree diagrams Etter et visst punkt i tre komplekset vil feilraten begynne å øke. Vi kan kontrollere dybden på treet. Vi kan minimere antall blar(nodes) vi splitter i, og antall poster i terminal seksjoner. Hva er optimal verdi for parameterne? Med cross validation tester vi flere trær. Vi deler inn data inn i (folds) for Model tilpasning og data for evaluering. GridsearchCV for mest nøyaktige parametere. Vi bruker gridsearchCV på treningssettet, koblet med cross-validation. Vi bygger treet med ulike verdier for parameterne, ved bruk av training fold. Måler nøyaktighet og velger treet med best utfall. Kan også bruke RandomizedSearchCV() hvis det er mange parametere involvert. Regresjonstrær er lik, med unntak av at prediksjon er utregnet som gjennomsnittet av den numeriske variabelen i rektangelen. Og urenhet er målt som sum of squared deviation from leaf mean. Bootstrapping Bootstrapping er et fleksibelt og kraftig verktøy innen statistikk som kan brukes til å kvantifisere usikkerhet assosiert med en gitt estimator. For eksempel kan det gi et estimat på standard error på en koefissient. Vi ønsker å investere i to finansielle assets X og Y. Pengene er gitt ved α for investeringen i X, og 1 – α for investeringen i Y. Vi vil minimere risiko for Var(αX + (1 – α)Y). Vi kan vise at verdien som minimerer risiko er gitt ved: Bootstrapping lar oss etterligne prosessen ved å ta mange målinger. Først tar vi kun én måling, som gir oss ett datasett. Deretter bootstrapper vi: vi lager mange datasett fra dette ene datasettet, ved å gjøre tilfeldige uttrekk med tilbakelegging I hvert av disse kan noen observasjoner fra målingen være tilstede mer enn en gang, mens andre ikke er til stede i det hele tatt. Hvert av datasettene fra bootstrapping har samme størrelse som datasettet vi fikk ved måling Så kan vi lage estimater (alfa hatt) for hvert av bootstrap-datasettene Bootstrapping kan også brukes til å hente konfidensintervall (se histogrammet) Men kan bootstrapping estimere prediksjonsfeil? (prediction error) Bagging and random forests Bagging (bootstrap aggregation) er en prosedyre for å redusere variansen på en statistisk læringsmetode. Introdusert her fordi det er en frekvent metode brukt i beslutningstrær. Vi kan bootstrappe ved å ta gjentakende prøver fra treningsdatasettet. Dette gjelder for regresjonstrær. Eksempel: Variable importance Hver variabel brukes av noen trær, og noen ikke. Vi kan derfor måle hver variabels deltagelse for å redusere urenhet. Dette er variabelbetydnings scoren. Boosting Boostede trær passer til en rekke enkeltrær. Hver påfølgende passform vekter opp feilklassifiserte poster fra tidligere stadium. Du har nå et sett med klassifiseringer ellerspådommer, en fra hvert tre. Bruk vektet stemmegivning for klassifisering, vektet gjennomsnitt for prediksjon, høyere vekter til senere trær Spesielt nyttig for "sjeldne tilfeller" scenario (anta at 1-er er den sjeldne klassen) Med enkle klassifiserere kan det være vanskelig for en "1" for å "bryte ut" fra den dominerende klassifisering, og mange blir feilklassifisert Oppvekting av dem fokuserer tretilpasningen på 1-tallet, og reduserer den dominerende effekten av 0-tallet Boosting fungerer ved at hvert tre gror sequentially (noe som opptrer i bestemt rekkefølge) Boosting for regression trees Boosting for classification Fordeler med trær: Enkel å forstå. Enkel å implementere. Variabel seleksjon og reduksjon er automatisk. Kan funke uten manglende data. Ulemper med trær: Ustabilitet og dårlig prediktiv ytelse.