Qu’est-ce que la recherche par grille ?

Cet article vise à expliquer ce qu’est la recherche sur grille et comment nous pouvons l’utiliser pour obtenir des valeurs optimales des hyperparamètres du modèle.

J’expliquerai tous les concepts requis en termes simples tout en exposant comment nous pouvons mettre en œuvre la recherche par grille en Python.

Photo d’Evgeni Tcherkasski sur Unsplash

Pour simplifier, nous pouvons diviser les aspects analytiques d’un projet de science des données en trois parties :

  1. La première partie consisterait à rassembler les données requises et à concevoir les fonctionnalités.

2. La deuxième partie tournerait autour du choix du bon modèle d’apprentissage automatique.

3. La dernière partie tournerait autour de la recherche des hyperparamètres optimaux.

Comprenons mieux la troisième partie car non seulement le réglage des hyperparamètres est considéré comme un art noir, mais c’est aussi une tâche fastidieuse qui demande du temps et des efforts.

Cet article vise à expliquer ce qu’est la recherche sur grille et comment nous pouvons l’utiliser pour obtenir les valeurs optimales des hyperparamètres du modèle.

C’est là que la recherche sur grille peut être extrêmement utile car elle peut nous aider à déterminer les valeurs optimales d’une manière élégante.

Qu’est-ce qu’un hyperparamètre?

Un modèle d’apprentissage automatique a plusieurs paramètres qui ne sont pas formés par l’ensemble d’entraînement. Ces paramètres contrôlent la précision du modèle. Par conséquent, les hyperparamètres sont particulièrement importants dans un projet de science des données.

Les hyperparamètres sont configurés à l’avance et sont fournis par l’appelant du modèle avant que le modèle ne soit formé.

Par exemple, le taux d’apprentissage d’un réseau neuronal est un hyperparamètre car il est défini par l’appelant avant que les données de formation ne soient fournies au modèle. En revanche, les poids d’un réseau neuronal ne sont pas ses hyperparamètres car ils sont formés par l’ensemble de données d’apprentissage.

En outre, considérons le modèle de classification par vecteurs de support (SVC) qui est utilisé pour classer des ensembles de données. Il y a un certain nombre d’hyperparamètres que le modèle requiert.

En conséquence, la version de la bibliothèque scikit-learn du SVC peut être configurée avec un grand nombre d’hyperparamètres, certains des paramètres communs sont :

  1. C : C’est un paramètre de régulation
  2. Kernel : Nous pouvons définir le paramètre du noyau à linéaire, poly, rbf, sigmoïde, précalculé ou fournir notre propre appelable.
  3. Degré : Nous pouvons passer dans un degré personnalisé pour soutenir le paramètre de noyau poly.
  4. Gamma : C’est le coefficient pour le paramètre de noyau rbf, poly et sigmoïde.
  5. Max_Iter : C’est le nombre maximum d’itérations pour le solveur.

Considérons que nous voulons utiliser le modèle SVC (pour une raison quelconque). La définition des valeurs optimales des hyperparamètres peut être difficile et exigeante en ressources. Imaginez le nombre de permutations dont nous avons besoin pour déterminer les meilleures valeurs de paramètres.

C’est là que la recherche par grille intervient.

Qu’est-ce que la recherche par grille ?

La recherche par grille est une technique de réglage qui tente de calculer les valeurs optimales des hyperparamètres. Il s’agit d’une recherche exhaustive qui est effectuée sur une les valeurs de paramètres spécifiques d’un modèle. Le modèle est également connu comme un estimateur.

L’exercice de recherche en grille peut nous faire gagner du temps, des efforts et des ressources.

Mise en œuvre en Python

Nous pouvons utiliser la recherche par grille en Python en effectuant les étapes suivantes :

Installer la bibliothèque sklearn

pip install sklearn

Importer la bibliothèque sklearn

from sklearn.model_selection import GridSearchCV

Importer votre modèle

from sklearn.svm import SVC

Créer une liste de dictionnaire d’hyperparamètres

C’est l’étape clé.

Considérons que nous voulons trouver les valeurs optimales des hyperparamètres pour :

  • kernal : Nous voulons que le modèle s’entraîne sur les noyaux suivants et nous donne la meilleure valeur parmi les valeurs linéaires, poly, rbf, sigmoïde et précalculées
  • C : nous voulons que le modèle essaie les valeurs suivantes de C :
  • max_iter : nous voulons que le modèle utilise les valeurs suivantes de max_iter : et nous donne la meilleure valeur.

Nous pouvons créer le dictionnaire requis:

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

Instanciez GridSearchCV et passez les paramètres

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

Note : nous avons décidé d’utiliser la mesure de notation de la précision pour évaluer la performance.

Enfin, imprimez les meilleurs paramètres :

print(clf.best_params_)

C’est tout.

On nous présente maintenant les valeurs optimales des hyperparamètres.

Les paramètres sélectionnés sont ceux qui ont maximisé le score de précision.

Résumé

Cet article a expliqué comment utiliser le Grid Search pour obtenir des hyperparamètres optimaux pour un modèle d’apprentissage automatique.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.