Vajon gépi tanuló modellünk biztosan jól teljesít?

Fejlesztés Olvasási idő:1 perc

Machine Learning

Pár éve egy ismerősöm örömmel újságolta, hogy egy döntési fa alapú algoritmussal (AdaBoost), képes volt 85%-os pontossággal megmondani egy ügyfélről a különböző paraméterei alapján, hogy az adott hitel visszafizetésre kerül-e vagy sem. Elsőre jónak hangzik, ugye? Azonban ahhoz, hogy megértsük, miért nem az, lássuk, valójában mit is jelent a pontosság, mint mérőszám.

Ez egy úgynevezett bináris osztályozás, hiszen minden megfigyelés (ügyfél), pontosan kétféle értéket vehet fel: vagy visszafizeti a kapott kölcsönt, vagy nem. Ebben az esetben a validáló adathalmaz algoritmuson való végigfuttatása után egy 2×2-es mátrixban összegezhetjük az eredményeket. A validáló adathalmaz egy címkékkel ellátott része az adatunknak, ami nem része a tanító adathalmaznak – tehát az ebben levő ügyfelekről tudjuk, hogy visszafizették-e a kölcsönt vagy sem, így mérhető az algoritmusunk teljesítménye.

A 2×2-es mátrix a következőképpen néz ki:
Mátrix
1. Tévesztésmátrix bináris esetben

A ’True-False’, és a ’Positive-Negative’ angol szavak variációiból kapjuk a négyféle kategóriát. Értelemszerűen a ’True’ kezdetűek jelentik a helyesen osztályozott pontok számát, és bármilyen megtévesztő ebben az esetben, de a Positive jelenti azt, hogy az illető nem fizeti vissza a hitelt. A tévesztési mátrix alapján könnyen számítható az osztályozó modellünk pontossága:

Osztályozó modell egyenlet
2. Pontosság

Ez az összes helyesen beosztályozott megfigyelések aránya. A  fent említett problémánál ez azt jelenti, hogy 100 emberből 85-nél eltalálta az algoritmus, hogy vissza fogja-e fizetni a kölcsönt. Ami viszont nem derül ebből ki, hogy abból a maradék 15-ből mennyi olyan van, aki valójában nem fogja visszafizetni. Érthető okokból, a hitelintézeteket ez az eset érdekli jobban, ezért ebben az esetben, érdemes két másik teljesítménymutatót mérvadónak venni: a precizitást (precision), és a felidézést (recall).

Teljesítménymutató 1
3. Precizitás
Teljesítménymutató 2
4. Felidézés

Látható, hogy ezek beszédesebb mutatók ebben az esetben, hiszen a precizitás megadja a helyesen “nem fizetőnek” osztályozottak arányát az összes “nem fizetőnek” osztályozott között, míg a felidézés az összes ténylegesen “nem fizető” között. Mindig érdemes figyelembe venni az üzleti igényeket, amikor kiválasztjuk a validáló metrikánkat.

Egy másik fontos szempont az adat összetétele. Maradjunk ugyanennél a példánál. A tanító adathalmazból tudjuk, hogy 100-ból 7 ügyfél nem fizeti vissza a hitelt, a többi 93 igen. Egy ilyen részlehajló adathalmaznál félrevezető lehet a pontosságot venni. Vegyünk egy véletlen osztályozót, ami mindentől függetlenül kiosztja valahogy a címkéket a megfelelő arányban. Könnyű kiszámolni, hogy ez a véletlen osztályozó is ~87%-os pontosságú. Ennek fényében a 85%-os AdaBoost már nagyon gyengének számít.

Természetesen ezek a gondolatok nem csak az osztályozásra érvényesek. Regressziónál, klaszterezésnél, és idősoros előrejelzésnél is érdemes mindig figyelembe venni az üzleti igényeket és az adat tulajdonságait, amikor megválasztjuk a modell teljesítményét mérő metrikát.

Dobsa Dániel – Data Scientist – Nextent Informatika Zrt.