CommencezCommencez gratuitement

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_auc pour é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

Voir le cours

Instructions de l’exercice

  • Créez une grille d'hyperparamètres comme indiqué ci-dessus.
  • Créez un objet RandomizedSearchCV tel que décrit ci-dessus.
  • Ajustez (fit) l'objet RandomizedSearchCV aux 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_depth et max_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_[____])
Modifier et exécuter le code