Hvad er Grid Search?

Denne artikel har til formål at forklare, hvad gitter søgning er, og hvordan vi kan bruge til at opnå optimale værdier af model hyperparametre.

Jeg vil forklare alle de nødvendige begreber i enkle vendinger sammen med en skitsering af, hvordan vi kan implementere grid search i Python.

Foto af Evgeni Tcherkasski på Unsplash

For enkelhedens skyld kan vi opdele de analytiske aspekter af et datavidenskabeligt projekt i tre dele:

  1. Den første del vil handle om indsamling af de nødvendige data og udvikling af funktionerne.

2. Den anden del ville dreje sig om at vælge den rigtige maskinlæringsmodel.

3. Den sidste del ville dreje sig om at finde de optimale hyperparametre.

Lad os forstå den tredje del bedre, for ikke alene anses det for at være en sort kunst at indstille hyperparametre, det er også en kedelig opgave, der tager tid og kræfter.

Denne artikel har til formål at forklare, hvad gitter søgning er, og hvordan vi kan bruge til at opnå optimale værdier af model hyperparametre.

Det er her, hvor gitter søgning kan være yderst nyttigt, fordi det kan hjælpe os med at bestemme de optimale værdier på en elegant måde.

Hvad er en hyperparameter?

En machine learning model har flere parametre, der ikke er trænet af træningssættet. Disse parametre styrer modellens nøjagtighed. Derfor er hyperparametrene særligt vigtige i et datalogiprojekt.

Hyperparametrene konfigureres på forhånd og leveres af den, der kalder modellen, før modellen trænes.

Som eksempel er læringshastigheden for et neuralt netværk en hyperparameter, fordi den indstilles af den, der kalder modellen, før træningsdataene føres til modellen. På den anden side er vægtene i et neuralt netværk ikke dets hyperparametre, fordi de trænes ved hjælp af træningsdatasættet.

Dertil kommer, at vi kan overveje modellen Support Vector Classification (SVC), som bruges til at klassificere datasæt. Der er en række hyperparametre, som modellen kræver.

Følgelig kan scikit-learn-biblioteksversionen af SVC opstilles med et stort antal hyperparametre, nogle af de almindelige parametre er:

  1. C: Dette er en reguleringsparameter
  2. Kernel: Vi kan indstille kerneparameteren til lineær, poly, rbf, sigmoid, precomputed eller give vores egen callable.
  3. Degree: Vi kan indsætte en brugerdefineret grad for at understøtte poly kernel-parameteren.
  4. Gamma: Dette er koefficienten for rbf, poly og sigmoid kernel parameter.
  5. Max_Iter: Det er det maksimale antal iterationer for opløseren.

Vurder, at vi ønsker at bruge SVC-modellen (af en eller anden grund). Indstilling af de optimale værdier for hyperparametrene kan være en udfordring og ressourcekrævende. Forestil dig, hvor mange permutationer vi skal bruge for at bestemme de bedste parameterværdier.

Det er her, Grid Search kommer ind i billedet.

Hvad er Grid Search?

Grid Search er en tuningteknik, der forsøger at beregne de optimale værdier for hyperparametre. Det er en udtømmende søgning, der udføres på en de specifikke parameterværdier for en model. Modellen er også kendt som en estimator.

Grid search-øvelse kan spare os tid, kræfter og ressourcer.

Python-implementering

Vi kan bruge grid-søgning i Python ved at udføre følgende trin:

Installer sklearn-biblioteket

pip install sklearn

Import sklearn-biblioteket

from sklearn.model_selection import GridSearchCV

Import din model

from sklearn.svm import SVC

Opret en liste over hyperparametre ordbog

Dette er det vigtigste trin.

Lad os overveje, at vi ønsker at finde de optimale hyperparameterværdier for:

  • kernal: Vi ønsker, at modellen skal træne sig selv på følgende kerner og give os den bedste værdi blandt lineære, poly, rbf, sigmoid og forudberegnede værdier
  • C: Vi ønsker, at modellen skal prøve følgende værdier for C:
  • max_iter: vi ønsker, at modellen skal prøve følgende værdier af max_iter: og give os den bedste værdi.

Vi kan oprette den nødvendige ordbog:

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

Instantiér GridSearchCV og indsæt parametrene

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

Note: vi har besluttet at bruge præcisionsscoringsmålet til at vurdere ydeevnen.

Til sidst udskrives de bedste parametre:

print(clf.best_params_)

Det var det hele.

Vi får nu de optimale værdier for hyperparametrene.

De valgte parametre er dem, der maksimerede præcisionsscoren.

Summarum

Denne artikel forklarede, hvordan man bruger Grid Search til at opnå optimale hyperparametre for en maskinindlæringsmodel.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.