• Nem Talált Eredményt

Ensemble modellek

In document Kinek szól ez a jegyzet? (Pldal 162-167)

Osztályozás és regresszió

4.9. Ensemble modellek

Amint a korábbi fejezetekben láttuk, az osztályozási feladat rengeteg, különféle módon megoldható, a különböz® osztályozó algoritmusok, eljárások más-más

megközelítéssel élnek, ezért azt várjuk, hogy különböz® példányok osztályozásá-nál fognak hibázni. Adódik az ötlet, hogy kombiosztályozásá-náljuk a különböz® osztályozó modelleket16, és ezáltal ún. ensemble modelleket hozzunk létre.17 Sok osz-tályozó modellt egymással kombinálva általában jobb osztályozási eljáráshoz jutunk, mint a legjobb modell önmagában.

Tekintsük példaként azt, hogy adott egy bináris (kétosztályos) osztályozási feladat, és van 100 darab osztályozó modellünk (esetlegesen ugyanazon algo-ritmus többször is el®fordulhat köztük különböz® változatban, különböz® pa-raméterekkel, pl. neurális hálók különböz® topológiákkal, SVM-ek különböz®

kernelekkel), és tegyük fel, hogy ezek egymástól függetlenül hibáznak, egyen-ként mindegyik 0.4 valószín¶séggel. Ekkor annak a valószín¶sége, hogy egy adott objektum osztályozásakor az osztályozók legalább fele hibázik mindössze

Többségi hiba=

Ha tehát egyszer¶ többségi szavazással azt az osztályt választjuk, amelybe az osztályozó modellek többsége szerint tartozik az osztályozandó objektum, akkor az esetek több, mint 95%-ában helyes osztályt kapjuk, miközben az osz-tályozó modellek egyenként csak az esetek 60%-ában osztályoznak helyesen.

Túl szép ahhoz, hogy igaz legyen! Sajnos a gyakorlatban nem is sikerül ennyire drasztikus javulást elérnünk, mert realisztikus esetekben szinte kizárt, hogy a rendelkezésünkre álló modellek hibakarakterisztikája valóban teljesen független legyen egymástól, a hibák egyáltalán ne korreláljanak egymással. Ha ennyire jól nem is m¶ködnek az ensemble technikák, sok osztályozó modell kombinálása általában szignikánsan javít az osztályozás min®ségén a legjobb egyéni osztályozó modellhez viszonyítva: az olyan adatbányászati versenyeket, ahol az osztályozás min®sége számít els®dlegesen, rendszerint valamilyen en-semble modell segítségével nyerik meg.

A következ®kben Dietterich cikke nyomán az ensemble modellek elméleti hátterével foglalkozunk [Dietterich, 2000], majd három, széles körben alkalma-zott, általános ensemble technikát mutatunk be, amelyeket tetsz®leges osztá-lyozó algoritmusok esetében használhatunk.

16Az osztályozó modell alatt a tanulási fázis végére létrehozott osztályozó függvényt értjük, amely egy-egy objektumot az objektum attribútumai alapján az osztályok valamelyikébe besorol.

17Az ensemble szó eredetileg együtteset, zenekart jelent, amelyben sok zenész játszik együtt különböz® hangszereken.

4.9.1. Dietterich elmélete

Dietterich (2000) azt a kérdést teszi fel, vajon miért lehetséges, hogy az en-semble modellek jól m¶ködnek a gyakorlatban. Egyrészt az egymástól többé-kevésbé függetlenül hibázó osztályozó algoritmusok "kiolthatják" egymás hi-báit, még ha a gyakorlatban nem is olyan drasztikus sikerrel, mint az el®z®

fejezetben látott bevezet® példában, másrészt a szerz® az ensemble módszerek sikerének három további alapvet® okát tárgyalja.

1. Az els® ok statisztikai: az osztályozó algoritmusok tanulási fázisát úgy tekinthetjük, hogy a legjobb f leképezést keressük a magyarázó változók és a magyarázott változó (osztályattribútum) között. Tipikusan nagyon sok (végtelen) lehet®ség közül keressük az optimális f leképezést. Gon-doljunk példaként a lineáris vagy logisztikus regresszióra: mivel a wi súlyok tetsz®leges valós számok lehetnek, a teljes keresési tér végtelenül nagy. Még nagy adatbázisok esetén is igaz, hogy a tanítóadatbázisbeli objektumok száma gyakran túlságosan kevés a keresési tér méretéhez ké-pest, ahhoz, hogy vizsgált leképezések közül az optimálisat megtaláljuk.

