MulaiMulai sekarang secara gratis

Menggunakan regularisasi di XGBoost

Setelah melihat contoh regularisasi l1 di video, sekarang Anda akan memvariasikan penalti regularisasi l2 — juga dikenal sebagai "lambda" — dan melihat dampaknya terhadap kinerja model secara keseluruhan pada himpunan data perumahan Ames.

Latihan ini adalah bagian dari kursus

Extreme Gradient Boosting dengan XGBoost

Lihat Kursus

Petunjuk latihan

  • Buat DMatrix dari X dan y seperti sebelumnya.
  • Buat kamus parameter awal yang menetapkan "objective" sebagai "reg:squarederror" dan "max_depth" sebesar 3.
  • Gunakan xgb.cv() di dalam loop for dan variasikan nilai "lambda" secara sistematis dengan meneruskan nilai l2 saat ini (reg).
  • Tambahkan "test-rmse-mean" dari putaran boosting terakhir untuk setiap model xgboost yang divalidasi-silang.
  • Tekan 'Kirim Jawaban' untuk melihat hasilnya. Apa yang Anda amati?

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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

reg_params = [1, 10, 100]

# Create the initial parameter dictionary for varying l2 strength: params
params = {"____":"____","____":____}

# Create an empty list for storing rmses as a function of l2 complexity
rmses_l2 = []

# Iterate over reg_params
for reg in reg_params:

    # Update l2 strength
    params["lambda"] = ____
    
    # Pass this updated param dictionary into cv
    cv_results_rmse = ____.____(dtrain=____, params=____, nfold=2, num_boost_round=5, metrics="rmse", as_pandas=True, seed=123)
    
    # Append best rmse (final round) to rmses_l2
    ____.____(____["____"].tail(1).values[0])

# Look at best rmse per l2 param
print("Best rmse as a function of l2:")
print(pd.DataFrame(list(zip(reg_params, rmses_l2)), columns=["l2", "rmse"]))
Edit dan Jalankan Kode