• Nem Talált Eredményt

További gyakorlati, alkalmazási problémák

In document Kinek szól ez a jegyzet? (Pldal 188-194)

Osztályozás és regresszió

4.13. További gyakorlati, alkalmazási problémák

Habár végig törekedtünk gyakorlat-közeli szempontból bemutatni az osztályozó és regessziíos algoritmusokat, az osztályozók gyakorlati alkalmazásával kapcso-latos néhány kérdést még nem tárgyaltunk kell® részletességgel. Ebben a feje-zetben ezt pótoljuk.

4.13.1. Többosztályos osztályozási feladatok visszaveze-tése bináris osztályozásra

Amint láttuk, számos osztályozó algoritmus, mint pédául a naive Bayes, döntési fák vagy a legközelebbi szomszéd osztályozó, könnyedén elboldogulnak több-osztályos osztályozási feladatokkal. Más algoritmusokat viszont, úgy mint a szupport vektor gépeket vagy a logisztikus regressziót, alapvet®en bináris (két-osztályos) osztályozási feladatok megoldására tervezték.

Szerencsére rendelkezésünkre állnak technikák arra, hogy egy többosztá-lyos osztályozási feladatot bináris osztályozásra vezessünk vissza. Az egyik ilyen technikával, a one-versus-all-lal már megismerkedtünk a logisztikus reg-ressziónál a 4.3.5. fejezetben. Most további két technikát tekintünk át.

Az osztályok számát n-nel jelölve, az all-versus-all technika 12n(n−1) da-rab bináris osztályozásra vezeti vissza az adott többosztályos osztályozási fel-adatot. Ha például négy osztály adott, a, b, c, d, akkor az els® osztályozó azt dönti el, hogy inkább a-ba tartozik-e egy objektum (példány), mint b-be, a

második azt, hogy inkább a-ba tartozik-e egy objekum, mint c-be, stb. Ál-talánosan: az osztályok minden párjának megfelel egy-egy bináris osztályozó.

Az all-versus-all technika hátránya, hogy számításigényes és, hogy a páronkénti döntések inkonzisztensek lehetnek, a páronkénti döntéseket egyesít®, végs® osz-tályt meghatározó algoritmus nem-triviális. El®ny viszont, hogy a páronkénti döntéseket megfelel® módon egyesít® algoritmus mellett a végs® döntés még akkor is helyes lehet, ha az 12n(n−1) osztályozó közül néhány hibás döntést hoz.A többosztályos osztályozási feladatok bináris osztályozásra való visszaveze-tésének egy kinomultabb módja a hibajavító kódokon alapul [Radovanovi¢, 2011, Witten és tsa., 2011]. Az el®z® példát folytatva ezt is egy négyosztályos osztá-lyozási feladat kontextusában mutatjuk be. Feleltessünk meg egy-egy bináris vektort a négy osztálynak az alábbiak szerint:

Osztály Vektor

a 1111111

b 0000111

c 0011001

d 0101010

Mivel a vektorok kódolására hibajavító kódokat használtunk, ha valamelyik bit hibás, még mindig ki tudjuk következtetni, hogy melyik osztály kódjáról van szó: bármely egybites eltérés esetén egyértelm¶, hogy melyik a leginkább hasonló kód.

Bináris osztályozókat a bináris vektorok egyes komponenseinek fogunk meg-feleltetni: az els® bináris osztályozó tehát azt hivatott eldönteni, hogy az osz-tályozandó objektum a osztályba tartozik-e vagy sem, a második bináris osz-tályozó azt dönti el, hogy az osztályozandó objektum a ésd osztályok valame-lyikébe vagy béscosztályok valamelyikébe tartozik-e, stb. Ha a hét osztályozó közül legfeljebb egy hibázik, a végs® osztályozás helyes lesz.

4.13.2. Kategorikus attribútumok kezelése

Egyes osztályozó algoritmusok, pl. naive Bayes vagy egyes döntési fák, egy-aránt gond nélkül kezelik a szám típusú és a diszkrét típusú attribútumokat.

