CommencerCommencer gratuitement

Réglage des hyperparamètres avec RandomizedSearchCV

Comme vous l’avez vu, GridSearchCV peut être coûteux en termes de calcul, en particulier si vous effectuez une recherche sur un vaste espace d’hyperparamètres. Dans ce cas, vous pouvez utiliser RandomizedSearchCV, qui teste un nombre fixe d’hyperparamètres à partir de distributions de probabilité spécifiées.

Les ensembles d’apprentissage et de test de diabetes_df ont été préchargés pour vous en tant que X_train, X_test, y_train, et y_test, où la cible est "diabetes". Un modèle de régression logistique a été créé et stocké en tant que logreg, ainsi qu’une variable KFold stockée en tant que kf.

Vous allez définir une série d’hyperparamètres et utiliser RandomizedSearchCV, qui a été importé à partir de sklearn.model_selection, pour rechercher les hyperparamètres optimaux à partir de ces options.

Cet exercice fait partie du cours

Apprentissage supervisé avec scikit-learn

Afficher le cours

Instructions

  • Créez params, en ajoutant "l1" et "l2" comme valeurs de penalty, en fixant C à une plage de 50 valeurs flottantes entre 0.1 et 1.0, et class_weight à "balanced" ou à un dictionnaire contenant 0:0.8, 1:0.2.
  • Créez l’objet Randomized Search CV, en lui passant le modèle et les paramètres, et en fixant la valeur de cv à kf.
  • Ajustez logreg_cv aux données d’apprentissage.
  • Affichez les meilleurs paramètres du modèle et le score de précision.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Create the parameter space
params = {"penalty": ["____", "____"],
         "tol": np.linspace(0.0001, 1.0, 50),
         "C": np.linspace(____, ____, ____),
         "class_weight": ["____", {0:____, 1:____}]}

# Instantiate the RandomizedSearchCV object
logreg_cv = ____(____, ____, cv=____)

# Fit the data to the model
logreg_cv.____(____, ____)

# Print the tuned parameters and score
print("Tuned Logistic Regression Parameters: {}".format(____.____))
print("Tuned Logistic Regression Best Accuracy Score: {}".format(____.____))
Modifier et exécuter le code