CommencerCommencez gratuitement

Créer un modèle de random forest 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 jour (jour férié, jour travaillé ou week-end) et de l’heure de la journée. Vous entraînerez le modèle sur les données du mois de juillet.

Vous utiliserez le package ranger pour ajuster le modèle de random forest. Pour cet exercice, les arguments clés de l’appel à ranger() (docs) sont :

  • formula
  • data
  • num.trees : le nombre d’arbres dans la forêt.
  • respect.unordered.factors : indique comment traiter les variables facteur non ordonnées. Nous recommandons de le régler sur "order" pour la régression.
  • seed : comme l’algorithme comporte une part d’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 spécifier la variable cible et les entrées dans les variables outcome et vars, et utiliser paste() (docs) pour assembler une chaîne représentant la formule du modèle.

Le data frame bikesJuly a été préchargé. Le code fourni indique les noms de la variable cible et des variables d’entrée.

Cet exercice fait partie du cours

<cours>Apprentissage supervisé en R : Régression</cours>
Voir le cours

Instructions de l’exercice

  • Complétez les blancs pour créer la formule fmla exprimant cnt en fonction des entrées. Affichez-la.
  • Chargez le package ranger.
  • Utilisez ranger pour ajuster un modèle sur les données bikesJuly : bike_model_rf.
    • Le premier argument de ranger() est la formule, fmla.
    • Utilisez 500 arbres et respect.unordered.factors = "order".
    • Fixez la graine à seed pour des résultats reproductibles.
    • Affichez le modèle. Quelle est la valeur du R-squared ?

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