Ajustarea hiperparametrilor cu RandomizedSearchCV
Așa cum ai văzut, GridSearchCV poate fi costisitor din punct de vedere computațional, mai ales atunci când explorezi un spațiu mare de hiperparametri. În acest caz, poți folosi RandomizedSearchCV, care testează un număr fix de combinații de hiperparametri, selectate din distribuții de probabilitate specificate.
Seturile de antrenament și de testare din diabetes_df au fost preîncărcate ca X_train, X_test, y_train și y_test, unde variabila țintă este "diabetes". Un model de regresie logistică a fost creat și stocat ca logreg, iar o variabilă KFold a fost stocată ca kf.
Vei defini un interval de hiperparametri și vei folosi RandomizedSearchCV, importat din sklearn.model_selection, pentru a găsi hiperparametrii optimi din aceste opțiuni.
Acest exercițiu face parte din cursul
Învățare supravegheată cu scikit-learn
Instrucțiuni pentru exercițiu
- Creează
params, adăugând"l1"și"l2"ca valori pentrupenalty, setândCla un interval de50de valori float între0.1și1.0, șiclass_weightfie la"balanced", fie la un dicționar care conține0:0.8, 1:0.2. - Creează obiectul Randomized Search CV, transmițând modelul și parametrii, și setând
cvegal cukf. - Antrenează
logreg_cvpe datele de antrenament. - Afișează cei mai buni parametri și scorul de acuratețe ale modelului.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(____.____))