Vad är Grid Search?

Denna artikel syftar till att förklara vad gridsökning är och hur vi kan använda den för att få fram optimala värden på modellens hyperparametrar.

Jag kommer att förklara alla nödvändiga begrepp i enkla termer tillsammans med att beskriva hur vi kan implementera grid search i Python.

Foto av Evgeni Tcherkasski på Unsplash

För enkelhetens skull kan vi dela upp de analytiska aspekterna av ett data science-projekt i tre delar:

  1. Den första delen skulle handla om att samla in de nödvändiga uppgifterna och konstruera funktionerna.

2. Den andra delen skulle kretsa kring att välja rätt maskininlärningsmodell.

3. Den sista delen skulle handla om att hitta de optimala hyperparametrarna.

Låt oss förstå den tredje delen bättre, för det är inte bara så att det anses vara svartkonst att ställa in hyperparametrar, det är också en tråkig uppgift som tar tid och kraft.

Denna artikel syftar till att förklara vad gridsökning är och hur vi kan använda för att få fram optimala värden på modellens hyperparametrar.

Det är här som gridsökningen kan vara till stor hjälp eftersom den kan hjälpa oss att bestämma de optimala värdena på ett elegant sätt.

Vad är en hyperparameter?

En modell för maskininlärning har flera parametrar som inte tränas av träningsmängden. Dessa parametrar styr modellens noggrannhet. Därför är hyperparametrarna särskilt viktiga i ett datavetenskapsprojekt.

Hyperparametrarna konfigureras i förväg och tillhandahålls av den som anropar modellen innan modellen tränas.

Som exempel är inlärningshastigheten för ett neuralt nätverk en hyperparameter eftersom den ställs in av den som anropar modellen innan träningsdata matas in i modellen. Å andra sidan är vikterna i ett neuralt nätverk inte dess hyperparametrar eftersom de tränas av träningsdatamängden.

För övrigt kan man tänka på modellen Support Vector Classification (SVC) som används för att klassificera datamängder. Det finns ett antal hyperparametrar som modellen kräver.

Följaktligen kan scikit-learn-bibliotekets version av SVC ställas in med ett stort antal hyperparametrar, några av de vanligaste parametrarna är:

  1. C: Detta är en regleringsparameter
  2. Kernel: Vi kan ställa in kärnparametern till linjär, poly, rbf, sigmoid, förberäknad eller tillhandahålla vår egen callable.
  3. Degree: Vi kan skicka in en egen grad för att stödja poly-kärnparametern.
  4. Gamma: Vi kan ange en egen grad för att stödja poly-kärnparametern: Detta är koefficienten för rbf-, poly- och sigmoidkärnparametern.
  5. Max_Iter: Det är det maximala antalet iterationer för lösaren.

Visst att vi vill använda SVC-modellen (av någon anledning). Att fastställa de optimala värdena för hyperparametrarna kan vara utmanande och resurskrävande. Föreställ dig hur många permutationer vi behöver för att bestämma de bästa parametervärdena.

Det är här Grid Search kommer in.

Vad är Grid Search?

Grid Search är en inställningsteknik som försöker beräkna de optimala värdena för hyperparametrar. Det är en uttömmande sökning som utförs på en modellens specifika parametervärden. Modellen är också känd som en estimator.

Grid search exercise can save us time, effort and resources.

Python-implementering

Vi kan använda rutnätssökning i Python genom att utföra följande steg:

Installera sklearn-biblioteket

pip install sklearn

Importera sklearn-biblioteket

from sklearn.model_selection import GridSearchCV

Importera din modell

from sklearn.svm import SVC

Skapa en lista över hyperparametrar i en ordbok

Det här är det viktigaste steget.

Vi kan tänka oss att vi vill hitta de optimala hyperparametervärdena för:

  • kernal: Vi vill att modellen ska träna sig själv på följande kärnor och ge oss det bästa värdet bland linjära, poly, rbf, sigmoid och förberäknade värden
  • C: Vi vill att modellen ska prova följande värden för C:
  • max_iter: Vi vill att modellen ska prova följande värden för max_iter: och ge oss det bästa värdet.

Vi kan skapa det nödvändiga lexikonet:

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

Instantera GridSearchCV och skicka in parametrarna

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

Anmärkningar: Vi har bestämt oss för att använda precisionsscoringsmåttet för att bedöma prestanda.

Slutligen skriver du ut de bästa parametrarna:

print(clf.best_params_)

Det var allt.

Vi kommer nu att presenteras med de optimala värdena för hyperparametrarna.

De valda parametrarna är de som maximerade precisionspoängen.

Sammanfattning

Den här artikeln förklarade hur man kan använda Grid Search för att få fram optimala hyperparametrar för en modell för maskininlärning.

Lämna ett svar

Din e-postadress kommer inte publiceras.