Random Forests - Véletlen erdők Szabó Adrienn Adatbányászat és Webes Keresés Kutatócsoport 2010
Tartalom Fő forrás: Leo Breiman: Random Forests Machine Learning, 45, 5-32, 2001 Alapok Döntési fa Véletlen erdők Véletlen erdők építése Nem formálisan Formálisan Véletlen erdő típusok A véletlen erdők jó tulajdonságai Belső becslések Kiértékelés Klasszifikáció További eredmények Regresszió
Amiből építkezni fogunk: döntési fa Az egyes attribútumok értékei alapján a mintákat hierarchikusan csoportosítjuk. A levelek: osztálycímkék. ID Gyártás helye Kor Motor Szín ccm Jól eladható? 1 Németo. 3-6 dízel fehér 1300-1600 igen 2 Japán 6-10 dízel piros 1600 felett igen 3 Japán 3-6 dízel piros 1300-1600 nem
Döntési fa A jó döntési fa: példákkal konzisztens, minél tömörebb (lehető legkevesebb teszttel döntésre jussunk) Hogyan építsük fel? Legegyszerűbb az ID3 algoritmus: a gyökértől kezdve építjük a fát, mohó módon mindig úgy válasszunk döntési attribútumot egy csúcspontban, hogy az információnyereség ( IG(S, a) = H(S) H(S a) ) maximális legyen Továbbfejlesztés: Information Gain helyett Gain Ratio, ami nem súlyozza túl azokat az attribútumokat amik sok különböző értéket felvehetnek
Döntési fa A jó döntési fa: példákkal konzisztens, minél tömörebb (lehető legkevesebb teszttel döntésre jussunk) Hogyan építsük fel? Legegyszerűbb az ID3 algoritmus: a gyökértől kezdve építjük a fát, mohó módon mindig úgy válasszunk döntési attribútumot egy csúcspontban, hogy az információnyereség ( IG(S, a) = H(S) H(S a) ) maximális legyen Továbbfejlesztés: Information Gain helyett Gain Ratio, ami nem súlyozza túl azokat az attribútumokat amik sok különböző értéket felvehetnek
Döntési fa A jó döntési fa: példákkal konzisztens, minél tömörebb (lehető legkevesebb teszttel döntésre jussunk) Hogyan építsük fel? Legegyszerűbb az ID3 algoritmus: a gyökértől kezdve építjük a fát, mohó módon mindig úgy válasszunk döntési attribútumot egy csúcspontban, hogy az információnyereség ( IG(S, a) = H(S) H(S a) ) maximális legyen Továbbfejlesztés: Information Gain helyett Gain Ratio, ami nem súlyozza túl azokat az attribútumokat amik sok különböző értéket felvehetnek
Döntési fa A jó döntési fa: példákkal konzisztens, minél tömörebb (lehető legkevesebb teszttel döntésre jussunk) Hogyan építsük fel? Legegyszerűbb az ID3 algoritmus: a gyökértől kezdve építjük a fát, mohó módon mindig úgy válasszunk döntési attribútumot egy csúcspontban, hogy az információnyereség ( IG(S, a) = H(S) H(S a) ) maximális legyen Továbbfejlesztés: Information Gain helyett Gain Ratio, ami nem súlyozza túl azokat az attribútumokat amik sok különböző értéket felvehetnek
Mik a véletlen erdők? Alapötlet: sok döntési fa, amik valamennyire különbözőek Mindegyik tippel majd valamit, a szavazás végeredményeként a leggykoribb választ fogadjuk el Az erdő hatékonysága a következőkön múlik: generált fák számán (ált. ha több fa szavaz, javul az eredmény) és minőségén generált fák közötti korreláción (ha nő a fák közötti korreláció, az eredmény romlik)
Mik a véletlen erdők? Alapötlet: sok döntési fa, amik valamennyire különbözőek Mindegyik tippel majd valamit, a szavazás végeredményeként a leggykoribb választ fogadjuk el Az erdő hatékonysága a következőkön múlik: generált fák számán (ált. ha több fa szavaz, javul az eredmény) és minőségén generált fák közötti korreláción (ha nő a fák közötti korreláció, az eredmény romlik)
Random forest előnyei Jó eredmények (pontos klasszifikáció) Gyorsan lefut, nagy adatokra is használható Több ezres dimenziójú bemenetet is képes kezelni Becsléseket ad arra hogy mely változók fontosak Hiányzó adatokat képes megbecsülni Használható regresszióra; kis kiterjesztéssel klaszterezésre vagy outlier-szűrésre is
Véletlen erdő építése Breiman módszere: Képezünk K döntési fát úgy, hogy bootstrapping-gal (visszatevéses sorsolás, N-ből N-et sorsolunk) külön-külön tanuló adathalmazt készítünk hozzájuk Az egyes fák építésekor a csomópontokban az attribútum választáskor a lehetséges attribútumhalmazt megszorítjuk egy jóval kisebb méretűre véletlenszerű választással. (Utána a max. IG-t vesszük) Nyesést nem alkalmazunk a fákon
Véletlen erdő építése Breiman módszere: Képezünk K döntési fát úgy, hogy bootstrapping-gal (visszatevéses sorsolás, N-ből N-et sorsolunk) külön-külön tanuló adathalmazt készítünk hozzájuk Az egyes fák építésekor a csomópontokban az attribútum választáskor a lehetséges attribútumhalmazt megszorítjuk egy jóval kisebb méretűre véletlenszerű választással. (Utána a max. IG-t vesszük) Nyesést nem alkalmazunk a fákon
Véletlen erdő építése Breiman módszere: Képezünk K döntési fát úgy, hogy bootstrapping-gal (visszatevéses sorsolás, N-ből N-et sorsolunk) külön-külön tanuló adathalmazt készítünk hozzájuk Az egyes fák építésekor a csomópontokban az attribútum választáskor a lehetséges attribútumhalmazt megszorítjuk egy jóval kisebb méretűre véletlenszerű választással. (Utána a max. IG-t vesszük) Nyesést nem alkalmazunk a fákon
Véletlen erdő építése Breiman módszere: Képezünk K döntési fát úgy, hogy bootstrapping-gal (visszatevéses sorsolás, N-ből N-et sorsolunk) külön-külön tanuló adathalmazt készítünk hozzájuk Az egyes fák építésekor a csomópontokban az attribútum választáskor a lehetséges attribútumhalmazt megszorítjuk egy jóval kisebb méretűre véletlenszerű választással. (Utána a max. IG-t vesszük) Nyesést nem alkalmazunk a fákon
Véletlen erdő építése
Véletlen erdők építése Az egyes fák egyes csúcsainál véletlenszerűen sorsolt attribútumokól választhatjuk csak ki a döntési attribútumot.
Formális definíció Véletlen erdőnek nevezzük azt az osztályozót amely döntési fák {h(x, θ k ), k = 1,... K } halmazából áll ahol a {θ k }-k független, azonos eloszlású random vektorok, és a fák többségi szavazással döntenek (minden fa egy-egy szavazatot adhat le egy-egy osztályozandó vektorra). Tétel: A fák számának növelésével a klasszifikáció minősége konvergál (nem lesz túltanulás). Bizonyítás: Nagy számok erős törvénye segítségével.
Formális definíció Véletlen erdőnek nevezzük azt az osztályozót amely döntési fák {h(x, θ k ), k = 1,... K } halmazából áll ahol a {θ k }-k független, azonos eloszlású random vektorok, és a fák többségi szavazással döntenek (minden fa egy-egy szavazatot adhat le egy-egy osztályozandó vektorra). Tétel: A fák számának növelésével a klasszifikáció minősége konvergál (nem lesz túltanulás). Bizonyítás: Nagy számok erős törvénye segítségével.
Formális definíció Margin: minél nagyobb, annál biztosabb az eredmény; ha negatív akkor hibázott az erdő: mg(x, Y ) = avg k I(h k (X) = Y ) max j Y (avg ki(h k (X) = j)) (X: a bemeneti vektorok, Y : a hozzájuk tartozó osztályok) A döntési fák általánosítási hibája (generalization error): PE = P X,Y (mg(x, Y ) < 0)
Formális definíció Margin: minél nagyobb, annál biztosabb az eredmény; ha negatív akkor hibázott az erdő: mg(x, Y ) = avg k I(h k (X) = Y ) max j Y (avg ki(h k (X) = j)) (X: a bemeneti vektorok, Y : a hozzájuk tartozó osztályok) A döntési fák általánosítási hibája (generalization error): PE = P X,Y (mg(x, Y ) < 0)
A fák ereje és korrelációja Felső korlát adható a véletlen erdő általánosítási hibájára, ami két dologtól függ: az egyes klasszifikátorok (döntési fák) pontosságától a fák közötti korrelációtól PE ρ(1 s 2 )/s 2 ahol ρ az átlagos korreláció a fák között, és s a h(x, θ) klasszifikátorhalmaz ereje: s = E X,Y mg(x, Y )
A fák ereje és korrelációja Felső korlát adható a véletlen erdő általánosítási hibájára, ami két dologtól függ: az egyes klasszifikátorok (döntési fák) pontosságától a fák közötti korrelációtól PE ρ(1 s 2 )/s 2 ahol ρ az átlagos korreláció a fák között, és s a h(x, θ) klasszifikátorhalmaz ereje: s = E X,Y mg(x, Y )
Véletlen erdő típusok Egyszerű bagging: lehetne belül más klasszifikátor is, de döntési fa van Random Split Selection: faépítésnél mindig a legjobb B válozóból választunk egyet véletlenszerűen Random Subspace: minden fát egy-egy rögzített, véletlenül választott attribútumhalmaz alapján építünk fel Breiman módszere: a fent bemutatott (bagging + random m változóból a legjobb választása a facsúcsoknál, ahol m << M, ahol M az attribútumok száma; általában m < log 2 M)
Véletlen erdő típusok Egyszerű bagging: lehetne belül más klasszifikátor is, de döntési fa van Random Split Selection: faépítésnél mindig a legjobb B válozóból választunk egyet véletlenszerűen Random Subspace: minden fát egy-egy rögzített, véletlenül választott attribútumhalmaz alapján építünk fel Breiman módszere: a fent bemutatott (bagging + random m változóból a legjobb választása a facsúcsoknál, ahol m << M, ahol M az attribútumok száma; általában m < log 2 M)
Véletlen erdő típusok Egyszerű bagging: lehetne belül más klasszifikátor is, de döntési fa van Random Split Selection: faépítésnél mindig a legjobb B válozóból választunk egyet véletlenszerűen Random Subspace: minden fát egy-egy rögzített, véletlenül választott attribútumhalmaz alapján építünk fel Breiman módszere: a fent bemutatott (bagging + random m változóból a legjobb választása a facsúcsoknál, ahol m << M, ahol M az attribútumok száma; általában m < log 2 M)
Véletlen erdő típusok Egyszerű bagging: lehetne belül más klasszifikátor is, de döntési fa van Random Split Selection: faépítésnél mindig a legjobb B válozóból választunk egyet véletlenszerűen Random Subspace: minden fát egy-egy rögzített, véletlenül választott attribútumhalmaz alapján építünk fel Breiman módszere: a fent bemutatott (bagging + random m változóból a legjobb választása a facsúcsoknál, ahol m << M, ahol M az attribútumok száma; általában m < log 2 M)
Out-of-bag becslések A bagging alkalmazásának előnyei: a pontosságot növeli, szórást csökkenti Minden fánál a tanítómintából kihagyott értékekre ( out-of bag vagy OOB értékek, ált. kb. a minták egyharmada) jóslatokat kérhetünk Az eredményeket átlagolva elég pontosan becsülhető az erdő hibája (PE), és a fák közötti korreláció is Kb olyan pontos becsléseket kapunk a jóságra mintha egy tanítóhalmaz méretű teszthalmazunk lenne 1 Ezért nem kell Cross Validation-t alkalmazni 1 Breiman egy korábbi cikkének empirikus eredménye, akkor igaz ha K elég nagy (a hiba már konvergált).
Out-of-bag becslések A bagging alkalmazásának előnyei: a pontosságot növeli, szórást csökkenti Minden fánál a tanítómintából kihagyott értékekre ( out-of bag vagy OOB értékek, ált. kb. a minták egyharmada) jóslatokat kérhetünk Az eredményeket átlagolva elég pontosan becsülhető az erdő hibája (PE), és a fák közötti korreláció is Kb olyan pontos becsléseket kapunk a jóságra mintha egy tanítóhalmaz méretű teszthalmazunk lenne 1 Ezért nem kell Cross Validation-t alkalmazni 1 Breiman egy korábbi cikkének empirikus eredménye, akkor igaz ha K elég nagy (a hiba már konvergált).
Out-of-bag becslések A bagging alkalmazásának előnyei: a pontosságot növeli, szórást csökkenti Minden fánál a tanítómintából kihagyott értékekre ( out-of bag vagy OOB értékek, ált. kb. a minták egyharmada) jóslatokat kérhetünk Az eredményeket átlagolva elég pontosan becsülhető az erdő hibája (PE), és a fák közötti korreláció is Kb olyan pontos becsléseket kapunk a jóságra mintha egy tanítóhalmaz méretű teszthalmazunk lenne 1 Ezért nem kell Cross Validation-t alkalmazni 1 Breiman egy korábbi cikkének empirikus eredménye, akkor igaz ha K elég nagy (a hiba már konvergált).
Out-of-bag becslések A bagging alkalmazásának előnyei: a pontosságot növeli, szórást csökkenti Minden fánál a tanítómintából kihagyott értékekre ( out-of bag vagy OOB értékek, ált. kb. a minták egyharmada) jóslatokat kérhetünk Az eredményeket átlagolva elég pontosan becsülhető az erdő hibája (PE), és a fák közötti korreláció is Kb olyan pontos becsléseket kapunk a jóságra mintha egy tanítóhalmaz méretű teszthalmazunk lenne 1 Ezért nem kell Cross Validation-t alkalmazni 1 Breiman egy korábbi cikkének empirikus eredménye, akkor igaz ha K elég nagy (a hiba már konvergált).
Out-of-bag becslések A bagging alkalmazásának előnyei: a pontosságot növeli, szórást csökkenti Minden fánál a tanítómintából kihagyott értékekre ( out-of bag vagy OOB értékek, ált. kb. a minták egyharmada) jóslatokat kérhetünk Az eredményeket átlagolva elég pontosan becsülhető az erdő hibája (PE), és a fák közötti korreláció is Kb olyan pontos becsléseket kapunk a jóságra mintha egy tanítóhalmaz méretű teszthalmazunk lenne 1 Ezért nem kell Cross Validation-t alkalmazni 1 Breiman egy korábbi cikkének empirikus eredménye, akkor igaz ha K elég nagy (a hiba már konvergált).
Fontos változók (Feature selection) Egy v bemenő attribútum (feature) fontossága így becsülhető: Minden fát szavaztassunk meg a hozzá tartozó OOB bemenetekre Jegyezzük meg a helyes válaszok arányát Permutáluk meg az OOB halmazon belül a v változó értékeit, és így is kérjünk jóslatokat a fától A helyes válaszok aránya mennyivel csökkent? Ezt átlagoljuk az összes fára = v fontossági értéke Nagyon sok bemeneti változó esetén először kiválaszthatjuk a jobbakat, aztán csak ezeket használva új, hatékonyabb erdőt építhetünk.
Fontos változók (Feature selection) Egy v bemenő attribútum (feature) fontossága így becsülhető: Minden fát szavaztassunk meg a hozzá tartozó OOB bemenetekre Jegyezzük meg a helyes válaszok arányát Permutáluk meg az OOB halmazon belül a v változó értékeit, és így is kérjünk jóslatokat a fától A helyes válaszok aránya mennyivel csökkent? Ezt átlagoljuk az összes fára = v fontossági értéke Nagyon sok bemeneti változó esetén először kiválaszthatjuk a jobbakat, aztán csak ezeket használva új, hatékonyabb erdőt építhetünk.
Fontos változók (Feature selection) Egy v bemenő attribútum (feature) fontossága így becsülhető: Minden fát szavaztassunk meg a hozzá tartozó OOB bemenetekre Jegyezzük meg a helyes válaszok arányát Permutáluk meg az OOB halmazon belül a v változó értékeit, és így is kérjünk jóslatokat a fától A helyes válaszok aránya mennyivel csökkent? Ezt átlagoljuk az összes fára = v fontossági értéke Nagyon sok bemeneti változó esetén először kiválaszthatjuk a jobbakat, aztán csak ezeket használva új, hatékonyabb erdőt építhetünk.
Fontos változók (Feature selection) Egy v bemenő attribútum (feature) fontossága így becsülhető: Minden fát szavaztassunk meg a hozzá tartozó OOB bemenetekre Jegyezzük meg a helyes válaszok arányát Permutáluk meg az OOB halmazon belül a v változó értékeit, és így is kérjünk jóslatokat a fától A helyes válaszok aránya mennyivel csökkent? Ezt átlagoljuk az összes fára = v fontossági értéke Nagyon sok bemeneti változó esetén először kiválaszthatjuk a jobbakat, aztán csak ezeket használva új, hatékonyabb erdőt építhetünk.
Fontos változók (Feature selection) Egy v bemenő attribútum (feature) fontossága így becsülhető: Minden fát szavaztassunk meg a hozzá tartozó OOB bemenetekre Jegyezzük meg a helyes válaszok arányát Permutáluk meg az OOB halmazon belül a v változó értékeit, és így is kérjünk jóslatokat a fától A helyes válaszok aránya mennyivel csökkent? Ezt átlagoljuk az összes fára = v fontossági értéke Nagyon sok bemeneti változó esetén először kiválaszthatjuk a jobbakat, aztán csak ezeket használva új, hatékonyabb erdőt építhetünk.
Fontos változók (Feature selection) Egy v bemenő attribútum (feature) fontossága így becsülhető: Minden fát szavaztassunk meg a hozzá tartozó OOB bemenetekre Jegyezzük meg a helyes válaszok arányát Permutáluk meg az OOB halmazon belül a v változó értékeit, és így is kérjünk jóslatokat a fától A helyes válaszok aránya mennyivel csökkent? Ezt átlagoljuk az összes fára = v fontossági értéke Nagyon sok bemeneti változó esetén először kiválaszthatjuk a jobbakat, aztán csak ezeket használva új, hatékonyabb erdőt építhetünk.
Fontos változók (Feature selection) Egy v bemenő attribútum (feature) fontossága így becsülhető: Minden fát szavaztassunk meg a hozzá tartozó OOB bemenetekre Jegyezzük meg a helyes válaszok arányát Permutáluk meg az OOB halmazon belül a v változó értékeit, és így is kérjünk jóslatokat a fától A helyes válaszok aránya mennyivel csökkent? Ezt átlagoljuk az összes fára = v fontossági értéke Nagyon sok bemeneti változó esetén először kiválaszthatjuk a jobbakat, aztán csak ezeket használva új, hatékonyabb erdőt építhetünk.
A bemeneti vektorok hasonlóságának becslése Mire is jó ez? Outlier-szűrés: Az összes többitől nagyon különböző tanítóminták zajnak tekinthetők (pl. elrontott mérés), jobb ha kidobjuk ezeket. Akár osztályonként is szűrhetjük őket. Klaszterezés: A minták közti hasonlóság alapján klaszterezést is végezhetünk. Hogyan? Minden bemenet-párra vegyük azon fáknak az arányát amikre ugyanabban a levélben ér véget a hozzájuk tartozó döntési folyamat. Proximity : s i,j Dissimilarity : d i,j = 1 s i,j
A bemeneti vektorok hasonlóságának becslése Mire is jó ez? Outlier-szűrés: Az összes többitől nagyon különböző tanítóminták zajnak tekinthetők (pl. elrontott mérés), jobb ha kidobjuk ezeket. Akár osztályonként is szűrhetjük őket. Klaszterezés: A minták közti hasonlóság alapján klaszterezést is végezhetünk. Hogyan? Minden bemenet-párra vegyük azon fáknak az arányát amikre ugyanabban a levélben ér véget a hozzájuk tartozó döntési folyamat. Proximity : s i,j Dissimilarity : d i,j = 1 s i,j
A bemeneti vektorok hasonlóságának becslése Mire is jó ez? Outlier-szűrés: Az összes többitől nagyon különböző tanítóminták zajnak tekinthetők (pl. elrontott mérés), jobb ha kidobjuk ezeket. Akár osztályonként is szűrhetjük őket. Klaszterezés: A minták közti hasonlóság alapján klaszterezést is végezhetünk. Hogyan? Minden bemenet-párra vegyük azon fáknak az arányát amikre ugyanabban a levélben ér véget a hozzájuk tartozó döntési folyamat. Proximity : s i,j Dissimilarity : d i,j = 1 s i,j
A bemeneti vektorok hasonlóságának becslése Mire is jó ez? Outlier-szűrés: Az összes többitől nagyon különböző tanítóminták zajnak tekinthetők (pl. elrontott mérés), jobb ha kidobjuk ezeket. Akár osztályonként is szűrhetjük őket. Klaszterezés: A minták közti hasonlóság alapján klaszterezést is végezhetünk. Hogyan? Minden bemenet-párra vegyük azon fáknak az arányát amikre ugyanabban a levélben ér véget a hozzájuk tartozó döntési folyamat. Proximity : s i,j Dissimilarity : d i,j = 1 s i,j
A bemeneti vektorok hasonlóságának becslése Mire is jó ez? Outlier-szűrés: Az összes többitől nagyon különböző tanítóminták zajnak tekinthetők (pl. elrontott mérés), jobb ha kidobjuk ezeket. Akár osztályonként is szűrhetjük őket. Klaszterezés: A minták közti hasonlóság alapján klaszterezést is végezhetünk. Hogyan? Minden bemenet-párra vegyük azon fáknak az arányát amikre ugyanabban a levélben ér véget a hozzájuk tartozó döntési folyamat. Proximity : s i,j Dissimilarity : d i,j = 1 s i,j
A bemeneti vektorok hasonlóságának becslése Mire is jó ez? Outlier-szűrés: Az összes többitől nagyon különböző tanítóminták zajnak tekinthetők (pl. elrontott mérés), jobb ha kidobjuk ezeket. Akár osztályonként is szűrhetjük őket. Klaszterezés: A minták közti hasonlóság alapján klaszterezést is végezhetünk. Hogyan? Minden bemenet-párra vegyük azon fáknak az arányát amikre ugyanabban a levélben ér véget a hozzájuk tartozó döntési folyamat. Proximity : s i,j Dissimilarity : d i,j = 1 s i,j
Hiányzó adatok kitöltése Iteratívan becsülhetjük a tanítóhalmaz hiányzó értékeit: Első közelítés: vegyük a hiányzó attribútum átlagát (ill. leggyakoribb értékét) a többi soron, és ezt helyettesítsük be Az így kiegészített adatokkal építsünk erdőt Minden i adatsorhoz amiben f hiányzott, vegyük az összes (nem-f -hiányos j sorral páronként vett hasonlóságait (s i,j ) Az új becslés: s i,j súlyokkal átlagoljuk a j-kben talált f -értékeket, ezt tegyük i f -be Ezt iterálhatjuk (új erdő építése, stb.) amíg már nem változnak az értékek (általában 4-6 kör elég)
Hiányzó adatok kitöltése Iteratívan becsülhetjük a tanítóhalmaz hiányzó értékeit: Első közelítés: vegyük a hiányzó attribútum átlagát (ill. leggyakoribb értékét) a többi soron, és ezt helyettesítsük be Az így kiegészített adatokkal építsünk erdőt Minden i adatsorhoz amiben f hiányzott, vegyük az összes (nem-f -hiányos j sorral páronként vett hasonlóságait (s i,j ) Az új becslés: s i,j súlyokkal átlagoljuk a j-kben talált f -értékeket, ezt tegyük i f -be Ezt iterálhatjuk (új erdő építése, stb.) amíg már nem változnak az értékek (általában 4-6 kör elég)
Hiányzó adatok kitöltése Iteratívan becsülhetjük a tanítóhalmaz hiányzó értékeit: Első közelítés: vegyük a hiányzó attribútum átlagát (ill. leggyakoribb értékét) a többi soron, és ezt helyettesítsük be Az így kiegészített adatokkal építsünk erdőt Minden i adatsorhoz amiben f hiányzott, vegyük az összes (nem-f -hiányos j sorral páronként vett hasonlóságait (s i,j ) Az új becslés: s i,j súlyokkal átlagoljuk a j-kben talált f -értékeket, ezt tegyük i f -be Ezt iterálhatjuk (új erdő építése, stb.) amíg már nem változnak az értékek (általában 4-6 kör elég)
Hiányzó adatok kitöltése Iteratívan becsülhetjük a tanítóhalmaz hiányzó értékeit: Első közelítés: vegyük a hiányzó attribútum átlagát (ill. leggyakoribb értékét) a többi soron, és ezt helyettesítsük be Az így kiegészített adatokkal építsünk erdőt Minden i adatsorhoz amiben f hiányzott, vegyük az összes (nem-f -hiányos j sorral páronként vett hasonlóságait (s i,j ) Az új becslés: s i,j súlyokkal átlagoljuk a j-kben talált f -értékeket, ezt tegyük i f -be Ezt iterálhatjuk (új erdő építése, stb.) amíg már nem változnak az értékek (általában 4-6 kör elég)
Hiányzó adatok kitöltése Iteratívan becsülhetjük a tanítóhalmaz hiányzó értékeit: Első közelítés: vegyük a hiányzó attribútum átlagát (ill. leggyakoribb értékét) a többi soron, és ezt helyettesítsük be Az így kiegészített adatokkal építsünk erdőt Minden i adatsorhoz amiben f hiányzott, vegyük az összes (nem-f -hiányos j sorral páronként vett hasonlóságait (s i,j ) Az új becslés: s i,j súlyokkal átlagoljuk a j-kben talált f -értékeket, ezt tegyük i f -be Ezt iterálhatjuk (új erdő építése, stb.) amíg már nem változnak az értékek (általában 4-6 kör elég)
Hiányzó adatok kitöltése Iteratívan becsülhetjük a tanítóhalmaz hiányzó értékeit: Első közelítés: vegyük a hiányzó attribútum átlagát (ill. leggyakoribb értékét) a többi soron, és ezt helyettesítsük be Az így kiegészített adatokkal építsünk erdőt Minden i adatsorhoz amiben f hiányzott, vegyük az összes (nem-f -hiányos j sorral páronként vett hasonlóságait (s i,j ) Az új becslés: s i,j súlyokkal átlagoljuk a j-kben talált f -értékeket, ezt tegyük i f -be Ezt iterálhatjuk (új erdő építése, stb.) amíg már nem változnak az értékek (általában 4-6 kör elég)
Hiányzó adatok kitöltése
A kiértékeléshez használt adathalmazok Data set Train size Test size Dimension Classes Letters 15000 5000 16 26 Sat-images 4435 2000 36 6 Zip-code 7292 2007 256 10 Waveform 300 3000 21 3 Twonorm 300 3000 20 2 Threenorm 300 3000 20 2 Ringnorm 300 3000 20 2
Eredmények (hibaszázalékok) Data set Adaboost Forest-RI 2 Forest-RI 3 One tree Letters 3.4 3.5 4.7 19.8 Sat-images 8.8 8.6 10.5 17.2 Zip-code 6.2 6.3 7.8 20.6 Waveform 17.8 17.2 17.3 34.0 Twonorm 4.9? 3.9 24.7 Threenorm 18.8? 17.5 38.4 Ringnorm 6.9? 4.9 25.7 Forest-RI (Random Input selection): Véletlen erdő, véletlen attribútum választással. Fák száma: K = 100 (kivéve Zip-code: K = 200) AdaBoost iterációk száma: 50 (kivéve Zip-code: 100) 2 m = log 2 M 3 m = 1
Eredmények (hibaszázalékok) Data set Adaboost Forest-RC 4 Forest-RC 5 One tree Letters 3.4 3.4 4.1 23.8 Sat-images 8.8 9.1 10.2 17.3 Zip-code 6.2 6.2 7.2 22.7 Waveform 17.8 16.0 16.1 33.2 Twonorm 4.9 3.8 3.9 20.9 Threenorm 18.8 16.8 16.9 34.8 Ringnorm 6.9 4.8 4.6 24.6 Forest-RC: bemenetek lineáris kombinációival épített erdő. Összekombinált változók száma: 3 4 m = 8 5 m = 2
A korreláció és jóslóerő változása m növelésével
A hiba változása m növelésével
Zaj tolerancia A véletlen erdők sokkal jobban tolerálják a zajt mint az AdaBoost. Amikor az AdaBoost elrontja (vagyis valójában jól klasszfikálná) a zaj-bementeteket akkor növekvő súllyal kerül a tanítóhalmazba a hibás adat, és ez eltozítja a végső eredményt is. 5%-os osztálycímke-permutáció után a hibák növekedése (%): Data set Adaboost Forest-RI Forest-RC Breast cancer 43.2 1.8 11.1 Diabetes 6.8 1.7 2.8 Sonar 15.1-6.6 4.2 Ionosphere 27.7 3.8 5.7 Soybean 26.9 3.2 8.5 Ecoli 7.5 7.9 7.8 Liver 10.3-0.2 4.8
Regresszió A döntési fák képesek regresszióra is ekkor minden elágazásnál az alapján határozzuk meg a döntési attrubútumot és vágási határt, hogy a két új halmazon belül a jóslandó érték szórásnégyzetei minimálisak legyenek. Data set Train size Test size Dimension Boston Housing 506 10% 12 Ozone 330 10% 8 Abalone 4177 25% 8 Robot Arm 15000 5000 12 Friedman#1 200 2000 10 Friedman#2 200 2000 4 Friedman#3 200 2000 4
Regresszió eredményei Erdők paraméterei: 100 fa, m = 25, random lineáris kombinációi 2 bemenetnek. Megfigyelések: a fák közti korreláció itt lassababn nő m növelésével. Mean squared test set errors Data set Bagging Adapt. bag. Forest Boston Housing 11.4 9.7 10.2 Ozone 17.8 17.8 16.3 Abalone 4.9 4.9 4.6 Robot Arm 4.7 2.8 4.2 Friedman#1 6.3 4.1 5.7 Friedman#2 21.5 21.5 19.6 Friedman#3 24.8 24.8 21.6
Összefoglalás A véletlen erdők hatékony klasszifikátorok, nagy adathalmazokkal is megbirkóznak. A két paraméter, K és m választására nem túl érzékeny (de K legyen elég nagy, m pedig ne legyen túl nagy).
Köszönöm a figyelmet!