MulaiMulai sekarang secara gratis

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

Lihat Kursus

Petunjuk latihan

  • Buat params, tambahkan "l1" dan "l2" sebagai nilai penalty, tetapkan C ke rentang 50 nilai float antara 0.1 hingga 1.0, dan class_weight ke "balanced" atau kamus berisi 0:0.8, 1:0.2.
  • Buat objek Randomized Search CV, dengan meneruskan model dan parameter, serta menetapkan cv sama dengan kf.
  • Fit logreg_cv pada 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(____.____))
Edit dan Jalankan Kode