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

XGBoost'ta düzenlileştirme kullanma

Videoda l1 düzenlileştirme örneğini gördüğüne göre, şimdi de l2 düzenlileştirme cezasını – "lambda" olarak da bilinir – değiştirerek Ames konut veri kümesindeki genel model performansına etkisini gözlemleyeceksin.

Bu egzersiz

XGBoost ile Aşırı Gradyan Artırma

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • X ve y'den DMatrix'ini önceden yaptığın gibi oluştur.
  • "objective" olarak "reg:squarederror" ve "max_depth" olarak 3 belirten bir başlangıç parametre sözlüğü oluştur.
  • for döngüsü içinde xgb.cv() kullan ve mevcut l2 değeri (reg) geçerek "lambda" değerini sistematik olarak değiştir.
  • Her çapraz doğrulamalı xgboost modeli için son boosting turundan "test-rmse-mean" değerini ekle.
  • Sonuçları görmek için 'Yanıtı Gönder' düğmesine bas. Ne fark ediyorsun?

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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