Mennyire pontos a prediktív modellem? | Dmlab

Mennyire pontos a prediktív modellem?

Prekopcsák Zoltán

2010.08.17. • olvasási idő:

Az adatbányászati munkában gyakori feladat a prediktív modellek kiértékelése. Egyrészt az osztályozó vagy regressziós modellünk pontosságáról azért szeretnénk képet kapni, hogy a megrendelőnek impresszív számadatokkal is bemutathassuk, hogy pontosan mennyivel javítja a cég hatékonyságát a modell bevezetése. Másrészt a mindennapi munkában is fontos szerepe van a kiértékelésnek, hiszen az adatbányásznak több prediktív modell közül kell választania és a modellek építése gyakran iteratív folyamat, amiben az előző modell eredménye alapján változtatjuk az elemzésünket.

A kiértékelés (validáció) elsődleges célja, hogy becslést kapjunk arról, hogy a prediktív modell hogyan fog működni a jövőben, de az elmúlt években rengeteg olyan esettel találkoztunk, amikor a becslés irreális képet mutatott. Ezt a tárgyainkon az adatbányászattal ismerkedő hallgatóknak még csak-csak megbocsájtottuk, de tudományos publikációkban is gyakran találkoztunk olyan eredményekkel, amiket nem lehetett reprodukálni, illetve adatbányászati versenyek során is szembesültünk azzal, hogy amit egyes versenyzők gondolnak a saját modelljük pontosságáról, az néha teljesen más, mint amit a szervezők visszamérnek egy ismeretlen adathalmazon. Ezek az esetek mind-mind azt jelzik, hogy a kiértékelésbe hiba csúszott, és ezért az eredmény nem mutatott valós képet a modell pontosságáról. Az RCOMM konferenciára elfogadott cikkünkben három olyan kiértékelési hibát írtunk le, amibe olykor még gyakorlott adatbányászok is beleesnek.

A hibák bemutatásához többnyire a keresztvalidációt (cross-validation) választottuk, ami az egyik leginkább elterjedt kiértékelési mód. A magyar Google csak 59 találatot tartalmaz a témában, úgyhogy röviden leírom a működését. A “k-fold” keresztvalidáció során az adathalmazt k nagyjából egyenlő részre osztjuk. Az első k-1 halmazon megépítjük a modellünket és a k-adik halmazon kiértékeljük a pontosságát, majd ugyanezt végrehajtjuk úgy, hogy az első k-2 és a k-adik halmazon tanítjuk a modellt és a k-1-ediken értékeljük ki. Ugyanezt ismételgetve végül k darab modellépítés után a k darab pontossági érték átlaga lesz a becslésünk. Amennyiben k értéke megegyezik a halmazban található elemek számával, akkor “leave-one-out” keresztvalidációról beszélünk, mert minden lépésben egyetlen elemen tesztelünk.

Az általunk azonosított modellkiértékelési hibákat egy posztsorozatban egyenként mutatjuk majd be a következő napokban. 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.