MulaiMulai sekarang secara gratis

Menjelajahi overfitting pada XGBoost

Setelah melatih 3 model XGBoost dengan kedalaman maksimum yang berbeda, sekarang Anda akan mengevaluasi kualitasnya. Untuk itu, Anda akan mengukur kualitas setiap model pada data train dan data test. Seperti yang Anda ketahui, data train adalah data yang digunakan untuk melatih model. Data test adalah data penjualan bulan berikutnya yang belum pernah dilihat oleh model.

Tujuan latihan ini adalah menentukan apakah ada model yang mengalami overfitting. Untuk mengukur kualitas model, Anda akan menggunakan Mean Squared Error (MSE). Metrik ini tersedia di sklearn.metrics sebagai fungsi mean_squared_error() yang menerima dua argumen: nilai sebenarnya dan nilai prediksi.

DataFrame train dan test beserta 3 model yang sudah dilatih (xg_depth_2, xg_depth_8, xg_depth_15) tersedia di workspace Anda.

Latihan ini adalah bagian dari kursus

Memenangi Kompetisi Kaggle dengan Python

Lihat Kursus

Petunjuk latihan

  • Buat prediksi untuk setiap model pada data train dan data test.
  • Hitung MSE antara nilai sebenarnya dan prediksi Anda untuk data train dan data test.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

from sklearn.metrics import mean_squared_error

dtrain = xgb.DMatrix(data=train[['store', 'item']])
dtest = xgb.DMatrix(data=test[['store', 'item']])

# For each of 3 trained models
for model in [xg_depth_2, xg_depth_8, xg_depth_15]:
    # Make predictions
    train_pred = model.____(dtrain)     
    test_pred = model.____(dtest)          
    
    # Calculate metrics
    mse_train = ____(train['sales'], train_pred)                  
    mse_test = ____(test['sales'], test_pred)
    print('MSE Train: {:.3f}. MSE Test: {:.3f}'.format(mse_train, mse_test))
Edit dan Jalankan Kode