Modellkiértékelési hibák - 3. rész - Dmlab

Modellkiértékelési hibák – 3. rész

Prekopcsák Zoltán

2010.08.25. • olvasási idő:

Ebben a posztsorozatban olyan modellkiértékelési hibákat mutatunk be, amelyek jelentősen torzíthatják egy modell pontosságbecslését.

A téma bevezetése és a keresztvalidáció bemutatása a nyitó bejegyzésben található, az első részben a validáció előtti tanulás problémáját jártuk körbe, a második részben pedig a jövőbeli információ használatáról volt szó.

A harmadik és egyben leggyakoribb modellkiértékelési hiba a legjobb modell választása. Elsőre abszurdnak tűnik a felvetés, hogy mi gond lehet azzal, ha a kiértékelt modellek közül a legjobbat választjuk, úgyhogy egy példával illusztráljuk a problémát.

Vegyünk egy 100 adatsort tartalmazó adathalmazt, amelyen bináris osztályozást szeretnénk végezni. Ezen az adathalmazon 100 darab különböző modellt fogunk kiértékelni a COIN modellcsaládból. COIN modellt már mindenki használt, működési elve nagyon egyszerű: vegyünk egy pénzérmét, dobjuk fel, és fej esetén szavazzuk a pozitív osztályra, írás esetén a negatívra. Egyértelműnek tűnik, hogy egy ilyen modell osztályozási teljesítménye várhatóan 50%.

Veszünk tehát 100 pénzérmét, és mindegyikkel elvégezzük az osztályozást a 100 soros adathalmazon. Mindegyikre kiszámoljuk az osztályozási pontosságot, majd kiválasztjuk a legjobb modellt, azaz a legpontosabb pénzérmét. Ebben az esetben szinte teljes bizonyossággal állíthatjuk, hogy a legjobb pénzérménk több mint 60%-os pontosságot fog produkálni.

Az analógia erőltetettnek tűnhet, de a sok modellkiértékelés nagy adathalmazokon is jelentős torzítást okoz. Egy adatbányászati projektben nem ritka, hogy egy modellt többféle paraméterezéssel is kipróbálunk, így olykor több száz vagy akár több ezer modell közül kerül kiválasztásra a legjobb. Ez az elemzői folyamat okolható azért is, hogy az adatbányászati versenyeken a versenyzők általában nagyobb pontosságúnak tartják a modelljüket, mint ahogy az a végső kiértékelésben teljesít. Minél kisebb az adathalmaz, annál nagyobb a kiértékelés bizonytalansága, és annál valószínűbb, hogy a sok kiértékelés során egyszer kiugróan jó eredményt fogunk kapni pusztán a kiértékelés szórása miatt.

Ezt a hibát azért is nehéz elkerülni, mert az adatbányász kísérletező típus és amint meglát egy eredményt, máris több módosítási ötlete van amit kipróbálna, viszont a kiértékelések során nő a valószínűsége, hogy egy véletlenszerűen jobban teljesítő modellt fog kiválasztani és annak a pontosságára fog számítani. Egy jó megközelítés lehet nagy adathalmazoknál, hogy egy végső kiértékelő adathalmazt is megtartunk magunknak, azonban ezzel a problémával tipikusan kisebb adathalmazok esetén szembesülünk, így ez nem járható út. A másik lehetőség, hogy két egymásba ágyazott keresztvalidációt végzünk. A belső keresztvalidáció az optimális(nak gondolt) modell megtalálásáért felel, míg a külső ennek pontosságát méri le. A részletek a cikkben megtalálhatóak.

Azt gondoljuk, hogy ezek a hibák nagyon tanulságosak, úgyhogy minden olvasót kérünk, hogy osszon meg velünk érdekes adatbányászati hibákat akár a modellkiértékelés, akár más adatbányászati folyamatok kapcsán. A történeteket itt a cikkek alatt megjegyzésként vagy emailben várjuk a prekopcsak(kukac)tmit.bme.hu címre.