Wat is Grid Search?

Dit artikel heeft als doel uit te leggen wat grid search is en hoe we het kunnen gebruiken om optimale waarden van model hyperparameters te verkrijgen.

Ik zal alle benodigde concepten in eenvoudige bewoordingen uitleggen, samen met een overzicht van hoe we de rasterzoekopdracht in Python kunnen implementeren.

Foto door Evgeni Tcherkasski op Unsplash

Voor de eenvoud kunnen we de analytische aspecten van een data science-project in drie delen splitsen:

  1. Het eerste deel zou gaan over het verzamelen van de benodigde gegevens en het engineeren van de functies.

2. Het tweede deel draait om het kiezen van het juiste machine learning-model.

3. Het laatste deel draait om het vinden van de optimale hyperparameters.

Laten we het derde deel beter begrijpen, want niet alleen wordt het afstemmen van hyperparameters als een zwarte kunst beschouwd, het is ook een vervelende taak die veel tijd en moeite kost.

Dit artikel is bedoeld om uit te leggen wat rasterzoeken is en hoe we kunnen gebruiken om optimale waarden van modelhyperparameters te verkrijgen.

Dit is waar rasterzoeken uiterst nuttig kan zijn, omdat het ons kan helpen de optimale waarden op een elegante manier te bepalen.

Wat is een hyperparameter?

Een machine learning-model heeft meerdere parameters die niet door de trainingsset worden getraind. Deze parameters bepalen de nauwkeurigheid van het model. Daarom zijn de hyperparameters bijzonder belangrijk in een data science-project.

De hyperparameters worden vooraf geconfigureerd en worden verstrekt door de aanroeper van het model voordat het model wordt getraind.

Als voorbeeld is de leersnelheid van een neuraal netwerk een hyperparameter omdat deze wordt ingesteld door de aanroeper voordat de trainingsgegevens aan het model worden toegevoerd. Anderzijds zijn de gewichten van een neuraal netwerk niet zijn hyperparameters, omdat ze worden getraind door de trainingsdataset.

Neem verder het Support Vector Classification (SVC) model dat wordt gebruikt om datasets te classificeren. Er zijn een aantal hyperparameters die het model nodig heeft.

De scikit-learn bibliotheekversie van SVC kan dus worden ingesteld met een groot aantal hyperparameters, enkele van de veel voorkomende parameters zijn:

  1. C: Dit is een regulatieparameter
  2. Kernel: We kunnen de kernelparameter instellen op lineair, poly, rbf, sigmoid, precomputed of onze eigen callable opgeven.
  3. Graad: We kunnen een aangepaste graad doorgeven om de poly kernel parameter te ondersteunen.
  4. Gamma: Dit is de coëfficiënt voor rbf, poly en sigmoid kernel parameter.
  5. Max_Iter: Dit is het maximum aantal iteraties voor de solver.

Bedenk dat we het SVC-model willen gebruiken (om welke reden dan ook). Het bepalen van de optimale waarden van de hyperparameters kan een uitdaging zijn en veel middelen vergen. Stelt u zich eens voor hoeveel permutaties we nodig hebben om de beste parameterwaarden te bepalen.

Dit is waar Grid Search om de hoek komt kijken.

Wat is Grid Search?

Grid search is een afstemmingstechniek waarmee wordt geprobeerd de optimale waarden van hyperparameters te berekenen. Het is een uitputtende zoekactie die wordt uitgevoerd op de specifieke parameterwaarden van een model. Het model wordt ook wel een schatter genoemd.

Roosterzoeken kan ons tijd, moeite en middelen besparen.

Python-implementatie

We kunnen het rasterzoeken in Python gebruiken door de volgende stappen uit te voeren:

Installeer sklearn bibliotheek

pip install sklearn

Importeer sklearn bibliotheek

from sklearn.model_selection import GridSearchCV

Importeer uw model

from sklearn.svm import SVC

Maak een lijst van hyperparameters woordenboek

Dit is de belangrijkste stap.

Laten we eens aannemen dat we de optimale hyperparameterwaarden willen vinden voor:

  • kernal: We willen dat het model zichzelf traint op de volgende kernels en ons de beste waarde geeft tussen lineair, poly, rbf, sigmoid en vooraf berekende waarden
  • C: we willen dat het model de volgende waarden van C probeert:
  • max_iter: we willen dat het model de volgende waarden van max_iter gebruikt: en ons de beste waarde geeft.

We kunnen het benodigde woordenboek maken:

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

Start GridSearchCV en geef de parameters door

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

Note: we hebben besloten de precisiescore te gebruiken om de prestaties te beoordelen.

Druk tenslotte de beste parameters af:

print(clf.best_params_)

Dat is alles.

We krijgen nu de optimale waarden van de hyperparameters.

De geselecteerde parameters zijn die parameters die de precisiescore maximaliseren.

Samenvatting

In dit artikel is uitgelegd hoe u Grid Search kunt gebruiken om optimale hyperparameters voor een machine learning model te verkrijgen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.