BaşlayınÜcretsiz başlayın

XGBoost'ta aşırı öğrenmeyi keşfet

Maksimum derinlikleri farklı olan 3 XGBoost modeli eğittikten sonra, şimdi bunların kalitesini değerlendireceksin. Bu amaçla, her bir modelin hem train verisi hem de test verisi üzerindeki performansını ölçeceksin. Bildiğin gibi, train verisi modellerin üzerinde eğitildiği veridir. Test verisi ise modellerin hiç görmediği, bir sonraki ayın satış verileridir.

Bu egzersizin hedefi, eğitilen modellerden herhangi birinin aşırı öğrenme (overfitting) yapıp yapmadığını belirlemek. Modellerin kalitesini ölçmek için Ortalama Kare Hatası (MSE) kullanacaksın. sklearn.metrics içinde mean_squared_error() fonksiyonu olarak bulunur ve iki argüman alır: gerçek değerler ve tahmin edilen değerler.

train ve test DataFrame'leri ile birlikte eğitilmiş 3 model (xg_depth_2, xg_depth_8, xg_depth_15) çalışma alanında hazır.

Bu egzersiz, kursun bir parçasıdır

Python ile Bir Kaggle Yarışmasını Kazanmak

Kursa Göz Atın

Egzersiz talimatları

  • Her model için hem train hem de test verisi üzerinde tahmin yap.
  • Hem train hem de test verisinde gerçek değerlerle tahminlerin arasındaki MSE'yi hesapla.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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))
Kodu Düzenle ve Çalıştır