Ajuster un modèle xgboost pour les locations de vélos et prédire
Dans cet exercice, vous allez ajuster un modèle de gradient boosting avec xgboost() pour prédire le nombre de vélos loués par heure en fonction de la météo ainsi que du type et du moment de la journée. Vous entraînerez le modèle sur les données du mois de juillet et ferez des prédictions sur les données du mois d'août.
Les data frames bikesJuly, bikesJuly.treat, bikesAugust et bikesAugust.treat sont déjà chargés. N'oubliez pas que les données transformées par vtreat n'ont plus la colonne de la variable cible; vous devez donc la récupérer des données originales (la colonne cnt).
Pour vous faciliter la tâche, le nombre d'arbres à utiliser, ntrees, issu de l'exercice précédent, est disponible.
Les arguments de xgboost() (docs) sont similaires à ceux de xgb.cv().
Cette activité fait partie du cours
Apprentissage supervisé en R : régression
Instructions de l’exercice
- Remplissez les espaces vides pour exécuter
xgboost()sur les données de juillet.- Utilisez
as.matrix()pour convertir le data frame traité par vtreat en matrice. - L'objectif doit être
"reg:squarederror". - Utilisez
ntreesitérations. - Définissez
etaà0.75,max_depthà5etverboseàFALSE(silencieux).
- Utilisez
- Appelez maintenant
predict()surbikesAugust.treatpour prédire le nombre de vélos loués en août.- Utilisez
as.matrix()pour convertir les données de test transformées parvtreaten matrice. - Ajoutez les prédictions à
bikesAugustsous forme de colonnepred.
- Utilisez
- Remplissez les espaces vides pour tracer les nombres réels de locations de vélos en fonction des prédictions (prédictions sur l'axe des x).
- Voyez-vous un problème possible avec les prédictions?
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()