- Optimaalisten hyperparametriarvojen saamisen selittäminen
- Mikä on hyperparametri?
- Mikä on Grid-haku?
- Python-toteutus
- Asenna sklearn-kirjasto
- Importoi sklearn-kirjasto
- Importoi mallisi
- Luo lista hyperparametrien sanakirjasta
- Aloitetaan GridSearchCV ja annetaan parametrit
- Tulosta lopuksi parhaat parametrit:
- Yhteenveto
Optimaalisten hyperparametriarvojen saamisen selittäminen
Tämän artikkelin tarkoituksena on selittää, mitä ruudukkohaku on ja miten voimme sen avulla saada mallin hyperparametrien optimaaliset arvot.
selitän kaikki tarvittavat käsitteet yksinkertaisin termein sekä hahmotan, miten voimme toteuttaa ruudukkohakua Pythonilla.
Yksinkertaisuuden vuoksi voimme jakaa datatieteellisen projektin analyyttiset osat kolmeen osaan:
- Ensimmäisessä osassa olisi kyse tarvittavan datan keräämisestä ja ominaisuuksien suunnittelusta.
2. Toinen osa keskittyisi oikean koneoppimismallin valintaan.
3. Viimeinen osa keskittyisi optimaalisten hyperparametrien löytämiseen.
Ymmärretäänpä kolmas osa paremmin, sillä hyperparametrien virittämistä ei pelkästään pidetä mustana taiteena, vaan se on myös työläs tehtävä ja vaatii aikaa ja vaivaa.
Tämän artikkelin tarkoituksena on selittää, mitä ruudukkohaku on ja miten voimme sen avulla saada mallin hyperparametrien optimaaliset arvot.
Tässä kohtaa ruudukkohaku voi olla erittäin hyödyllinen, koska sen avulla voimme määrittää optimaaliset arvot tyylikkäästi.
Mikä on hyperparametri?
Koneoppimismallissa on useita parametreja, joita ei ole koulutettu harjoittelukokonaisuudella. Nämä parametrit ohjaavat mallin tarkkuutta. Siksi hyperparametrit ovat erityisen tärkeitä datatieteellisessä projektissa.
Hyperparametrit määritetään etukäteen, ja mallin kutsuja antaa ne ennen mallin kouluttamista.
Esimerkiksi neuroverkon oppimisnopeus on hyperparametri, koska mallin kutsuja asettaa sen ennen harjoitusdatan syöttämistä malliin. Toisaalta neuroverkon painot eivät ole sen hyperparametreja, koska ne koulutetaan harjoitusdatan avulla.
Tarkastellaan lisäksi tukivektoriluokittelumallia (Support Vector Classification, SVC), jota käytetään datajoukkojen luokitteluun. Malli vaatii useita hyperparametreja.
Selvemmin SVC:n scikit-learn-kirjastoversiossa voidaan asettaa suuri määrä hyperparametreja, joitain yleisimpiä parametreja ovat:
- C: Tämä on säätöparametri
- Kernel: Voimme asettaa kernelparametriksi lineaarisen, poly-, rbf-, sigmoid-, esilasketun tai antaa oman kutsuttavan.
- Degree:
- Gamma: Tämä on rbf-, poly- ja sigmoidi-kernelparametrin kerroin.
- Max_Iter: Se on ratkaisijan iteraatioiden maksimimäärä.
Harkitaan, että haluamme käyttää SVC-mallia (jostain syystä). Hyperparametrien optimaalisten arvojen asettaminen voi olla haastavaa ja resursseja vaativaa. Kuvittele, kuinka monta permutaatiota tarvitsemme parhaiden parametriarvojen määrittämiseen.
Tässä kohtaa Grid-haku tulee kuvaan.
Mikä on Grid-haku?
Grid-haku on viritystekniikka, jolla yritetään laskea hyperparametrien optimaaliset arvot. Se on tyhjentävä haku, joka suoritetaan mallin tietyille parametriarvoille. Mallia kutsutaan myös estimaattoriksi.
Grid search -harjoitus voi säästää aikaa, vaivaa ja resursseja.
Python-toteutus
Voidaan käyttää ruudukkohakua Pythonissa suorittamalla seuraavat vaiheet:
Asenna sklearn-kirjasto
pip install sklearn
Importoi sklearn-kirjasto
from sklearn.model_selection import GridSearchCV
Importoi mallisi
from sklearn.svm import SVC
Luo lista hyperparametrien sanakirjasta
Tämä on keskeinen vaihe.
Tarkastellaan, että haluamme löytää optimaaliset hyperparametrien arvot:
- kernal: Haluamme, että malli harjoittelee itseään seuraavilla ytimillä ja antaa meille parhaan arvon lineaaristen, poly-, rbf-, sigmoid- ja ennalta laskettujen arvojen joukosta
- C: Haluamme, että malli kokeilee seuraavia C:n arvoja:
- max_iter: haluamme, että malli käyttää seuraavia max_iterin arvoja: ja antaa meille parhaan arvon.
Voimme luoda tarvittavan sanakirjan:
parameters = ,
'C': ,
'max_iter': }]
Aloitetaan GridSearchCV ja annetaan parametrit
clf = GridSearchCV(
SVC(), parameters, scoring='accuracy'
)
clf.fit(X_train, y_train)
Huomautus: päätimme käyttää tarkkuuspisteytyksen mittaria suorituskyvyn arviointiin.
Tulosta lopuksi parhaat parametrit:
print(clf.best_params_)
Ei muuta.
Meille esitetään nyt hyperparametrien optimaaliset arvot.
Valitut parametrit ovat ne, jotka maksimoivat tarkkuuspisteytyksen.
Yhteenveto
Tässä artikkelissa kerrottiin, miten Grid Search -menetelmää voidaan käyttää optimaalisten hyperparametrien hankkimiseen koneellisen oppimisen malliin.