Začněte nyníZačněte zdarma

Natrénuj model xgboost pro půjčovnu kol a proveď predikci

V tomto cvičení natrénuješ model gradient boosting pomocí funkce xgboost(), abys předpověděl/a 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 a predikci provedeš na datech z srpna.

Dataové rámce bikesJuly, bikesJuly.treat, bikesAugust a bikesAugust.treat jsou předem načteny. Nezapomeň, že data zpracovaná pomocí vtreat již neobsahují sloupec s výstupní proměnnou – ten musíš získat z původních dat (sloupec cnt).

Pro usnadnění práce je k dispozici také proměnná ntrees z předchozího cvičení, která udává počet stromů.

Argumenty funkce xgboost() (docs) jsou podobné jako u funkce xgb.cv().

Toto cvičení je součástí kurzu

Supervised Learning in R: Regression

Zobrazit kurz

Pokyny k cvičení

  • Doplň chybějící části kódu a spusť funkci xgboost() na červencových datech.
    • Pomocí as.matrix() převeď datový rámec zpracovaný přes vtreat na matici.
    • Jako objective použij "reg:squarederror".
    • Nastav počet rund na ntrees.
    • Nastav eta na 0.75, max_depth na 5 a verbose na FALSE (tichý režim).
  • Zavolej funkci predict() na bikesAugust.treat a předpověz počet půjčených kol v srpnu.
    • Pomocí as.matrix() převeď testovací data zpracovaná přes vtreat na matici.
    • Přidej predikce do bikesAugust jako sloupec pred.
  • Doplň chybějící části kódu a vykresli graf skutečných počtů půjčených kol oproti predikcím (predikce na ose x).
    • Všimneš si nějakého možného problému s predikcemi?

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Run xgboost
bike_model_xgb <- xgboost(data = ___, # training data as matrix
                   label = ___,  # column of outcomes
                   nrounds = ___,       # number of trees to build
                   objective = ___, # objective
                   eta = ___,
                   max_depth = ___,
                   verbose = FALSE  # silent
)

# Make predictions
bikesAugust$pred <- ___(___, ___(___))

# Plot predictions (on x axis) vs actual bike rental count
ggplot(bikesAugust, aes(x = ___, y = ___)) + 
  geom_point() + 
  geom_abline()
Upravit a spustit kód