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
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
ntreesrunde. - Setează
etala0.75,max_depthla5șiverboselaFALSE(mod silențios).
- Folosește
- Acum apelează
predict()pebikesAugust.treatpentru a prezice numărul de biciclete închiriate în august.- Folosește
as.matrix()pentru a converti datele de test procesate cuvtreatîntr-o matrice. - Adaugă predicțiile în
bikesAugustca o coloană numităpred.
- Folosește
- 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()