Mi az a rácsos keresés?

Ez a cikk célja, hogy elmagyarázza, mi a rácsos keresés, és hogyan tudjuk használni a modell hiperparamétereinek optimális értékeit.

Elmagyarázom az összes szükséges fogalmat egyszerű kifejezésekkel, valamint felvázolom, hogyan tudjuk a rácsos keresést Pythonban megvalósítani.

Photo by Evgeni Tcherkasski on Unsplash

Az egyszerűség kedvéért három részre oszthatjuk az adattudományi projekt analitikai aspektusait:

  1. Az első rész a szükséges adatok összegyűjtéséről és a funkciók megtervezéséről szólna.

2. A második rész a megfelelő gépi tanulási modell kiválasztásáról szólna.

3. Az utolsó rész az optimális hiperparaméterek megtalálásáról szólna.

A harmadik részt értsük meg jobban, mert a hiperparaméterek hangolása nemcsak fekete művészetnek számít, hanem fárasztó feladat is, és időt és erőfeszítést igényel.

Ez a cikk célja, hogy elmagyarázza, mi az a rácsos keresés, és hogyan tudjuk vele a modell hiperparamétereinek optimális értékeit meghatározni.

Ez az a pont, ahol a rácsos keresés rendkívül hasznos lehet, mert segítségével elegáns módon tudjuk meghatározni az optimális értékeket.

Mi az a hiperparaméter?

Egy gépi tanulási modellnek több olyan paramétere van, amelyeket nem a képzési halmaz képez. Ezek a paraméterek szabályozzák a modell pontosságát. Ezért a hiperparaméterek különösen fontosak egy adattudományi projektben.

A hiperparamétereket előre konfigurálják, és a modell hívója adja meg őket, mielőtt a modellt betanítanák.

Egy neurális hálózat tanulási rátája például hiperparaméter, mert azt a hívó állítja be, mielőtt a betanítási adatokat betáplálnák a modellbe. Másrészt a neurális hálózat súlyai nem a hiperparaméterei, mert azokat a képzési adathalmaz képzi ki.

Tekintsük továbbá a Support Vector Classification (SVC) modellt, amelyet adathalmazok osztályozására használnak. A modellnek számos hiperparaméterre van szüksége.

Az SVC scikit-learn könyvtári változata tehát nagyszámú hiperparaméterrel állítható be, néhány gyakori paraméter a következő:

  1. C: Ez egy regulációs paraméter
  2. Kernel: A kernel paramétert beállíthatjuk lineáris, poly, rbf, sigmoid, precomputed vagy megadhatjuk a saját hívhatót.
  3. Degree:
  4. Gamma: Ez az együttható az rbf, poly és sigmoid kernel paraméterhez.
  5. Max_Iter: Ez a megoldó maximális iterációszáma.

Tegyük fel, hogy az SVC modellt akarjuk használni (bármilyen okból). A hiperparaméterek optimális értékeinek beállítása kihívást jelenthet és erőforrás-igényes lehet. Képzeljük el, hány permutációra van szükségünk a legjobb paraméterértékek meghatározásához.

Itt jön a képbe a rácskeresés.

Mi a rácskeresés?

A rácskeresés egy olyan hangolási technika, amely megpróbálja kiszámítani a hiperparaméterek optimális értékeit. Ez egy kimerítő keresés, amelyet egy modell adott paraméterértékein végeznek el. A modellt becslőnek is nevezik.

A rácskeresés gyakorlása időt, energiát és erőforrásokat takaríthat meg számunkra.

Python implementáció

A rácskeresést Pythonban a következő lépések elvégzésével használhatjuk:

Telepítsük a sklearn könyvtárat

pip install sklearn

Importáljuk a sklearn könyvtárat

from sklearn.model_selection import GridSearchCV

Importáljuk a modellünket

from sklearn.svm import SVC

Készítsünk egy listát a hiperparaméterek szótárából

Ez a legfontosabb lépés.

Tegyük fel, hogy meg akarjuk találni az optimális hiperparaméterértékeket:

  • kernal: Azt akarjuk, hogy a modell a következő kerneleken képezze magát, és adja meg a legjobb értéket a lineáris, poli, rbf, sigmoid és az előre kiszámított értékek közül
  • C: Azt akarjuk, hogy a modell a következő C értékeket próbálja ki:
  • max_iter: azt akarjuk, hogy a modell a következő max_iter értékeket használja: és adja meg nekünk a legjobb értéket.

Elkészíthetjük a szükséges szótárat:

parameters = , 
'C': ,
'max_iter': }]

Elindítjuk a GridSearchCV-t és átadjuk a paramétereket

clf = GridSearchCV(
SVC(), parameters, scoring='accuracy'
)
clf.fit(X_train, y_train)

Megjegyzés: úgy döntöttünk, hogy a teljesítmény értékeléséhez a precíziós pontozási mértéket használjuk.

Végül nyomtassuk ki a legjobb paramétereket:

print(clf.best_params_)

Ez minden.

Most megkapjuk a hiperparaméterek optimális értékeit.

A kiválasztott paraméterek azok, amelyek maximalizálták a pontossági pontszámot.

Összefoglaló

Ez a cikk elmagyarázta, hogyan használhatjuk a Grid Searchet egy gépi tanulási modell optimális hiperparamétereinek meghatározására.

Ez a cikk elmagyarázta, hogyan használhatjuk a Grid Searchet egy gépi tanulási modell optimális hiperparamétereinek meghatározására.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.