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 :
formuladatanum.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
Instructions de l’exercice
- Remplissez les espaces vides pour créer la formule
fmlaexprimantcnten fonction des variables d'entrée. Affichez-la. - Chargez le paquet
ranger. - Utilisez
rangerpour ajuster un modèle aux donnéesbikesJuly:bike_model_rf.- Le premier argument de
ranger()est la formule,fmla. - Utilisez 500 arbres et
respect.unordered.factors = "order". - Réglez la graine à
seedpour des résultats reproductibles. - Affichez le modèle. Quelle est la valeur du R-carré ?
- Le premier argument de
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 = ___))