MulaiMulai sekarang secara gratis

Pemilihan jumlah boosting secara otomatis dengan early_stopping

Sekarang, alih-alih mencoba memilih secara manual jumlah boosting round terbaik, Anda dapat dengan mudah membuat XGBoost secara otomatis memilih jumlah boosting round untuk Anda di dalam xgb.cv(). Ini dilakukan dengan teknik yang disebut early stopping.

Early stopping bekerja dengan menguji model XGBoost setelah setiap boosting round terhadap himpunan data hold-out dan menghentikan pembuatan boosting round tambahan (sehingga pelatihan model selesai lebih awal) jika metrik hold-out ("rmse" dalam kasus kita) tidak membaik selama sejumlah ronde tertentu. Di sini Anda akan menggunakan parameter early_stopping_rounds dalam xgb.cv() dengan jumlah boosting round maksimum yang besar (50). Perlu diingat bahwa jika metrik hold-out terus membaik hingga num_boost_rounds tercapai, maka early stopping tidak akan terjadi.

Di sini, DMatrix dan kamus parameter telah dibuat untuk Anda. Tugas Anda adalah menggunakan cross-validation dengan early stopping. Silakan coba!

Latihan ini adalah bagian dari kursus

Extreme Gradient Boosting dengan XGBoost

Lihat Kursus

Petunjuk latihan

  • Lakukan cross-validation 3-fold dengan early stopping dan "rmse" sebagai metrik. Gunakan 10 early stopping rounds dan 50 boosting rounds. Tentukan seed sebesar 123 dan pastikan keluarannya berupa DataFrame pandas. Ingat untuk menetapkan parameter lain seperti dtrain, params, dan metrics.
  • Cetak cv_results.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Create your housing DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)

# Create the parameter dictionary for each tree: params
params = {"objective":"reg:squarederror", "max_depth":4}

# Perform cross-validation with early stopping: cv_results
cv_results = ____

# Print cv_results
print(____)
Edit dan Jalankan Kode