Ha egy algoritmus csak diszkrét attribútumokkal képes dolgozni, azaz nem ké-pes a szám típusú attribútumok kezelésésre, a szám típusú attribútumainkat diszkretizálhatjuk az El®feldolgozási fejezetben látott módon. Mit tehetünk azonban olyan esetben, amikor egy algoritmus csak szám típusú attribútu-mokat kezel (pl. szupport vektor gépek, logisztikus regresszió, egyes neurális hálók), és nem szeretnénk az adatbázisbeli diszkrét attribútumokat eldobni?

Ha az attribútum ordinális, azaz a sorrendiség értelmezett az értékei kö-zött, pédául: kicsi < közepes < nagy, megpróbálhatunk számként tekinteni az attribútumra és az egyes értékeket számokkal kódolni: 1 =kicsi,0 =közepes, +1 =nagy.

Mit tehetünk azonban olyan esetben, amikor az attribútum nominális és nincs semmilyen sorrendezés az értékei között? Ilyen példa lehet az, amikor az attribútum értékei élelmiszereket (sajt, kenyét, tej, kolbász...), vagy országokat írnak le. Az egyes értékeket számoknak megfelelteni és képletekben azokkal számolni túlságos "merészség" lenne, a modell nagymértékben függhetne attól, hogy milyen értéket milyen számmal kódoltunk.

A leggyakrabban követett eljárás az el®feldolgozási lépések közt tárgyalt új attribútumok bevezetésének egy speciális esete. Ha egy nominális attribútum n darab különféle értéket vehet fel, akkor ezen attribútumot n darab bináris (0 vagy 1 érték¶) attribútummal helyettesítjük: az olyan esetekben, amikor a nominális attribútum értékkészletének els® értékét veszi fel, az els® bináris attribútum értéke lesz 1, a többi pedig 0; az olyan esetekben, amikor a nomi-nális attribútum értékkészletének második értékét veszi fel, a második bináris attribútum értéke lesz 1, a többié pedig 0; stb.

Alternatív megoldásként a nominális attribútum-értéket helyettesíthetjük annak valamilyen, az adott alkalmazásban releváns, számmal kifejezhet® tulaj-donságával: például egy élelmiszert a kalóriatartalamával vagy árával, országot a GDP-jének, lakosságának, területének nagyságával.

4.13.3. Feature extraction

Eddig végig azzal az implicit feltételezéssel éltünk, hogy adataink egy táblá-zatként képzelhet®k el: a táblázat sorai felelnek meg az objektumoknak (pél-dányoknak), oszlopai pedig az attribútumoknak. Másképp megközelítve: azt feltételeztük, hogy adataink strukturáltak abban az értelemben, hogy minden objektum ugyazon attribútumokkal rendelkezik, csak az attribútumok értékei különböznek objektumról objektumra.

Rengeteg valós alkalmazás esetében azonban az adataink strukturálatlanok, csak részben strukturáltak (semi-structured) vagy valamilyen más módon struk-turáltak, pl. id®sorok esetében világos, hogy az egymást követ® id®pontokban végzett mérések eredményei egyfajta struktúrát hordoznak, hiszen nem cserél-het®k fel tetsz®legesen az id®sorok elemei, ugyanakkor különösen abban az esetben ha adatbázisunk különböz® hosszúságú id®sorokból áll az id®sorokat nehezen tudjuk "beleer®ltetni" a táblázatos modellbe. Az id®sorok elemzésére speciális technikák léteznek, amelyekkel külön fejezetben foglalkozunk majd.

Mit tehetünk azonban (általánosan) ha egy alkalmazásban strukturálatlan vagy nem megfelel® módon strukturált adatok (szövegek, képek, videók) keletkeznek

és ezeket szeretnénk elemezni?

