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
Instrukcje do ćwiczenia
- Utwórz
params, dodając"l1"i"l2"jako wartościpenalty, ustawiającCna zakres50wartości zmiennoprzecinkowych między0.1a1.0, aclass_weightna"balanced"lub słownik zawierający0:0.8, 1:0.2. - Utwórz obiekt Randomized Search CV, przekazując model i parametry oraz ustawiając
cvrównekf. - Dopasuj
logreg_cvdo 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(____.____))