CommencezCommencez gratuitement

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

Voir le cours

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 ntrees itérations.
    • Définissez eta à 0.75, max_depth à 5 et verbose à FALSE (silencieux).
  • Appelez maintenant predict() sur bikesAugust.treat pour prédire le nombre de vélos loués en août.
    • Utilisez as.matrix() pour convertir les données de test transformées par vtreat en matrice.
    • Ajoutez les prédictions à bikesAugust sous forme de colonne pred.
  • 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()
Modifier et exécuter le code