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 :
formuladatanum.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>Instructions de l’exercice
- Complétez les blancs pour créer la formule
fmlaexprimantcnten fonction des entrées. Affichez-la. - Chargez le package
ranger. - Utilisez
rangerpour ajuster un modèle sur les donnéesbikesJuly:bike_model_rf.- Le premier argument de
ranger()est la formule,fmla. - Utilisez 500 arbres et
respect.unordered.factors = "order". - Fixez la graine à
seedpour des résultats reproductibles. - Affichez le modèle. Quelle est la valeur du R-squared ?
- 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 = ___))