Hyperparameter tuning dengan RandomizedSearchCV
Seperti yang Anda lihat, GridSearchCV dapat memakan banyak komputasi, terutama jika Anda menelusuri ruang hyperparameter yang besar. Dalam kasus ini, Anda dapat menggunakan RandomizedSearchCV, yang menguji sejumlah tetap pengaturan hyperparameter dari sebaran probabilitas yang ditentukan.
Himpunan latih dan uji dari diabetes_df telah dimuat sebelumnya untuk Anda sebagai X_train, X_test, y_train, dan y_test, dengan target "diabetes". Sebuah model regresi logistik telah dibuat dan disimpan sebagai logreg, serta sebuah variabel KFold disimpan sebagai kf.
Anda akan mendefinisikan rentang hyperparameter dan menggunakan RandomizedSearchCV, yang telah diimpor dari sklearn.model_selection, untuk mencari hyperparameter optimal dari opsi-opsi tersebut.
Latihan ini adalah bagian dari kursus
Supervised Learning dengan scikit-learn
Petunjuk latihan
- Buat
params, tambahkan"l1"dan"l2"sebagai nilaipenalty, tetapkanCke rentang50nilai float antara0.1hingga1.0, danclass_weightke"balanced"atau kamus berisi0:0.8, 1:0.2. - Buat objek Randomized Search CV, dengan meneruskan model dan parameter, serta menetapkan
cvsama dengankf. - Fit
logreg_cvpada data latih. - Cetak hyperparameter terbaik model dan skor akurasinya.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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(____.____))