L'objet RandomizedSearchCV
Tout comme la bibliothèque GridSearchCV de Scikit Learn, RandomizedSearchCV offre de nombreuses fonctionnalités utiles pour réaliser 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 de type Gradient Boosting Classifier
- Validation croisée à 5 volets (5-fold)
- Utiliser l'exactitude (accuracy) pour évaluer les modèles
- Utiliser 4 cœurs pour le traitement en parallèle
- Réajuster (refit) 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 de 20 à 64, inclusivement).
Vous aurez à votre disposition les jeux de données X_train et y_train.
Cette activité fait partie du cours
Ajustement des hyperparamètres en Python
Instructions de l’exercice
- Créez une grille de paramètres comme indiqué ci-dessus.
- Créez un objet
RandomizedSearchCVcomme décrit ci-dessus. - Ajustez (fit) l'objet
RandomizedSearchCVaux 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 ce code d’exemple.
# 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_['____'])