0809 p2 z10 prezentacija
DESCRIPTION
slucajna sumaTRANSCRIPT
Goran Repinc
Zagreb, veljača, 2009.
1
Slučajna šuma (random forest)� Slučajna šuma (random forest ) je klasifikacijski
algoritam koji su razvili Leo Breiman i Adele Cutler.
� Termin slučajna šuma odlučivanja (random decision forest) je prvi predložio Tin Kam Ho iz Bell Labs 1995.
� Algoritam spaja Breimanovu ''bagging'' ideju s Hoovom ''random subspace method'' da bi stvorio skup stabla odlučivanja s kontroliranim varijacijama.
2
Osnovna ideja
� Umjesto jednog klasifikatora imami ih mnogo
� Svaki klasifikator pojedinačno je općenito slab klasifikator
� Kada treba klasificirati novi primjer:
Svaki klasifikator neovisno od drugih izvodi klasifikaciju
Primjeru se dodjeljuje ona klasa koju je dalo najviše
klasifikatora
3
Osnovna ideja
4
Konstrukcija stablaDTree(Primjeri, Atributi)
Kreiraj osnovni čvor stabla
Ako su svi primjeri iste klase i => stablo je osnovni čvor s oznakom i
Ako su svi atributi iskorišteni => vrati osnovni čvor s oznakom najbrojnije klase
Inače
Dok atributi >0
Ai = Odredi atribut koji najbolje klasificira skup primjera
Za svaku vrijednost vj od Ai
Dodaj novu granu ispod čvora, koja korespondira s testom Ai = vj
Neka su Primjeri(Ai = vj) onaj skup primjera koji zadovoljava Ai = vj
Ako primjeri (Ai=vj)=0
Dodaj oznaku c = najčešća klasa u skupu Primjeri
Inače za novu granu dodaj novo podstablo
DTree(Primjeri(Ai=vj),Atributi-Ai)
5
Konstrukcija šume
� Neka ne n broj primjera, k broj stabala i m zadani parametar
� Za svako ok K stabala
� Odaberemo na slučajan način n primjera za učenje s preklapanjem
� Konstruirmo stablo tako da na svakom čvoru odaberemo m atributa i radimo najbolju podjelu po tih m atributa
� Stablo raste do maksimalne veličine – nema rezanja
6
Klasifikacija
Kada želimo klasificirati novi primjer:
� pustimo primjer niz svako stablo
� stablo zasebno donosi odluku o klasi (kažemo da stabla glasaju za klasu)
� primjer će biti klasificiran klasom koja dobije najviše glasova
7
Parametar mGreška slučajne šume ovisi o dvije veličine:
� koreliranost između stabala- povećanje koreliranosti povećava grešku stabla.
� jakost svakog pojedinog stabla stabla u šumi- stablo s niskim stupnjem pogreške ima veliku jakost; povećanje jakosti svakog pojedinog stabla smanjuje grešku cijele šume.
Smanjenjem varijable m smanjuje i koreliranost i jakost. Povećanje povećava i koreliranost i jakost. Negdje na sredini se nalazi optimalan interval za m (obično dosta širok). Korištenje oob stope pogreške optimalan interval za m se može brzo naći. To je jedini podesivi parametar (osim broja stabla) na koji je slučajna šuma osjetljiva.
8
Oob procjena pogreške� Kod slučajne šume, nema potrebe za validacijom ili odvojenim
testovima da bi se dobila nepristrana procjena greške. Greška se procjenjuje interno, tijekom rasta šume.
� Svako stablo se gradi koristeći drugačiji skup primjera. Oko jedne trećine primjera se ne koristi za konstrukciju stabla.
� Svaki takav podatak se pusti kroz stablo da bi se izvršila klasifikacija. Na taj način svaki primjer se testira u otprilike trećini stabala. Na kraju izvođenja, uzmimo j da bude klasa koja je dobila najviše glasova svaki put kada je primjer n bio oob. Omjer broja puta kada j nije jednak pravoj klasi i prosjek svih n-ova daje oob procjenu pogreške. Pokazalo se da je to nepristrana procjena u mnogim testovima.
9
Mogućnosti1. Vrlo točan na nekim skupovima podataka2. Efikasna na velikim skupovima podataka3. Efikasna za velik broj atributa4. Daje procjenu koje varijable su važne za klasifikaciju5. Daje unutrašnju nepristranu procjenu opće greške tijekom procesa
rasta šume6. Ima učinkovitu metodu procjene nepotpunih podataka i zadržava
točnost i kada mnogo podataka nedostaje7. Jedno narasla šuma može se spremiti za buduću upotrebu8. Prototipovi se izračunavaju koji daju procjenu o odnosu varijabli i
klasifikacije9. Računa udaljenosti između parova primjera koje se mogu koristiti u
klasterima, pronalaženju outlinera i daje zanimljiv prikaz podataka. Ovo se može proširiti na neklasificirane podatke koje vodi nenadgledanom učenju
10. Pruža eksperimentalnu metodu za otkrivanje interakcije među varijablama
10
Važnost atributa� U svakom izgrađenom stablu, testiramo oob primjere
i brojimo broj točnih glasova. Sada slučajno permutiramo vrijednosti atributa m u oob primjerima i ponovimo test. Oduzmimo broj točnih klasifikacija za prave i permutirane primjere. Prosjek tog broja po svim stablima u šumi je približna važnost atributa m.
� Očekujemo da broj točnih glasova neće mnogo razlikovati ako je atribut nebitan, dok će se za važan atribut znatno razlikovati
11
Važnost atributa - primjer
12
Udaljenosti (proximities)� Najkorisniji alat u slučajnim šumama je računanje
udaljenosti.
� Udaljenosti originalno tvore N x N matricu.
� Nakon rasta stabla, sve primjere i oob i ne-oob pustimo niz stablo. Ako primjeri m i n završe u istom listu njihova udaljenost se povećava za 1.
� Na kraju se sve udaljenosti normaliziraju brojem stabala.
� Udaljenosti se koriste za skaliranje, prototipove, dopunjavanje nepoznatih vrijednosti, pronalaženje outlinera
13
Prototipovi� Prototipovi su način da saznamo kako su atributi
povezane s klasifikacijom.
� Za j-tu klasu, nađemo primjer koji ima najviše j klasifikacija među svojih k najbližih susjeda.
� Susjede određujemo koristeći udaljenosti.
� Među tih k slučajeva nađemo medijan, 25 i 75 percentil za svaki atribut.
� Medijani su prototipovi za j-tu klasu, a percentili nam daju procjenu stabilnosti.
14
Outliners (stršeće vrijednosti)
� Outlineri se općenito definiraju kao primjeri koji su odvojeni od glavnog dijela podataka.
� To se može prevesti kao: outlineri su oni slučajevi čije su udaljenosti prema ostalima slučajevima male.
� Koristan dodatak je promatrati outlinere relativno prema njihovoj klasi. Dakle, outliner klase j je primjer čije su udaljenosti prema ostalim primjerima klase j male.
15
Outliners - primjer
16
Više informacija
Za više informacija o
� Skaliranju
� Nadopunjavanju nepotpunih podataka iz skupa za učenje i skupa za testiranje
� Lokalnoj važnosti varijabli
� Nenadgledanom učenju
� Balansiranju greške
www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm
17
Testiranja – parametar m
18
Testiranja – parametar m
19
Testiranja – broj stabala
20
Testiranja – oob greška
21
Usporedba
22
Zaključak
� Random forest je dobar klasifikator za velike skupove podataka s velikim brojem atributa.
� Pruža velike mogućnosti u analizi podataka.
� Mane su mu vremenska i prostorna složenost s obzirom na jednostavnije klasifikatore.
23