- Az optimális hiperparaméterértékek elérésének magyarázata
- Mi az a hiperparaméter?
- Mi a rácskeresés?
- Python implementáció
- Telepítsük a sklearn könyvtárat
- Importáljuk a sklearn könyvtárat
- Importáljuk a modellünket
- Készítsünk egy listát a hiperparaméterek szótárából
- Elindítjuk a GridSearchCV-t és átadjuk a paramétereket
- Végül nyomtassuk ki a legjobb paramétereket:
- Ö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.
Az optimális hiperparaméterértékek elérésének magyarázata
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.
Az egyszerűség kedvéért három részre oszthatjuk az adattudományi projekt analitikai aspektusait:
- 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ő:
- C: Ez egy regulációs paraméter
- Kernel: A kernel paramétert beállíthatjuk lineáris, poly, rbf, sigmoid, precomputed vagy megadhatjuk a saját hívhatót.
- Degree:
- Gamma: Ez az együttható az rbf, poly és sigmoid kernel paraméterhez.
- 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.