ÎncepețiÎncepe gratuit

Antrenează un model xgboost pentru închirierea bicicletelor și fă predicții

În acest exercițiu, vei antrena un model gradient boosting folosind xgboost() pentru a prezice numărul de biciclete închiriate pe oră, în funcție de condițiile meteo, tipul zilei și ora. Vei antrena modelul pe datele din iulie și vei face predicții pe datele din august.

Data frame-urile bikesJuly, bikesJuly.treat, bikesAugust și bikesAugust.treat sunt deja încărcate. Reține că datele procesate cu vtreat nu mai conțin coloana rezultat, așa că trebuie să o iei din datele originale (coloana cnt).

Pentru comoditate, numărul de arbori de utilizat, ntrees din exercițiul anterior, este disponibil.

Argumentele funcției xgboost() (docs) sunt similare cu cele ale funcției xgb.cv().

Acest exercițiu face parte din cursul

Învățare supervizată în R: Regresia

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează spațiile libere pentru a rula xgboost() pe datele din iulie.
    • Folosește as.matrix() pentru a converti data frame-ul procesat cu vtreat într-o matrice.
    • Obiectivul trebuie să fie "reg:squarederror".
    • Folosește ntrees runde.
    • Setează eta la 0.75, max_depth la 5 și verbose la FALSE (mod silențios).
  • Acum apelează predict() pe bikesAugust.treat pentru a prezice numărul de biciclete închiriate în august.
    • Folosește as.matrix() pentru a converti datele de test procesate cu vtreat într-o matrice.
    • Adaugă predicțiile în bikesAugust ca o coloană numită pred.
  • Completează spațiile libere pentru a reprezenta grafic numărul real de biciclete închiriate față de predicții (predicțiile pe axa x).
    • Observi o posibilă problemă cu predicțiile?

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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()
Editează și rulează codul