Az általánosan követett eljárás szerint megpróbáljuk az adatokat valami-lyen módon egy megfelel® táblázattá konvertálni. Az attribútumokat, a táblá-zat oszlopait más néven feature-öknek, tulajdonságoknak, jellemz®nek illetve leírónak is nevezik. Összegy¶jtjük tehát az objektumok néhány (vagy akár sok) olyan tulajdonságát, amely az adott alkalmazás szempontjából releváns lehet, és amelyek értékeit a rendelkezésünkre álló adatok alapján meg tudjuk határozni. Képadatbázisok bányászata esetén egy tulajdonság lehet például a kék szín¶ pixelek darabszáma: nyilván az adatbázis minden egyes képére (külön-külön) meg tudjuk határozni, hogy hány kék szín¶ pixelt tartalmaz.

Túlmutat a jelen jegyzet keretein, hogy milyen feature-öket érdemes hasz-nálnunk az egyes alkalmazásokban, de hangsúlyozzuk, hogy a megoldásunk sikere, min®sége, pontossága nagyban múlhat azon, hogy milyen feature-öket választottunk, egy gyakorlati alkalmazában gyelmet kell szentelnünk ennek a kérdésnek.

4.13.4. Paraméterkeresés

Bár viszonylag egyszer¶, fontossága miatt külön írunk a paraméterkeresés tech-nikájáról.

A fejezetben tárgyalt osztályozó, regressziós és mátrix faktorizációs eljárá-sok nagy része b®ségesen rendelkezik a szakért® (felhasználó) által beállítandó paraméterekkel. Mátrix-faktorizációnál ilyen a λ, ϵ és az iterációk száma; ne-urális hálózatoknál ilyen a tanulási ráta, a hálózat struktúrája (rétegek száma, bels® neuronok száma az egyes rétegekben), a tanítási iterációk száma; dön-tési fáknál az alkalmazott vágási függvény vagy az egy levélre es® objektumok (példányok) elvárt száma, stb.

Ritkán van elképzelésünk arról, hogy az adott alkalmazásban hogy érdemes a modell paramétereit megválasztanunk. Még ritkább az, amikor matemati-kailag is be tudjuk bizonyítani, hogy az alkalmazásra jellemz® körülmények (pl. adatok eloszlása) mellett mi egy paraméter optimális értéke. Az esetek legnagyobb részében azonban egy igen egyszer¶ eljárást követünk: kipróbáljuk a modellt a paraméterek valamilyen értéke mellett, majd megnézzük, hogy a modell jól m¶ködik-e vagy sem.

Az egyik kérdés, ami adódik, hogy milyen stratégia szerint vegyük sorra a paraméterek lehetséges értékeit? Ha kevés paraméterünk van (pl. 2 vagy 3 szám), akkor egy általunk választott intervallumon belül, adott felbontás mellett megvizsgálhatjuk az összes lehetséges kombinációt. Ha például 3 da-rab szám típusú paraméter értékére egyenként 10-10 lehet®séget vizsgálunk, az összesen 10×10×10 = 1000 kombináció kipróbálását jelenti. Az ilyen, összes lehetséges kombináció kipróbálásán alapuló keresést nevezik kimerít®

keresésnek-nek. Nem szükséges, hogy a vizsgált paraméterértékek egyenlete-sen legyenek elosztva a vizsgált tartományon belül: a szupport vektor gépekC paraméterének értékét vizsgálhatjuk például a 210...210 intervallumban, úgy hogy az alábbi értékeket tekintjük: 210,29,28, ...

Ha sok paraméterrel dolgozunk, a minden kombináció vizsgálata lehetetlen a gyakorlatban. Ilyenkor valamilyen lokális keresést használhatunk: kipróbál-juk az eljárást valamilyen paraméterértékekre, majd egyik-másik értéket kicsit csökkentjük/növeljük, és megnézzük, hogy javult-e a modell.

