Memahami output grid search

Penyetelan Hyperparameter di Python

Alex Scriven

Data Scientist

Menganalisis output

Mari analisis output GridSearchCV.

Tiga grup properti GridSearchCV:

  • Log hasil
    • cv_results_
  • Hasil terbaik
    • best_index_, best_params_ & best_score_
  • 'Informasi tambahan'
    • scorer_, n_splits_ & refit_time_
Penyetelan Hyperparameter di Python

Mengakses properti objek

 

Properti diakses dengan notasi titik.

Contoh:

grid_search_object.property

Di mana property adalah properti yang ingin Anda ambil.

Penyetelan Hyperparameter di Python

Properti .cv_results_

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)

  • 12 baris untuk 12 kotak grid atau 12 model yang dijalankan
Penyetelan Hyperparameter di Python

Kolom 'time' di .cv_results_

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 waktu

Penyetelan Hyperparameter di Python

Kolom 'param_' di .cv_results_

 

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

kolom param

Penyetelan Hyperparameter di Python

Kolom 'param' di .cv_results_

Kolom params berisi kamus semua parameter:

pd.set_option("display.max_colwidth", -1)
print(cv_results_df.loc[:, "params"])

kolom params

Penyetelan Hyperparameter di Python

Kolom 'test_score' di .cv_results_

 

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

skor uji

Penyetelan Hyperparameter di Python

Kolom 'rank_test_score' di .cv_results_

 

Kolom peringkat, mengurutkan mean_test_score dari terbaik ke terburuk:

peringkat skor uji

Penyetelan Hyperparameter di Python

Mengekstrak baris terbaik

 

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)

baris terbaik

Penyetelan Hyperparameter di Python

Kolom 'train_score' di .cv_results_

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.

Penyetelan Hyperparameter di Python

Kotak grid terbaik

 

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.

Penyetelan Hyperparameter di Python

Properti best_estimator_

 

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.

Penyetelan Hyperparameter di Python

Properti best_estimator_

print(grid_rf_class.best_estimator_)

output cetak best estimator

Penyetelan Hyperparameter di Python

Informasi tambahan

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

Ayo berlatih!

Penyetelan Hyperparameter di Python

Preparing Video For Download...