Várhatóan csak egy közel-optimálisat találunk. Több különböz® osztá-lyozó algoritmus kölönböz® közel-optimális megoldást találhat, melyeket kombinálva a végs® modell jobb lehet, mint az egyenkénti modellek. Mo-dellek kombinációjának egyszer¶ módja regesszió esetén a magyarázandó változóra adott becsült/el®rejelzett értékeket átlagolása, illetve osztályo-zásnál a már említett többségi szavazás.

2. A második ok számítási: még ha rendelkezésre is áll egy kell®képpen nagy tanítóadatbázis (és ezért a statisztikai probléma nem jelentkezik), az osztályozó algoritmus könnyen elvétheti az optimális megoldást, hiszen a legtöbb algoritmus valamilyen lokális keresést végez: gondoljunk csak a döntési fák építéskor használt algoritmusokra, amelyek mohón mindig az adott pillanatban legjobb attribútum szerinti vágást választják vagy arra, hogy amint említettük a neurális hálók súlyainak meghatározá-sakor a gradiens módszer egyik változatát használják. Valójában mind a döntési fák építése, mind a neurális hálók súlyainak meghatározása NP-nehéz feladat [Hyal és Rivest, 1976, Blum és Rivest, 1988]. Bár néhány kivételes osztályozó modellnél a lokális kereséssel megtaláljuk a globális optimumot, a lokális keresési eljárások gyakran olyan lokális optimumra vezetnek, amely nem esik egybe a globális optimummal. Ezért a kü-lönböz® kezd®pontokból indított lokális keresések eredményeiként kapott osztályozó modellek kombinálása jobb modellhez vezet, mint bármelyik eredeti modell önmagában véve.

3. A harmadik ok reprezentációs: számos esetben a "tökéletes" osztályozó modell nem található meg az osztályozó tanítása során vizsgált osztályozó modellek halmazában. A különböz® modellek kombinálása (pl. regresszió esetén súlyozott átlagolása) révén kiterjeszthetjük a reprezentálható osz-tályozó modellek körét. A reprezentációs indok némiképp ellentmondá-sos, hiszen számos osztályozó algoritmus, elvben, az összes lehetséges osztályozó modell közül keresi a legjobbat. Mind a neurális hálók, mind a döntési fák rendkívül rugalmas osztályozó algoritmusok. Elegend®en sok adat esetén az összes lehetséges osztályozó modellt tekintik, ezzel kapcsolatos tételek bizonyíthatóak [Hornik és tsa., 1990]. A valóságban azonban véges tanítóhalmaz mellett az osztályozó algoritmusok tanítási fázisában csak végesen sok lehetséges osztályozó modellt tekintünk, a rep-rezentált osztályozó modellek halmazának b®vítése erre a véges halmazra vonatkozik. Ebb®l adódik az is, hogy a reprezentációs ok összefügg a statisztikai okkal.

4.9.2. Boosting

A boosting eljárások során osztályozó modellek sorozatát hozzuk létre. Az osztályozó modellek rendszerint ugyanolyan típusúak, például mindegyik mo-dell egy-egy döntési fa. Legtöbbször a momo-dellt el®állító algoritmus paramétereit sem változtatjuk, azaz, az el®z® példát folytatva: mindegyik döntési fa esetében ugyanazt a vágási függvényt használjuk, ugyanolyan metszési eljárást alkalma-zunk, stb. A modellek közti diverzitás abból adódik, hogy a tanítóhalmazbeli objektumokat más-más súllyal vesszük gyelembe a modellek létrehozása so-rán.Az els® modell létrehozásakor minden objektumot azonos (például egy) súllyal veszünk gyelembe, ahogy tettük ezt eddig mindig, valahányszor csak osztályozó algoritmusok tanításáról volt szó. Ezt követ®en megnézzük, hogy a tanítóadatbázis mely objektumait osztályozza helyesen a létrehozott modell, és melyeket nem. A helyesen osztályozott példányok súlyait csökkentjük, a helytelenül osztályozottakét pedig növeljük, és az új súlyokat gyelembe véve18 egy újabb osztályozót hozunk létre. Abban bízunk, hogy ez az új osztályozó helyesen fogja osztályozni a korábbi osztályozó által tévesen osztályozott objek-tumokat. Az eddigiekhez hasonlóan csökkentjük azon példányok súlyait, ame-lyeket a második osztályozó helyesen osztályoz, és növeljük azokét, ameame-lyeket helytelenül, majd az új súlyokat gyelembe véve egy harmadik osztályozó

