Grid Search for model tuning
![](https://miro.medium.com/freeze/max/60/0*I0Uf79WuTauqKCMr.gif?q=20)
A modell hiperparamétere egy modell olyan jellemzője, amely a modellen kívül esik, és amelynek értéke nem becsülhető az adatokból. A hiperparaméter értékét a tanulási folyamat megkezdése előtt kell beállítani. Például c a támogató vektoros gépeknél, k a k-közelebbi szomszédoknál, a rejtett rétegek száma a neurális hálózatoknál.
A paraméter ezzel szemben a modell belső jellemzője, amelynek értéke az adatokból becsülhető. Példa: béta együtthatók a lineáris/logisztikus regresszióban vagy support vektorok a Support Vector Machines-ben.
A grid-keresést arra használják, hogy megtalálják a modell optimális hiperparamétereit, amelyek a leg “pontosabb” előrejelzéseket eredményezik.
Nézzük meg a grid-keresést egy osztályozási modell létrehozásával a mellrák adathalmazon.
Importáljuk az adathalmazt, és nézzük meg a felső 10 sort.
Kimenet :
![](https://miro.medium.com/max/60/1*BOv1Lyof38x-XDiStnEuqw.png?q=20)
Az adathalmaz minden sorának két lehetséges osztálya van: jóindulatú (2 által reprezentálva) és rosszindulatú (4 által reprezentálva). Emellett ebben az adatkészletben 10 attribútum van (a fentiekben látható), amelyeket a predikcióhoz használunk, kivéve a minta kódszámát, amely az azonosítószám.
Tisztítsuk meg az adatokat, és nevezzük át az osztályértékeket 0/1-re a modellépítéshez (ahol az 1 a rosszindulatú esetet jelenti). Továbbá figyeljük meg az osztály eloszlását.
Kimenet :
![](https://miro.medium.com/max/60/1*KCN_U0V3Joe-4D30egl9hQ.png?q=20)
A jóindulatú esetek száma 444, a rosszindulatúaké 239.
Kimenet :
![](https://miro.medium.com/max/60/1*RT1Vo49y8TJnRG9OKOh4eQ.png?q=20)
![](https://miro.medium.com/max/60/1*usB1eswDcyW4-M98qm41gg.png?q=20)
A kimenetből megállapítható, hogy a tesztadathalmazban 68 malignus és 103 jóindulatú eset van. Az osztályozónk azonban minden esetet jóindulatúnak jósol (mivel ez a többségi osztály).
Számítsuk ki a modell értékelési metrikáit.
Kimenet :
![](https://miro.medium.com/max/60/1*2y_TJr60p8vOf7joHmYy-A.png?q=20)
![](https://miro.medium.com/max/60/1*XhCkzVs9cVM3fq2HrxNmdA.png?q=20)
A modell pontossága 60.2%, de ez egy olyan eset, amikor a pontosság nem feltétlenül a legjobb mérőszám a modell értékelésére. Nézzük tehát a többi értékelési metrikát.
![](https://miro.medium.com/max/60/1*zxYAjp_e2Fp7pFAv1tkBLw.png?q=20)
A fenti ábra a konfúziós mátrix, a jobb érzékelhetőség érdekében címkékkel és színekkel kiegészítve (A létrehozásához szükséges kód itt található). Összefoglalva a zavarmátrixot : IGAZ POZITÍVOK (TP)= 0, IGAZ NEGATÍVOK (TN)= 103, HAMIS POZITÍVOK (FP)= 0, HAMIS NEGATÍVOK (FN)= 68. Az értékelési metrikák képletei a következők :
![](https://miro.medium.com/max/60/1*fPk7uc0KflLMkv47oaB5Mg.png?q=20)
Mivel a modell egyetlen rosszindulatú esetet sem osztályoz helyesen, a recall és precision metrikák értéke 0.
Most, hogy megvan az alappontosság, építsünk egy logisztikus regressziós modellt alapértelmezett paraméterekkel, és értékeljük ki a modellt.
Kimenet :
![](https://miro.medium.com/max/60/1*ycgXKS4VsiFbepDgoTE3aQ.png?q=20)
![](https://miro.medium.com/max/60/1*4RiY-CFCpVZijaUyi2saRw.png?q=20)
A Logisztikus regressziós modell alapértelmezett paraméterekkel történő illesztésével egy sokkal “jobb” modellt kapunk. A pontosság 94,7%, ugyanakkor a Precizitás elképesztő 98,3%. Most pedig nézzük meg újra a zavarmátrixot ennek a modellnek az eredményeihez ismét :
![](https://miro.medium.com/max/60/1*dbBOgZ4hDiP296JaoBerFg.png?q=20)
A tévesen besorolt eseteket tekintve megfigyelhetjük, hogy 8 rosszindulatú esetet tévesen jóindulatúnak minősítettek (hamis negatívok). Emellett mindössze egy jóindulatú esetet minősítettek rosszindulatúnak (Hamis pozitív).
A hamis negatív eset súlyosabb, mivel figyelmen kívül hagytak egy betegséget, ami a beteg halálához vezethet. Ugyanakkor egy téves pozitív eredmény felesleges kezeléshez vezetne – ami további költségekkel jár.
Próbáljuk meg minimalizálni a téves negatívokat a Grid Search segítségével, hogy megtaláljuk az optimális paramétereket. A rácskeresés bármely konkrét értékelési metrika javítására használható.
A metrika, amelyre a hamis negatív eredmények csökkentése érdekében összpontosítanunk kell, a Recall.
Rácsos keresés a Recall maximalizálására
Kimenet :
![](https://miro.medium.com/max/60/1*-73SS3zB51ixv8FvVgw6mA.png?q=20)
![](https://miro.medium.com/max/60/1*eBL6uoCmwOUMEk-SHRAzSw.png?q=20)
A hangolt hiperparaméterek a következők:
- Büntetés: l1 vagy l2, amely a büntetésnél használt norma fajtája.
- C: A regularizáció erősségének inverze – a C kisebb értékei erősebb regularizációt adnak meg.
A Grid-search függvényben van még a scoring paraméter, ahol megadhatjuk, hogy milyen metrika alapján értékeljük a modellt (mi a recall-t választottuk metrikának). Az alábbi zavarmátrixból láthatjuk, hogy a hamis negatív eredmények száma csökkent, ez azonban a hamis pozitív eredmények növekedésének árán történt. A visszahívás a rácsos keresés után 88,2%-ról 91,1%-ra ugrott, míg a pontosság 98,3%-ról 87,3%-ra csökkent.
![](https://miro.medium.com/max/60/1*JLIKCMC2HhAHhqHxNsi1Lg.png?q=20)
Az “f1” pontszámot használva értékelési metrikaként tovább hangolhatja a modellt, hogy egyensúlyt találjon a pontosság és a visszahívás között. Az értékelési metrikák jobb megértéséhez tekintse meg ezt a cikket.
A rácsos keresés a megadott hiperparaméterek minden egyes kombinációjára felépít egy modellt, és minden modellt kiértékel. A hiperparaméterek hangolásának hatékonyabb technikája a véletlenszerű keresés – ahol a hiperparaméterek véletlenszerű kombinációit használjuk a legjobb megoldás megtalálásához.
Leave a Reply