Crea un modelo de random forest para los alquileres de bicicletas
En este ejercicio, volverás a crear un modelo para predecir el número de bicicletas alquiladas en una hora en función del tiempo, el tipo de día (festivo, laborable o fin de semana) y la hora del día. Entrenarás el modelo con datos del mes de julio.
Usarás el paquete ranger para ajustar el modelo de random forest. Para este ejercicio, los argumentos clave de la llamada a ranger() (docs) son:
formuladatanum.trees: el número de árboles en el bosque.respect.unordered.factors: especifica cómo tratar las variables factor no ordenadas. Recomendamos establecerlo en "order" para regresión.seed: como este es un algoritmo aleatorio, establecerás la semilla para obtener resultados reproducibles
Como hay muchas variables de entrada, por comodidad especificaremos el resultado y las entradas en las variables outcome y vars,
y usaremos paste() (docs) para construir una cadena que represente la fórmula del modelo.
El data frame bikesJuly ya está precargado. El código de ejemplo especifica los nombres de la variable objetivo y de las variables de entrada.
Este ejercicio forma parte del curso
Aprendizaje supervisado en R: Regresión
Instrucciones del ejercicio
- Rellena los huecos para crear la fórmula
fmlaque expresecntcomo función de las entradas. Imprímela. - Carga el paquete
ranger. - Usa
rangerpara ajustar un modelo con los datos debikesJuly:bike_model_rf.- El primer argumento de
ranger()es la fórmula,fmla. - Usa 500 árboles y
respect.unordered.factors = "order". - Establece la semilla a
seedpara obtener resultados reproducibles. - Imprime el modelo. ¿Cuál es el R-squared?
- El primer argumento de
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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 = ___))