CommencerCommencer gratuitement

Configurer les paramètres de GridSearch

Un hyperparamètre est un paramètre passé à 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 pour trouver celles qui sont optimales : 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 lancer une validation croisée dessus 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 allez utiliser la fonction range(), qui permet de générer des valeurs de manière incrémentale. Par exemple, range(1, 10, 2) générera une liste contenant des valeurs allant de 1 inclus à 10 non inclus, par incréments de 2. Le résultat final sera donc [1, 3, 5, 7, 9].

Cet exercice fait partie du cours

Analytique RH : prédire l’attrition des employés en Python

Afficher le cours

Instructions

  • En suivant le format de l’exemple ci-dessus, générez des valeurs pour la profondeur maximale allant de 5 à 20 par incréments de 1
  • Faites de même pour la taille minimale d’échantillon avec des valeurs de 50 à 450 par incréments de 50
  • Créez le dictionnaire en indiquant les valeurs à tester 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 cet exemple de code.

# 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