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
Instructions de l’exercice
- Créez
params, en ajoutant"l1"et"l2"comme valeurs depenalty, en définissantCsur un éventail de50valeurs à virgule flottante entre0.1et1.0, etclass_weightsur soit"balanced", soit un dictionnaire contenant0: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_cvaux 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(____.____))