Ajustement des hyperparamètres d'un estimateur

Machine LearningMachine LearningBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Les hyperparamètres sont des paramètres qui ne sont pas directement appris par un estimateur. Ils sont passés en tant qu'arguments au constructeur des classes d'estimateur. Le réglage des hyperparamètres d'un estimateur est une étape importante dans la construction de modèles d'apprentissage automatique performants. Cela consiste à trouver la combinaison optimale d'hyperparamètres qui conduit à la meilleure performance du modèle.

Scikit-learn fournit plusieurs outils pour rechercher les meilleurs hyperparamètres : GridSearchCV et RandomizedSearchCV. Dans ce laboratoire, nous allons parcourir le processus de réglage des hyperparamètres à l'aide de ces outils.

Conseils sur la VM

Une fois le démarrage de la VM terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limites de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous réglerons rapidement le problème pour vous.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/svm("Support Vector Machines") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/svm -.-> lab-71123{{"Ajustement des hyperparamètres d'un estimateur"}} sklearn/model_selection -.-> lab-71123{{"Ajustement des hyperparamètres d'un estimateur"}} sklearn/datasets -.-> lab-71123{{"Ajustement des hyperparamètres d'un estimateur"}} ml/sklearn -.-> lab-71123{{"Ajustement des hyperparamètres d'un estimateur"}} end

Importez les bibliothèques nécessaires

Tout d'abord, nous devons importer les bibliothèques nécessaires pour notre analyse. Nous utiliserons sklearn.model_selection pour effectuer le réglage des hyperparamètres.

import numpy as np
from sklearn.model_selection import GridSearchCV, RandomizedSearchCV

Chargez le jeu de données

Ensuite, chargeons le jeu de données avec lequel nous allons travailler. Nous pouvons utiliser n'importe quel jeu de données de notre choix pour cet exercice.

from sklearn.datasets import load_iris

## Chargez le jeu de données iris
iris = load_iris()

## Divisez les données en caractéristiques et en cible
X = iris.data
y = iris.target

Définissez l'estimateur et la grille de paramètres

Maintenant, nous devons définir l'estimateur que nous voulons ajuster et la grille de paramètres que nous voulons explorer. La grille de paramètres spécifie les valeurs que nous voulons essayer pour chaque hyperparamètre.

from sklearn.svm import SVC

## Créez une instance du classifieur à vecteurs de support
svc = SVC()

## Définissez la grille de paramètres
param_grid = {'C': [0.1, 1, 10, 100], 'gamma': [0.1, 0.01, 0.001], 'kernel': ['linear', 'rbf']}

Effectuez une recherche en grille avec validation croisée

La recherche en grille explore de manière exhaustive toutes les combinaisons possibles d'hyperparamètres dans la grille de paramètres spécifiée. Elle évalue les performances de chaque combinaison en utilisant la validation croisée.

## Créez une instance de GridSearchCV
grid_search = GridSearchCV(svc, param_grid, cv=5)

## Ajustez les données pour effectuer la recherche en grille
grid_search.fit(X, y)

## Affichez la meilleure combinaison d'hyperparamètres
print('Meilleurs hyperparamètres :', grid_search.best_params_)

Effectuez une recherche aléatoire avec validation croisée

La recherche aléatoire prend aléatoirement un sous-ensemble de la grille de paramètres et évalue les performances de chaque combinaison en utilisant la validation croisée. Elle est utile lorsque l'espace de paramètres est grand et qu'il n'est pas possible d'effectuer une recherche exhaustive.

## Créez une instance de RandomizedSearchCV
random_search = RandomizedSearchCV(svc, param_grid, cv=5, n_iter=10, random_state=0)

## Ajustez les données pour effectuer la recherche aléatoire
random_search.fit(X, y)

## Affichez la meilleure combinaison d'hyperparamètres
print('Meilleurs hyperparamètres :', random_search.best_params_)

Sommaire

Dans ce laboratoire, nous avons appris à ajuster les hyperparamètres d'un estimateur à l'aide de GridSearchCV et de RandomizedSearchCV. Nous avons défini l'estimateur et la grille de paramètres, puis effectué respectivement une recherche en grille et une recherche aléatoire pour trouver la meilleure combinaison d'hyperparamètres. L'ajustement d'hyperparamètres est une étape importante dans la construction de modèles d'apprentissage automatique pour améliorer leurs performances.