Aan de slagGa gratis aan de slag

Hyperparameter-tuning met RandomizedSearchCV

Zoals je zag, kan GridSearchCV veel rekenkracht kosten, zeker als je een grote hyperparameterspace doorzoekt. In dat geval kun je RandomizedSearchCV gebruiken, dat een vast aantal hyperparameterinstellingen test op basis van opgegeven kansverdelingen.

Trainings- en testsets uit diabetes_df zijn al voor je ingeladen als X_train, X_test, y_train en y_test, waarbij de target "diabetes" is. Er is een logistiek regressiemodel aangemaakt en opgeslagen als logreg, en een KFold-variabele als kf.

Je definieert een reeks hyperparameters en gebruikt RandomizedSearchCV (geïmporteerd uit sklearn.model_selection) om binnen deze opties te zoeken naar optimale hyperparameters.

Deze oefening maakt deel uit van de cursus

Supervised Learning met scikit-learn

Cursus bekijken

Oefeninstructies

  • Maak params aan, voeg "l1" en "l2" toe als waarden voor penalty, stel C in op een bereik van 50 floatwaarden tussen 0.1 en 1.0, en class_weight op ofwel "balanced" of een dictionary met 0:0.8, 1:0.2.
  • Maak het Randomized Search CV-object aan, geef het model en de parameters door en stel cv gelijk aan kf.
  • Fit logreg_cv op de trainingsdata.
  • Print de beste parameters van het model en de nauwkeurigheidsscore.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren