Aan de slagBegin gratis

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

Bekijk cursus

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.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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