Uploaded by Rimba Fjeldsø

Classification and regression trees

advertisement
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.
Download