RandomizedSearchCV dans Scikit Learn
Exerçons-nous à construire un objet RandomizedSearchCV avec Scikit Learn.
La grille d'hyperparamètres doit couvrir max_depth (toutes les valeurs de 5 à 25, inclusivement) et max_features ('auto' et 'sqrt').
Les options souhaitées pour l'objet RandomizedSearchCV sont :
- Un estimateur RandomForestClassifier avec
n_estimatorsà 80. - Validation croisée à 3 plis (
cv) - Utiliser
roc_aucpour évaluer les modèles - Utiliser 4 cœurs pour le traitement en parallèle (
n_jobs) - S'assurer de réentraîner (refit) le meilleur modèle et de retourner les scores d'entraînement
- Échantillonner seulement 5 configurations pour l'efficacité (
n_iter)
Les jeux de données X_train et y_train sont déjà chargés pour vous.
Rappelez-vous que pour extraire les hyperparamètres choisis, ils se trouvent dans cv_results_, avec une colonne par hyperparamètre. Par exemple, la colonne pour l'hyperparamètre criterion serait param_criterion.
Cette activité fait partie du cours
Ajustement des hyperparamètres en Python
Instructions de l’exercice
- Créez une grille d'hyperparamètres comme indiqué ci-dessus.
- Créez un objet
RandomizedSearchCVtel que décrit ci-dessus. - Ajustez (fit) l'objet
RandomizedSearchCVaux données d'entraînement. - Indexez dans l'objet
cv_results_pour afficher les valeurs choisies par le processus de modélisation pour les deux hyperparamètres (max_depthetmax_features).
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create the parameter grid
param_grid = {'max_depth': list(range(____,26)), 'max_features': [____ , ____]}
# Create a random search object
random_rf_class = RandomizedSearchCV(
estimator = ____(n_estimators=____),
param_distributions = ____, n_iter = ____,
scoring=____, n_jobs=____, cv = ____, refit=____, return_train_score = ____ )
# Fit to the training data
____.fit(X_train, y_train)
# Print the values used for both hyperparameters
print(random_rf_class.cv_results_[____])
print(random_rf_class.cv_results_[____])