CommencezCommencez gratuitement

Configurer les paramètres de GridSearch

Un hyperparamètre est un paramètre d'une fonction. Par exemple, max_depth ou min_samples_leaf sont des hyperparamètres de la fonction DecisionTreeClassifier(). L'ajustement des hyperparamètres (hyperparameter tuning) consiste à tester différentes valeurs d'hyperparamètres afin de trouver celles qui sont optimales, c'est‑à‑dire celles qui donnent les meilleures prédictions selon vos objectifs. Dans sklearn, vous pouvez utiliser GridSearch pour tester différentes combinaisons d'hyperparamètres. Encore mieux, vous pouvez utiliser GridSearchCV() pour tester différentes combinaisons et effectuer la validation croisée en une seule fonction!

Dans cet exercice, vous allez préparer les différentes valeurs à tester pour max_depth et min_samples_leaf. Vous les placerez ensuite dans un dictionnaire, car c'est ce que requiert GridSearchCV() :

  • les clés du dictionnaire seront les noms des hyperparamètres
  • les valeurs du dictionnaire seront les attributs (les valeurs d'hyperparamètres) que vous souhaitez tester

Au lieu d'écrire toutes les valeurs manuellement, vous utiliserez la fonction range(), qui permet de générer des valeurs de façon incrémentale. Par exemple, range(1, 10, 2) génère une liste contenant des valeurs allant de 1 inclus à 10 exclu, par incréments de 2. Le résultat final sera donc [1, 3, 5, 7, 9].

Cette activité fait partie du cours

Analytique RH : prédire le roulement du personnel avec Python

Voir le cours

Instructions de l’exercice

  • En suivant le format de l'exemple ci‑dessus, générez des valeurs pour la profondeur maximale allant de 5 à 20 avec des incréments de 1
  • Faites de même pour la taille minimale d'un feuillet (minimum de cas) avec des valeurs de 50 à 450 par incréments de 50
  • Créez le dictionnaire en précisant les valeurs à essayer pour max_depth et min_samples_leaf, respectivement, en utilisant les variables que vous venez de créer

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Generate values for maximum depth
depth = [i for i in ____(5,21,1)]

# Generate values for minimum sample size
samples = [i for i in range(____,500,____)]

# Create the dictionary with parameters to be checked
parameters = dict(max_depth=depth, min_samples_leaf=____)
Modifier et exécuter le code