LoslegenKostenlos loslegen

Hyperparameter-Optimierung mit RandomizedSearchCV

Wie du gesehen hast, kann GridSearchCV sehr rechenintensiv sein, vor allem bei der Suche in einem großen Hyperparameterraum. In solchen Fällen kannst du RandomizedSearchCV verwenden, um eine feste Anzahl von Hyperparameterwerten aus vorgegebenen Wahrscheinlichkeitsverteilungen zu testen.

Die Trainings- und Testmengen von diabetes_df wurden bereits als X_train, X_test, y_train und y_test geladen. Die Zielvariable ist "diabetes". Ein Modell für die logistische Regression wurde erstellt und als logreg gespeichert und ein KFold-Objekt wurde als kf gespeichert.

Du sollst nun eine Reihe von Hyperparametern festlegen und RandomizedSearchCV verwenden (wurde aus sklearn.model_selection importiert), um nach optimalen Hyperparametern innerhalb dieser Reihe zu suchen.

Diese Übung ist Teil des Kurses

Überwachtes Lernen mit scikit-learn

Kurs anzeigen

Anleitung zur Übung

  • Erstelle params, füge "l1" und "l2" als penalty-Werte hinzu, setze C auf einen Bereich von 50 Gleitkommawerten zwischen 0.1 und 1.0 und setze class_weight entweder auf "balanced" oder auf ein Dictionary mit 0:0.8, 1:0.2.
  • Erstelle das RandomizedSearchCV-Objekt, übergib das Modell und die Parameter und setze cv gleich kf.
  • Passe logreg_cv an die Trainingsdaten an.
  • Gib die besten Parameter und die Korrektklassifikationsrate des Modells aus.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Create the parameter space
params = {"penalty": ["____", "____"],
         "tol": np.linspace(0.0001, 1.0, 50),
         "C": np.linspace(____, ____, ____),
         "class_weight": ["____", {0:____, 1:____}]}

# Instantiate the RandomizedSearchCV object
logreg_cv = ____(____, ____, cv=____)

# Fit the data to the model
logreg_cv.____(____, ____)

# Print the tuned parameters and score
print("Tuned Logistic Regression Parameters: {}".format(____.____))
print("Tuned Logistic Regression Best Accuracy Score: {}".format(____.____))
Code bearbeiten und ausführen