• Nem Talált Eredményt

Ensemble modellek

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ó algoritmusokat, osztályozó modelleket18, és ezáltal ún. ensemble modelleket

18Az osztályozó modell alatt egy osztályozó algoritmus (osztályozó eljárás) által a tanulási fázis végére létrehozott osztályozó függvényt értjük, amely egy-egy objektumot (példány) az objektum (példány) attribútumai alapján az osztályok valamelyikébe besorol.

hozzunk létre.19 Sok osztá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

100 i=50

(100 i

)

0.4i(10.4)100i = 0.027.

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 szignifiká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.

4.9.1. Dietterich elmélete

Dietterich azt a kérdést teszi fel, vajon miért lehetséges, hogy az ensemble mo-dellek jól működnek a gyakorlatban [Dietterich, 2000]. Egyrészt az egymástól többé-kevésbé függetlenül hibázó osztályozó algoritmusok "kiolthatják" egy-más hibá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ód-szerek sikerének három további alapvető okát tárgyalja.

19Az ensemble szó eredetileg együtteseket jelent, amelyben sok zenész játszik együtt.

1. Az első ok statisztikai: az osztályozó algoritmusok tanulási fázisát úgy tekinthetjük, hogy egy f leképezést keressük, amely legjobban adja meg, hogy a magyarázó változók adott értéke mellett mi a magyarázott változó (osztályattribútum) értéke. Tipikusan nagyon sok (végtelen) lehetőség közül keressük az optimális f leképezést. Gondoljunk példaként a li-neáris vagy logisztikus regresszióra: mivel a wi súlyok tetszőleges valós számok lehetnek, a teljes keresési tér (elméletileg) végtelenül nagy. Még nagy adatbázisok esetén is igaz, hogy a tanítóadatbázisbeli objektumok (példányok) 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ásokat találhat, me-lyeket kombinálva a végső modell jobb lehet, mint az egyenkénti model-lek. Modellek kombinációjának egyszerű módja regesszió esetén a magya-rázandó változóra adott becsült/előrejelzett értékeket átlagolása, illetve osztályozá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 [Hyafil é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 vezethez, mint bárme-lyik 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ételeket 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át 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 osz-tályozó modellek rendszerint ugyanolyan típusúak, például mindegyik modell egy-egy döntési fa. Legtöbbször a modellt 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ás szerint metszük a fák, stb. A modellek közti diverzitás abból adódik, hogy a tanító-halmazbeli objektumokat (példányokat) más-más súllyal vesszük figyelembe a modellek létrehozása során.

Az első modell létrehozásakor minden objektumot (példányt) azonos (pél-dául 1) súllyal veszünk figyelembe, 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 (példányait) 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 fi-gyelembe véve20egy ú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 osz-tályozott objektumokat (példányokat). Az eddigiekhez hasonlóan csökkentjük azon példányok súlyait, amelyeket a második osztályozó helyesen osztályoz, és növeljük azokét, amelyeket helytelenül, majd az új súlyokat figyelembe véve egy harmadik osztályozó modellt 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át21illetve regresszió esetén a modellek kimeneteinek (súlyozott) átlagát vesszük. Az egyes osztályozó

model-20Ha 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.

21Súlyozott többségi szavazásnál az egyes modellek szavazatai nem egyenértékűek: amelyik modellnek nagyobb a súlya, annak a szavazata többet ér.

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 fent nagyvonalakban leírt eljárásnak attól függően, hogy a modellek létrehozása során konkrétan hogyan változtatjuk az egyes példányok súlyait (milyen képlet szerint növeljük vagy csökkentjük a súlyo-kat), és az ismeretlen osztályba tartozó objektumok osztályozása során hogyan súlyozzuk az egyes modelleket. Az egyik legismertebb változat az AdaBo-ost [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 az attribútumok különböző részhalmazait használva hoztuk létre. Példaként tegyük fel, hogy 20 magyarázó változónk (osztályatt-ribútumtól különböző attribútumunk) van egy adatbázisban. Válasszunk ki véletlenszerűen 10-et közülük és ezek segítségével hozzunk létre egy osztályozó modellet. Majd válasszunk ki a 20 attribútum közül véletlenszerű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áosztá-lyozóhoz 10 attribútumot használjunk, használhatunk többet is, kevesebbet is.

Az egyes osztályozók kimeneteit (felismert osztálycímkéket, illetve regresszió során becsült mennyiségeket) a boostingnál látottakhoz hasonlóan kombinál-hatjuk: (súlyozott) többségi szavazással illetve súlyozott átlaggal. Ennél va-lamivel kifinomultabb eljárás, ha egy ún. metamodellt hozunk létre. Ekkor valamilyen osztályozó algoritmust használunk arra, hogy a sok különböző osz-tályozó kimenete alapján felismerje a helyes osztálycímkét. Az egyes modellek kimeneteiből áll tehát a metamodell bemenete.

A metamodell tanításához a következő eljárás javasolt. A rendelkezésünkre állóT tanítóhalmat felosztjuk két diszjunkt halmazra,T1-re ésT2-re. AT1 hal-mazt használjuk az elemi modellek tanítására, majd aT2-beli objektumok osz-tálycímkéit felismertetjük az elemi modellekkel. A metamodell tanítóadatbázi-sának magyarázó változóinak értékei az elemi modellek által felismert (becsült) osztálycímkék lesznek, a magyarázott változó értéke pedig aT2-beli valódi osz-tálycímké lesz. Az így kapott adatbázist használjuk a metamodell tanítására.

Az eredeti adatok T1-re és T2-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: el-lenkező esetben a metamodell nem tudná megtanulni, hogy milyen függés 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 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 (egy például egy ne-urális háló, másik egy Bayes-osztályozó, harmadik egy döntési fa...) és/vagy egy-egy típusú modell különböző változatait, és (ii) nem feltétlen választja ki az attribútumok különböző részhalmazait a különböző elemi modellekhez: az összes elemi modell építéskor az összes attribútumot használhatja.