Penyetelan Hyperparameter di Python
Alex Scriven
Data Scientist
Mari analisis output GridSearchCV.
Tiga grup properti GridSearchCV:
cv_results_best_index_, best_params_ & best_score_scorer_, n_splits_ & refit_time_
Properti diakses dengan notasi titik.
Contoh:
grid_search_object.property
Di mana property adalah properti yang ingin Anda ambil.
Properti cv_results_:
Baca ke DataFrame untuk dicetak dan dianalisis:
cv_results_df = pd.DataFrame(grid_rf_class.cv_results_)
print(cv_results_df.shape)
(12, 23)
Kolom time merujuk waktu untuk melatih (dan menilai) model.
Ingat kita melakukan 5-fold cross-validation? Ini berjalan 5 kali dan menyimpan rata-rata serta simpangan baku waktunya (detik).

Kolom param_ menyimpan parameter yang diuji pada baris itu, satu kolom per parameter

Kolom params berisi kamus semua parameter:
pd.set_option("display.max_colwidth", -1)
print(cv_results_df.loc[:, "params"])

Kolom test_score memuat skor pada test set untuk tiap fold serta ringkasan statistik:

Kolom peringkat, mengurutkan mean_test_score dari terbaik ke terburuk:

Kita dapat memilih kotak grid terbaik dari cv_results_ menggunakan kolom rank_test_score
best_row = cv_results_df[cv_results_df["rank_test_score"] == 1]
print(best_row)

Kolom test_score lalu diulang untuk training_scores.
Beberapa catatan penting:
return_train_score harus True untuk menyertakan kolom skor pelatihan.
Tidak ada kolom peringkat untuk skor pelatihan, karena kita hanya peduli pada kinerja test set.
Informasi tentang kotak grid terbaik diringkas dalam tiga properti berikut:
best_params_, kamus parameter yang memberi skor terbaik.
best_score_, skor terbaiknya.
best_index_, baris di cv_results_.rank_test_score yang terbaik.
Properti best_estimator_ adalah estimator yang dibangun menggunakan parameter terbaik dari grid search.
Untuk kita ini adalah estimator Random Forest:
type(grid_rf_class.best_estimator_)
sklearn.ensemble.forest.RandomForestClassifier
Kita juga bisa langsung menggunakan objek ini sebagai estimator.
print(grid_rf_class.best_estimator_)

Beberapa informasi tambahan tersedia pada properti berikut:
scorer_Fungsi penilai yang digunakan pada data validasi. (kita set ke AUC)
n_splits_Jumlah split cross-validation. (kita set ke 5)
refit_time_Jumlah detik untuk melatih ulang model terbaik pada seluruh dataset.
Penyetelan Hyperparameter di Python