Stima un modello xgboost per il noleggio bici e prevedi
In questo esercizio, stimerai un modello di gradient boosting usando xgboost() per prevedere il numero di biciclette noleggiate in un’ora in funzione del meteo e del tipo e dell’ora del giorno. Allenerai il modello sui dati del mese di luglio e farai previsioni sui dati di agosto.
I data frame bikesJuly, bikesJuly.treat, bikesAugust e bikesAugust.treat sono già stati pre-caricati. Ricorda che i dati trasformati con vtreat non hanno più la colonna dell’output, quindi devi recuperarla dai dati originali (la colonna cnt).
Per comodità, il numero di alberi da usare, ntrees dall’esercizio precedente, è a disposizione.
Gli argomenti di xgboost() (docs) sono simili a quelli di xgb.cv().
Questo esercizio fa parte del corso
Supervised Learning in R: Regression
Istruzioni dell'esercizio
- Completa gli spazi per eseguire
xgboost()sui dati di luglio.- Usa
as.matrix()per convertire i dati trattati con vtreat in una matrice. - L’objective deve essere
"reg:squarederror". - Usa
ntreesround. - Imposta
etaa0.75,max_deptha5everboseaFALSE(silenzioso).
- Usa
- Ora chiama
predict()subikesAugust.treatper prevedere il numero di biciclette noleggiate in agosto.- Usa
as.matrix()per convertire i dati di test trattati convtreatin una matrice. - Aggiungi le previsioni a
bikesAugustcome colonnapred.
- Usa
- Completa gli spazi per tracciare i conteggi reali dei noleggi bici rispetto alle previsioni (previsioni sull’asse x).
- Noti un possibile problema nelle previsioni?
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()