MulaiMulai sekarang secara gratis

Pencarian grid 2D

Kelemahan menyetel setiap hyperparameter secara terpisah adalah adanya potensi ketergantungan antar-hyperparameter. Pendekatan yang lebih baik adalah mencoba semua kombinasi hyperparameter yang memungkinkan. Namun, dalam kasus seperti ini, ruang pencarian grid bertambah sangat cepat. Misalnya, jika kita memiliki 2 parameter dengan 10 nilai yang mungkin, hasilnya adalah 100 percobaan.

Tujuan Anda adalah menemukan pasangan hyperparameter terbaik untuk max_depth dan subsample pada model Gradient Boosting. subsample adalah fraksi observasi yang digunakan untuk melatih pohon-pohon individual.

Anda diberikan fungsi get_cv_score() yang menerima himpunan data latih dan kamus parameter model sebagai argumen, lalu mengembalikan skor RMSE validasi keseluruhan dari cross-validation 3-fold.

Latihan ini adalah bagian dari kursus

Memenangi Kompetisi Kaggle dengan Python

Lihat Kursus

Petunjuk latihan

  • Tentukan grid untuk nilai max_depth dan subsample yang mungkin. Untuk max_depth: 3, 5, dan 7. Untuk subsample: 0,8, 0,9, dan 1,0.
  • Terapkan fungsi product() dari paket itertools pada grid hyperparameter. Fungsi ini mengembalikan semua kombinasi yang mungkin dari kedua grid tersebut.
  • Berikan setiap pasangan kandidat hyperparameter ke kamus params model.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

import itertools

# Hyperparameter grids
max_depth_grid = [____]
subsample_grid = [____]
results = {}

# For each couple in the grid
for max_depth_candidate, subsample_candidate in itertools.____(max_depth_grid, subsample_grid):
    params = {'max_depth': ____,
              'subsample': ____}
    validation_score = get_cv_score(train, params)
    # Save the results for each couple
    results[(max_depth_candidate, subsample_candidate)] = validation_score   
print(results)
Edit dan Jalankan Kode