L’objet RandomizedSearchCV
Tout comme la bibliothèque GridSearchCV de Scikit Learn, RandomizedSearchCV offre de nombreuses fonctionnalités utiles pour mener efficacement une recherche aléatoire. Vous allez créer un objet RandomizedSearchCV, en apportant le léger ajustement nécessaire par rapport à l’objet GridSearchCV.
Les options souhaitées sont :
- Un estimateur par défaut Gradient Boosting Classifier
- Une validation croisée en 5 plis
- Utiliser la précision (accuracy) pour évaluer les modèles
- Utiliser 4 cœurs pour le traitement en parallèle
- Veiller à réentraîner le meilleur modèle et retourner les scores d’entraînement
- Échantillonner aléatoirement 10 modèles
La grille d’hyperparamètres doit porter sur learning_rate (150 valeurs entre 0.1 et 2) et min_samples_leaf (toutes les valeurs entre 20 et 64 incluses).
Vous disposez des jeux de données X_train et y_train.
Cet exercice fait partie du cours
Optimisation des hyperparamètres en Python
Instructions
- Créez une grille de paramètres comme indiqué dans le contexte ci-dessus.
- Créez un objet
RandomizedSearchCVcomme décrit dans le contexte ci-dessus. - Ajustez l’objet
RandomizedSearchCVsur les données d’entraînement. - Affichez les valeurs choisies par le processus de modélisation pour les deux hyperparamètres.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create the parameter grid
param_grid = {'learning_rate': np.linspace(____,____,150), 'min_samples_leaf': list(range(____,65))}
# Create a random search object
random_GBM_class = ____(
estimator = ____,
____ = param_grid,
____ = 10,
scoring='____', n_jobs=____, cv = ____, refit=____, return_train_score = ____)
# Fit to the training data
random_GBM_class.fit(____, ____)
# Print the values used for both hyperparameters
print(random_GBM_class.____['param_learning_rate'])
print(random_GBM_class.cv_results_['____'])