RandomizedSearchCV in Scikit Learn
Lass uns üben, ein RandomizedSearchCV-Objekt mit Scikit Learn zu erstellen.
Das Hyperparameter-Raster soll max_depth (alle Werte zwischen einschließlich 5 und 25) und max_features ("auto" und "sqrt") enthalten.
Die gewünschten Optionen für das RandomizedSearchCV-Objekt sind:
- Ein RandomForestClassifier-Schätzer mit
n_estimatorsvon 80. - 3-fache Kreuzvalidierung (
cv) - Verwende
roc_auc, um die Modelle zu bewerten - Nutze 4 Kerne für parallele Verarbeitung (
n_jobs) - Sorge dafür, dass das beste Modell erneut trainiert (refit) wird und Trainingsscores zurückgegeben werden
- Ziehe aus Effizienzgründen nur 5 Stichproben von Modellen (
n_iter)
Die Datensätze X_train und y_train sind für dich geladen.
Denk daran: Um die gewählten Hyperparameter zu extrahieren, findest du sie in cv_results_ mit jeweils einer Spalte pro Hyperparameter. Die Spalte für den Hyperparameter criterion wäre zum Beispiel param_criterion.
Diese Übung ist Teil des Kurses
Hyperparameter-Tuning in Python
Anleitung zur Übung
- Erstelle ein Hyperparameter-Raster wie oben beschrieben.
- Erstelle ein
RandomizedSearchCV-Objekt wie oben beschrieben. - Fitte das
RandomizedSearchCV-Objekt an die Trainingsdaten. - Greife auf das Objekt
cv_results_zu und gib die vom Modellierungsprozess gewählten Werte für beide Hyperparameter (max_depthundmax_features) aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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_[____])