Regressziós feladat

Az eddigiekben elsősorban osztályozási feladatok gépi tanulási megoldásával foglalkoztunk. Ebben a leckében egy másik felügyelt gépi tanulási feladattal ismerkedünk meg, a regresszióval. A regresszió is felügyelt gépi tanulási feladat, azaz rendelkezésre áll egy tanító adatbázis, ami alapján egy modellt kell tanulnunk, ami utána korábban nem látott egyedekre is képes predikálni. Azonban míg az osztályozási feladatnál a célváltozó egy osztály/kategória címke, addig a regressziónál a célváltozó egy folytonos érték. Az egyedeket ugyanúgy jellemzőkkel írjuk le, mint az osztályozásnál, de más gépi tanulási megközelítésekre van szükség ha folytons értéket akarunk predikálni/előrejelezni (forecast). Természetesen az egyedek típusa is tetszőleges lehet. Például szövegbányászatban predikálni akarjuk, hogy egy szöveges vélemény az 1-10 skálán mennyire pozitív (product rating).

Tegyük fel, hogy egy szegedi ingatlanirodában dolgozunk. A múltbeli adás-vételek alapján egy regressziós modellt akarunk tanulni, ami meg tudja jósolni, hogy mennyiért tudunk majd kiközvetíteni egy lakást. Az egyedek itt adás-vételi ügyletek. A fenti minta adatbázisban az egyedeket három jellemzővel (alapterület és kor folytonos, míg a városrész folytonos jellemző) és az ár a célváltozónk. Az első három sor minta a tanító adatbázisból, ahol ismerjük a célváltozó igazi értékét. Az utolsó sor egy egyed, amire a modelltől várjuk a becslést az adás-vétel ár-ára.
Megjegyezzük, hogy a gépi tanulás regresszió feladata nagyon hasonlít a statisztika regresszió analízis feladatához. Míg azonban a statisztikában az az egyetlen célunk, hogy jellemezni tudjunk egy adathalmazt, a gépi tanulásnál ismeretlen egyedeken való minél pontosabb predikció a cél, amihez általánosítási készségre is szükség van.

Kiértékelési metrikák a regressziós feladatnál

Mivel a regresszió is felügyelt gépi tanulási feladat, ezért a kiértékelés módszertana megegyezik az oszályozási feladatéval, azaz tanító és kiértékelő adatbázisra bontjuk a címkézett adathalmazunkat, a tanító adatbázison tanítunk egy modellt és az elkülönített kiértékelő adatbázison mérjük a modell pontosságát/teljesítményét.

Azonban a találati arány és pontosság+fedés kiértékelési metrikák nem értelmezhetőek folytonos célváltozó predikciójánál, a regressziós feladathoz speciális kiértékelési metrikát kell választanunk. A regressziós feladatoknál leggyakrabban használt kiértékelési metrika az átlagos négyzetes hiba (mean squared error, MSE). Legyen \(\vec{x}\) egy kiértékelő adatbázisbeli egyed jellemzővektora és \(r\) a hozzá tartozó ismert célváltozó érték. Jelöljük \(g(\vec{x})\)-vel egy regressziós modell predikcióját az \(\vec{x}\) jellemzővektorra (egy folytonos érték). Ekkor az \(N\) elemű kiértékelő adatbázison számított átlagos négyzetes hiba: \[ MSE = \frac{\sum\limits_{i=1}^N {( r_i - g(\vec{x}_i) )^2}}{N} \] Gyakran ennek négyzetgyök használják kiértékelési metrikának (root mean square error, RMSE): \( RMSE = \sqrt{MSE} \)

Gépi tanulási algoritmusok regresszióra

Számtalan gépi tanulási algoritmus létezik regresszió tanulására. A legtöbb osztályozó algoritmus kis átalakítással regressziós algoritmussá alakítható. Mi itt most áttekintjük, hogy a korábbi leckékben megismert osztályozó algoritmusok milyen módosítással használhatóak regressziós problémára.

Lineáris regresszió

Sőt a lineáris gépek alapvetően regressziót csinálnak, hiszen a \(g()\) diszkriminancia függvény egy folytonos értéket predikál amit utána osztályozási döntéssé alakítunk. Lineáris regresszió esetén egyetlen diszkriminancia függvényt tanulunk és annak kimenete lesz a predikciónk.
Lineáris regresszó 1 dimenzós jellemzőtér esetén. Az x tengelyen egy egyetlen folytonos jellemző értéke, a y tengelyen a célváltozó értéke van. A kék pontok a tanító adatbázis egyedi, a piros \(f(x)\)egyenes a tanult lineáris regressziós modell. Predikciós időben egy ismeretlen egyed (\(x_0\) érték) esetén a piros egyenes \(f(x_0)\) értéke lesz a predikció.
Lineáris regresszióra leggyakrabban a sztochasztikus gradiens regresszort (stochastic gradient descent regressor, SGDRegressor) és a regressziós support vector machinet (support vector regression, SVR) szokták használni.

Regressziós döntési fák

A regressziós döntési fa modellje szintén egy döntési fa, ami a jellemzők közötti logikai kapcsolatot írja le. A osztályozt végző döntési fához képest az eltérés a leveleken van. A regressziós döntési fa leveleiben vagy egy konstans érték vagy egy lineáris regressziós modell (minden levelén különböző modell) van.

Regressziós döntési fa a leveleken (téglalap) konstans predikcióval.
Predikciós időben a gyökértél levélig haladunk a jellemzőtesztekkel pontosan ugyanúgy, mint a döntési fánál, de amikor a levélhez érünk az ott található konstans érték vagy az ott található lineáris modell predikciója lesz a regressziós döntési fa predikciója.

Regressziós kNN

A k legközelebbi szomszéd osztályozót is használhatjuk regresszióra. Itt is meg kell adnunk egy egyedek közti távolság/hasonlóság függvényt, ami alapján predikciós időben az ismeretlen egyedhez, a tanító adatbázisbeli k legközelebbi egyedet megkeresi az algoritmus. A tanító adatbázbeli szomszédokhoz most folytonos érték van rendelve (célváltozó). A regressziós kNN a k szomszéd tanító adatbázis célértékének átlagát - vagy hasonlósággal súlyozott átlagát - fogja predikálni.

Ellenörző kérdések

  1. Ha meg akarjuk gépi tanulással jósolni, hogy a hallgatók hogyan teljesítenek ezen a kurzuson, az osztályozási vagy regressziós feladat?
  2. Ha van két regressziós modellünk, és ugyanazon a kiértékelő adatbázison az egyiknek nagyobb az RMSE értéke, mint a másiknak, akkor az pontosabb?

További ajánlott anyagok

  • A gépi tanulási regresszióról egy egész Cursera kurzus érhető el az Uni Washingtontól
  • Ez az írás segít megérteni, hogy milyen szituációkban melyik regresszor algoritmust érdemes választni.