mo-18Ha például egy objektum (példány) súlya 3, akkor az osztályozó tanítása során úgy tekintjük, mintha 3 darab ugyanolyan objektum fordulna el® az adatbáyisban. Habár nem-egész súlyok esetén nem ennyire szemléletes a helyzet, a legtöbb eddig látott osztályozó algoritmus könnyen adaptálható arra az esetre is, ha az objektumok súlyai nem egész számok.

dellt hozunk létre, és így tovább, egészen addig, amíg a kíván számú osztályozó modellt létre nem hoztuk.

Egy ismeretlen osztályba tartozó, új objektum (példány) osztályozása során az egyes osztályozók (súlyozott) többségi szavazatát illetve regresszió esetén a modellek kimeneteinek (súlyozott) átlagát vesszük. Az egyes osztályozó model-leket súlyozhatjuk például aszerint, hogy milyen teljesítményt értek el a teljes tanítóadatbázison.

Több változata is létezik a fenti eljárásnak attól függ®en, hogy a model-lek létrehozása során konkrétan hogyan változtatjuk az egyes példányok sú-lyait, és az ismeretlen osztályba tartozó objektumok osztályozása során ho-gyan súlyozzuk az egyes modelleket. Az egyik legismertebb változat az Ada-Boost [Freund és Schapire, 1994, Rätsch és tsa., 2001].

4.9.3. Bagging és Stacking

A bagging eljárás során az ensemble-ben részt vev® modellek diverzitása abból adódik, hogy a modelleket különböz® attribútumhalmazokat használva hozzuk létre. Példaként tegyük fel, hogy 20 magyarázó változónk van egy adatbázis-ban. Válasszunk ki véletlenszer¶en 10-et közülük és ezek segítségével hozzunk létre egy osztályozó modellt. Majd válasszunk ki a 20 attribútum közül vélet-lenszer¶en újra 10-et (nem baj, ha a két halmaz nem diszjunkt), és hozzunk létre egy újabb osztályozó modellt, és így tovább. Nem szükséges, hogy az összes osztályozóhoz 10 attribútumot használjunk.

Az egyes osztályozók kimeneteit (felismert osztálycímkéket vagy regresszió során becsült mennyiségeket) a boosting-nál látottakhoz hasonlóan kombinál-juk: (súlyozott) többségi szavazással illetve súlyozott átlaggal.

Ennél valamivel kinomultabb eljárás, ha egy ún. metamodellt hozunk létre.

4.9.1. Deníció Metamodellnek nevezünk egy m osztályozó vagy regressziós modellt, ha m bemeneteként más osztályozó vagy regressziós modellek kime-neteit használjuk. Ebben a kontextusban elemi modellnek nevezzük azokat az osztályozó vagy regressziós modelleket, amelyek bementei az eredeti adatbázis attribútumai vagy azok valamely részhalmaza.

A bagging metamodelles változata esetében valamilyen osztályozó algoritmust használunk arra, hogy a sok különböz® elemi osztályozó kimenete alapján fel-ismerje a helyes osztálycímkét.

A metamodell tanításához a következ® eljárás javasolt. A rendelkezésünkre álló T tanítóhalmazt felosztjuk két diszjunkt halmazra, T1-re és T2-re. A T1

halmazt használjuk az elemi modellek tanítására, majd a T2-beli objektumok

osztálycímkéit felismertetjük az elemi modellekkel. A metamodell tanítóadat-bázisának magyarázó változóinak értékei az elemi modellek által felismert (be-csült) osztálycímkék lesznek, a magyarázott változó értéke pedig a T2-beli va-lódi osztálycímké lesz. Az így kapott adatbázist használjuk a metamodell ta-nítására. Az eredeti tanítóadatokT1-re ésT2-re való felosztása a korábban már említett (és a kés®bbiekben részletesen tárgyalásra kerül®) túltanulás miatt lé-nyeges: ellenkez® esetben a metamodell nem tudná megtanulni, hogy milyen kapcsolat van az elemi modellek által az új objektumokra adott kimenet és a valódi kimenet között, hanem csak azt, hogy a korábban látott objektumokat melyik modell milyen jól osztályozza (ami nem feltétlenül azonos azzal, hogy új objektumok osztályozása esetén hogy teljesít a modell).

A stacking annyiban különbözik a bagging metamodelles változatától, hogy (i) elemi modellnek különböz® típusú modelleket használ (például neurális há-lót, Bayes-osztályozót és döntési fát) vagy ugyanazon modell különböz® vál-tozatait, és (ii) nem feltétlen választja ki az attribútumok különböz® részhal-mazait a különböz® elemi modellekhez: az összes elemi modellhez az összes attribútumot használhatja.

In document Kinek szól ez a jegyzet? (Pldal 162-167)