Zacznij terazZacznij za darmo

Strojenie hiperparametrów za pomocą RandomizedSearchCV

Jak już wiesz, GridSearchCV może być obliczeniowo kosztowny – szczególnie gdy przeszukujesz duży obszar hiperparametrów. W takim przypadku warto użyć RandomizedSearchCV, który sprawdza ustaloną liczbę kombinacji hiperparametrów losowanych z określonych rozkładów prawdopodobieństwa.

Zbiory treningowy i testowy z diabetes_df zostały wcześniej załadowane jako X_train, X_test, y_train i y_test, gdzie zmienną docelową jest "diabetes". Model regresji logistycznej został utworzony i zapisany jako logreg, a zmienna KFold – jako kf.

Zdefiniujesz zakres hiperparametrów i użyjesz RandomizedSearchCV – zaimportowanego z sklearn.model_selection – aby znaleźć optymalne hiperparametry spośród dostępnych opcji.

To ćwiczenie jest częścią kursu

Nadzorowane uczenie maszynowe z scikit-learn

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz params, dodając "l1" i "l2" jako wartości penalty, ustawiając C na zakres 50 wartości zmiennoprzecinkowych między 0.1 a 1.0, a class_weight na "balanced" lub słownik zawierający 0:0.8, 1:0.2.
  • Utwórz obiekt Randomized Search CV, przekazując model i parametry oraz ustawiając cv równe kf.
  • Dopasuj logreg_cv do danych treningowych.
  • Wyświetl najlepsze parametry modelu i jego dokładność.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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(____.____))
Edytuj i uruchom kod