1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Supervised Learning in R: Regression

Connected

Cvičení

Najdi správný počet stromů pro gradient boosting machine

V tomto cvičení se připravíš na sestavení modelu gradient boosting, který bude předpovídat počet vypůjčených kol za hodinu v závislosti na počasí, typu dne a denní době. Model natrénuješ na datech z července.

Julová data jsou předem načtena. Nezapomeň, že bikesJuly.treat už neobsahuje sloupec s výstupní proměnnou – ten musíš načíst z neupravených dat: bikesJuly$cnt.

K natrénování modelu použiješ balíček xgboost. Funkce xgb.cv() (docs) využívá křížovou validaci k odhadu chyby na nových datech s každým přidaným stromem. Optimální počet stromů pro finální model je ten, při kterém je RMSE na validační sadě nejnižší.

Pro toto cvičení jsou klíčové následující argumenty funkce xgb.cv():

  • data: numerická matice.
  • label: vektor výstupních hodnot (také numerický).
  • nrounds: maximální počet kol (stromů k natrénování).
  • nfold: počet skupin pro křížovou validaci. Hodnota 5 je dobrá volba.
  • objective: "reg:squarederror" pro spojité výstupní proměnné.
  • eta: rychlost učení.
  • max_depth: maximální hloubka stromů.
  • early_stopping_rounds: po tolika kolech bez zlepšení se trénování zastaví.
  • verbose: FALSE pro tichý režim.

Pokyny

100 XP
  • Doplň chybějící části a spusť xgb.cv() na upravených trénovacích datech; výsledek ulož do proměnné cv.
    • Pomocí as.matrix() převeď upravený datový rámec na matici.
    • Použij 50 kol a 5násobnou křížovou validaci.
    • Nastav early_stopping_rounds na 5.
    • Nastav eta na 0.75 a max_depth na 5.
  • Načti datový rámec evaluation_log z cv a ulož ho do proměnné elog. Každý řádek evaluation_log odpovídá jednomu přidanému stromu, takže číslo řádku ti říká, kolik stromů model obsahuje.
  • Doplň chybějící části pro nalezení počtu stromů s minimální hodnotou sloupců train_rmse_mean a test_rmse_mean.
    • Funkce which.min() (docs) vrátí index minimální hodnoty ve vektoru.
    • Kolik stromů tedy potřebuješ?