Adódik a kérdés, hogy a túltanulás jelenségének ismeretében hogyan osszuk fel a rendelkezésünkre álló címkézett adatokat a paraméterkereséshez? Azt ja-vasoljuk, hogy három független részre osszuk a címkézett adatokat, ezeket je-löljük rendreT1-gyel,T2-vel ésT3-mal. AT1-et használjuk a modell tanításához egy adott paraméterkombináció mellett. Ebben a kontextusban mindent olyan lépést a tanítás részének tekintünk, ami a modell (adott paraméterek melletti) létrehozásához vezet, így pédául a döntési fák metszését is a tanítás részének tekintjük. (Ha például döntési fát metszeni is szeretnénk, akkor T1-et tovább osztjuk T1,A és T1,B diszjunkt halmazokra.) Adott paraméterértékek mellett a T1 halmazon elkészített modellt a T2 halmaz segítségével kiértékeljük. Ez minden vizsgált paraméterkombinációra elvégezzük, így végül T2 segítségével kiválasztjuk a legjobb paraméterkombinációt. Az így kiválasztott modellt T3 halmazon kiértékeljük, ezáltal egy független halmaz segítségével becsüljük a modell min®ségét.21

4.13.5. Mit tegyünk, ha az osztályozónk nem (elég) jó?

Egy tanítóadatbázis segítségével létrehozunk egy osztályozó (vagy regressziós) modellt, és, a korábban tárgyalt módon egy független adathalmaz segítségével leteszteljük, hogy mennyire jó. Mit tegyünk, ha a modell min®sége alulmarad az elvárásainkhoz képest vagy, amire az adott alkalmazásban szükség van? Mi-kor érdemes azzal próbálkoznunk, hogy több adatot gy¶jtünk? El®relátható-e, hogy a több adat úgysem fog segíteni? Mikor érdemes bonyolultabb algorit-must használnunk és mikor felesleges?

A válaszokhoz a korábban tárgyalt túltanulás jelenségén keresztül jutunk.

Próbáljuk megmérni, vajon fellépett-e a túltanulás: mérjük a modell min®ségét, pontosságát a tesztadatok mellett a tanítóadatokon is. Ha a tanítóadatokat je-lent®sen jobban osztályozza a modell, akkor egy túltanított modellünk van.

A túltanuláson segíthet valamennyit, ha további adatot gy¶jtünk, hiszen na-gyobb adatbázisban "világosabban" megmutatkozhatnak az általános

szabály-21A legjobb paraméterértékek kiválasztása után, a végs® modelltT1∪ T2-n taníthatjuk és ebben az esetben ezt a végs® modellt értékeljük kiT3-n.

szer¶ségek, nagyobb adatbázis mellett nagyobb az esélyünk, hogy az adatokban látható szabályszer¶ségek valóban általánosak, nem csak a véletlennek köszön-het®en gyelhet®k meg egy konkrét adatbázisban. Mivel a túltanulás azt je-lenti, hogy túl speciális modellt hoztunk lére, a túltanulás ellen els®dlegesen regularizációval védekezhetünk: úgy modosítjuk az osztályozó algoritmust vagy annak paramétereit, hogy az osztályozó algoritmus a tanulási fázis végére egy egyszer¶bb modellt hozzon létre. Egy neurális háló esetén csökkenthetjük a bels® neuronok számát, döntési fáknál el®írhatjuk, hogy a fa megengedett ma-ximális mélysége kisebb legyen a fa korábbi mélységénél, mátrix faktorizációs algoritmusoknál nagyobbra állíthatjuk λ értékét, stb. Az is lehetséges, hogy egy másik algoritmust választunk, amelyr®l tudjuk, hogy egyszer¶bb modellt hoz létre.

A túltanulással ellentétes eset, amikor a modell azért nem teljesít optimá-lisan, mert az osztályozó algoritmus túl egyszer¶ modellt hozott létre, amely nem volt képes megradagni minden szabályszer¶séget. Ilyen esetben nincs sok értelme további adatot gy¶jteni, ugyanakkor paraméterezhetjük (módosíthaj-tuk) úgy az osztályozó algoritmust, hogy a tanulási fázisban kinomultabb, valamivel bonyolultabb modellt hozzon létre, illetve választhatunk egy másik algoritmust, amely bonyolultabb modellt hoz létre.

5. fejezet

Gyakori mintázatok és asszociációs

In document Kinek szól ez a jegyzet? (Pldal 188-194)