Aan de slagGa gratis aan de slag

RandomSearchCV in Scikit Learn

Laten we oefenen met het opzetten van een RandomizedSearchCV-object met Scikit Learn.

De hyperparametergrid moet gelden voor max_depth (alle waarden tussen en inclusief 5 en 25) en max_features ('auto' en 'sqrt').

De gewenste opties voor het RandomizedSearchCV-object zijn:

  • Een RandomForestClassifier-estimator met n_estimators van 80.
  • 3-voudige cross-validatie (cv)
  • Gebruik roc_auc om de modellen te scoren
  • Gebruik 4 cores voor parallelle verwerking (n_jobs)
  • Zorg dat je het beste model opnieuw fit en trainingsscores retourneert
  • Sample slechts 5 modellen voor efficiëntie (n_iter)

X_train en y_train gegevenssets zijn voor je geladen.

Onthoud: de gekozen hyperparameters vind je in cv_results_, met één kolom per hyperparameter. De kolom voor de hyperparameter criterion is bijvoorbeeld param_criterion.

Deze oefening maakt deel uit van de cursus

Hyperparameter Tuning in Python

Cursus bekijken

Oefeninstructies

  • Maak een hyperparametergrid zoals hierboven beschreven.
  • Maak een RandomizedSearchCV-object zoals hierboven uitgewerkt.
  • Fit het RandomizedSearchCV-object op de trainingsdata.
  • Indexeer in het cv_results_-object om de waarden af te drukken die door het modelleerproces zijn gekozen voor beide hyperparameters (max_depth en max_features).

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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_[____])
Code bewerken en uitvoeren