CommencezCommencez gratuitement

Construire un modèle de forêt aléatoire pour les locations de vélos

Dans cet exercice, vous allez de nouveau construire un modèle pour prédire le nombre de vélos loués par heure en fonction de la météo, du type de journée (jour férié, jour ouvrable ou fin de semaine) et de l'heure de la journée. Vous entraînerez le modèle sur des données du mois de juillet.

Vous utiliserez le paquet ranger pour ajuster le modèle de forêt aléatoire. Pour cet exercice, les principaux arguments de l'appel à ranger() (docs) sont :

  • formula
  • data
  • num.trees : le nombre d'arbres dans la forêt.
  • respect.unordered.factors : précise comment traiter les variables de type facteur non ordonnées. Nous recommandons de régler cette option à « order » pour la régression.
  • seed : comme il s'agit d'un algorithme aléatoire, vous fixerez la graine pour obtenir des résultats reproductibles

Comme il y a beaucoup de variables d'entrée, par commodité nous allons préciser la variable cible et les variables explicatives dans outcome et vars, et utiliser paste() (docs) pour assembler une chaîne qui représente la formule du modèle.

Le tableau de données bikesJuly a été préchargé. Le code d'exemple précise les noms de la variable cible et des variables d'entrée.

Cette activité fait partie du cours

Apprentissage supervisé en R : régression

Voir le cours

Instructions de l’exercice

  • Remplissez les espaces vides pour créer la formule fmla exprimant cnt en fonction des variables d'entrée. Affichez-la.
  • Chargez le paquet ranger.
  • Utilisez ranger pour ajuster un modèle aux données bikesJuly : bike_model_rf.
    • Le premier argument de ranger() est la formule, fmla.
    • Utilisez 500 arbres et respect.unordered.factors = "order".
    • Réglez la graine à seed pour des résultats reproductibles.
    • Affichez le modèle. Quelle est la valeur du R-carré ?

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# bikesJuly is available
str(bikesJuly)

# Random seed to reproduce results
seed

# The outcome column
(outcome <- "cnt")

# The input variables
(vars <- c("hr", "holiday", "workingday", "weathersit", "temp", "atemp", "hum", "windspeed"))

# Create the formula string for bikes rented as a function of the inputs
(fmla <- paste(___, "~", paste(___, collapse = " + ")))

# Load the package ranger
___

# Fit and print the random forest model
(bike_model_rf <- ranger(___, # formula 
                         ___, # data
                         num.trees = ___, 
                         respect.unordered.factors = ___, 
                         seed = ___))
Modifier et exécuter le code