Ce este Grid Search?

Acest articol își propune să explice ce este căutarea în grilă și cum o putem folosi pentru a obține valorile optime ale hiperparametrilor modelului.

Voi explica toate conceptele necesare în termeni simpli, împreună cu schițarea modului în care putem implementa căutarea în grilă în Python.

Fotografie de Evgeni Tcherkasski pe Unsplash

Pentru simplificare, putem împărți aspectele analitice ale unui proiect de știință a datelor în trei părți:

  1. Prima parte s-ar referi la colectarea datelor necesare și la ingineria funcțiilor.

2. A doua parte s-ar învârti în jurul alegerii modelului corect de învățare automată.

3. Ultima parte ar fi în jurul găsirii hiperparametrilor optimi.

Să înțelegem mai bine a treia parte, deoarece nu numai că reglarea hiperparametrilor este considerată o artă neagră, dar este și o sarcină plictisitoare și necesită timp și efort.

Acest articol își propune să explice ce este căutarea în grilă și cum putem folosi pentru a obține valorile optime ale hiperparametrilor modelului.

Acesta este punctul în care căutarea în grilă poate fi extrem de utilă, deoarece ne poate ajuta să determinăm valorile optime într-o manieră elegantă.

Ce este un hiperparametru?

Un model de învățare automată are mai mulți parametri care nu sunt antrenați de setul de antrenament. Acești parametri controlează acuratețea modelului. Prin urmare, hiperparametrii sunt deosebit de importanți într-un proiect de știință a datelor.

Hiperparametrii sunt configurați în avans și sunt furnizați de către apelantul modelului înainte ca acesta să fie antrenat.

Ca exemplu, rata de învățare a unei rețele neuronale este un hiperparametru, deoarece este setată de către apelant înainte ca datele de antrenament să fie introduse în model. Pe de altă parte, ponderile unei rețele neuronale nu sunt hiperparametrii acesteia, deoarece sunt antrenate de setul de date de instruire.

Considerăm, de asemenea, modelul de clasificare a vectorilor de suport (SVC) care este utilizat pentru a clasifica seturi de date. Există o serie de hiperparametri de care modelul are nevoie.

Subiectiv, versiunea bibliotecii scikit-learn a SVC poate fi configurată cu un număr mare de hiperparametri, unii dintre parametrii comuni sunt:

  1. C: Acesta este un parametru de reglare
  2. Kernel: Putem seta parametrul kernel la linear, poly, rbf, sigmoid, precalculat sau să furnizăm propriul nostru callable.
  3. Grad: Putem trece un grad personalizat pentru a susține parametrul de kernel poly.
  4. Gamma: Acesta este coeficientul pentru parametrul kernel rbf, poly și sigmoid.
  5. Max_Iter: Este numărul maxim de iterații pentru soluționer.

Considerăm că dorim să folosim modelul SVC (indiferent de motiv). Stabilirea valorilor optime ale hiperparametrilor poate fi o provocare și necesită resurse. Imaginați-vă de câte permutări avem nevoie pentru a determina cele mai bune valori ale parametrilor.

Aici intervine căutarea în grilă.

Ce este căutarea în grilă?

Cercetarea în grilă este o tehnică de reglare care încearcă să calculeze valorile optime ale hiperparametrilor. Este o căutare exhaustivă care se efectuează pe o valorile specifice ale parametrilor unui model. Modelul este, de asemenea, cunoscut sub numele de estimator.

Exercițiul de căutare în grilă ne poate economisi timp, efort și resurse.

Implementarea în Python

Potem utiliza căutarea în grilă în Python efectuând următorii pași:

Instalați biblioteca sklearn

pip install sklearn

Importați biblioteca sklearn

from sklearn.model_selection import GridSearchCV

Importați modelul dumneavoastră

from sklearn.svm import SVC

Creați o listă de dicționar de hiperparametri

Aceasta este etapa cheie.

Să considerăm că dorim să găsim valorile optime ale hiperparametrilor pentru:

  • kernal: Vrem ca modelul să se antreneze pe următorii kerneli și să ne dea cea mai bună valoare dintre valorile liniare, poli, rbf, sigmoid și cele precalculate
  • C: Vrem ca modelul să încerce următoarele valori ale lui C:
  • max_iter: dorim ca modelul să utilizeze următoarele valori ale lui max_iter: și să ne ofere cea mai bună valoare.

Puteți crea dicționarul necesar:

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

Instanțiați GridSearchCV și introduceți parametrii

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

Nota: am decis să utilizăm măsura de punctare a preciziei pentru a evalua performanța.

În cele din urmă, imprimați cei mai buni parametri:

print(clf.best_params_)

Acesta este tot.

Acum ne vor fi prezentate valorile optime ale hiperparametrilor.

Parametrii selectați sunt cei care au maximizat scorul de precizie.

Summary

Acest articol a explicat cum să folosim Grid Search pentru a obține hiperparametrii optimi pentru un model de învățare automată.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.