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

Gradient boosting machine için doğru ağaç sayısını bul

Bu egzersizde, hava durumu ile günün türü ve saatine bağlı olarak bir saatte kiralanan bisiklet sayısını tahmin eden bir gradient boosting modeli kurmaya hazırlanacaksın. Modeli Temmuz ayına ait veriler üzerinde eğiteceksin.

Temmuz verileri önceden yüklendi. bikesJuly.treat artık sonuç sütununu içermediğini unutma, bu nedenle onu işlenmemiş veriden almalısın: bikesJuly$cnt.

Rastgele orman modelini kurmak için xgboost paketini kullanacaksın. xgb.cv() (docs) fonksiyonu, her yeni ağaç modele eklendikçe örneklem dışı öğrenme hatasını tahmin etmek için çapraz doğrulamayı kullanır. Nihai modelde kullanılacak uygun ağaç sayısı, ayırma kümesindeki RMSE'yi en aza indiren sayıdır.

Bu egzersizde, xgb.cv() çağrısının temel argümanları şunlardır:

  • data: sayısal bir matris.
  • label: sonuç vektörü (bu da sayısal).
  • nrounds: maksimum tur sayısı (inşa edilecek ağaç sayısı).
  • nfold: çapraz doğrulama için kat sayısı. 5 iyi bir sayıdır.
  • objective: sürekli sonuçlar için "reg:squarederror".
  • eta: öğrenme oranı.
  • max_depth: ağaçların azami derinliği.
  • early_stopping_rounds: bu kadar tur iyileşme olmazsa dur.
  • verbose: sessiz kalmak için FALSE.

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

R'de Supervised Learning: Regresyon

Kursa Göz Atın

Egzersiz talimatları

  • xgb.cv()'yi işlenmiş eğitim verisi üzerinde çalıştırmak için boşlukları doldur; çıktıyı cv değişkenine ata.
    • Veri çerçevesini matrise dönüştürmek için as.matrix() kullan.
    • 50 tur ve 5 katlı çapraz doğrulama kullan.
    • early_stopping_rounds değerini 5 olarak ayarla.
    • etayı 0.75, max_depthü 5 olarak ayarla.
  • cv içinden evaluation_log veri çerçevesini al ve elog değişkenine ata. evaluation_logun her satırı eklenen bir ağaca karşılık gelir; dolayısıyla satır numarası modeldeki ağaç sayısını verir.
  • train_rmse_mean ve test_rmse_mean sütunlarının en düşük değerine karşılık gelen ağaç sayısını almak için boşlukları doldur.
    • which.min() (docs) bir vektördeki en küçük değerin indeksini döndürür.
    • Kaç ağaca ihtiyacın var?

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Run xgb.cv
cv <- xgb.cv(data = ____, 
            label = ___,
            nrounds = ___,
            nfold = ___,
            objective = "reg:squarederror",
            eta = ___,
            max_depth = ___,
            early_stopping_rounds = ___,
            verbose = FALSE   # silent
)

# Get the evaluation log 
elog <- ___

# Determine and print how many trees minimize training and test error
elog %>% 
   summarize(ntrees.train = ___,   # find the index of min(train_rmse_mean)
             ntrees.test  = ___)   # find the index of min(test_rmse_mean)
Kodu Düzenle ve Çalıştır