CommencezCommencez gratuitement

Ajustement des hyperparamètres avec RandomizedSearchCV

Comme vous l'avez vu, GridSearchCV peut coûter cher en calcul, surtout si vous explorez un grand espace d'hyperparamètres. Dans ce cas, vous pouvez utiliser RandomizedSearchCV, qui teste un nombre fixe de configurations d'hyperparamètres à partir de distributions de probabilité spécifiées.

Les ensembles d'entraînement et de test provenant de diabetes_df ont été préchargés pour vous sous 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é dans logreg, ainsi qu'une variable KFold stockée dans kf.

Vous définirez un éventail d'hyperparamètres et utiliserez RandomizedSearchCV, importé de sklearn.model_selection, pour rechercher les hyperparamètres optimaux parmi ces options.

Cette activité fait partie du cours

Apprentissage supervisé avec scikit-learn

Voir le cours

Instructions de l’exercice

  • Créez params, en ajoutant "l1" et "l2" comme valeurs de penalty, en définissant C sur un éventail de 50 valeurs à virgule flottante entre 0.1 et 1.0, et class_weight sur soit "balanced", soit un dictionnaire contenant 0:0.8, 1:0.2.
  • Créez l'objet Randomized Search CV, en passant le modèle et les paramètres, et en définissant cv égal à kf.
  • Ajustez logreg_cv aux données d'entraînement.
  • Affichez les meilleurs paramètres du modèle et son score de justesse.

Exercice interactif pratique

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

# 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