TFI - Predicción de La Demanda de Ecobici - Nelson Pedernera-V2 PDF
TFI - Predicción de La Demanda de Ecobici - Nelson Pedernera-V2 PDF
TFI - Predicción de La Demanda de Ecobici - Nelson Pedernera-V2 PDF
Contenido
1. Introducción ......................................................................................................................................... 5
1.1. Acerca de la problemática de estudio ........................................................................................ 5
1.2. Objetivos ..................................................................................................................................... 5
2. Datos: Materiales y Métodos ............................................................................................................... 5
2.1. Fuente de los datos ..................................................................................................................... 5
Fuente: Estaciones Bicicletas Públicas - Buenos Aires Data ................................................... 5
Fuente: Weather Underground Web: .................................................................................... 5
2.2. Pre procesamiento ...................................................................................................................... 6
Software utilizado ................................................................................................................... 6
Creación de variables nuevas: ................................................................................................ 7
Tratamiento de categorías ..................................................................................................... 7
Tratamiento de Datos Erróneos: ............................................................................................ 7
Tratamiento de Datos Faltantes: ............................................................................................ 7
Fuente: Dataset Final .............................................................................................................. 8
2.3. Análisis de los datos .................................................................................................................... 9
Histogramas, boxplots y gráficos de barra ............................................................................ 9
Matriz de diagramas de dispersión/correlación ................................................................... 11
3. Aplicación de Técnicas ........................................................................................................................ 12
Análisis de componentes principales ................................................................................... 12
Análisis de correspondencia ................................................................................................. 15
Análisis de conglomerados ................................................................................................... 18
4. Construcción de Modelos Predictivos ................................................................................................ 21
4.1. Aplicación Modelos Predictivos iniciales .................................................................................. 21
Preprocesamiento ................................................................................................................ 21
Dataset Final: ........................................................................................................................ 22
Regresión Lineal Múltiple ..................................................................................................... 23
Redes Neuronales ................................................................................................................. 24
Random Forest ..................................................................................................................... 25
Gradient Boosting ................................................................................................................. 26
4.2. Aplicación Modelo Predictivo mejorado Xgboost ..................................................................... 27
Preprocesamiento ................................................................................................................ 27
Dataset Final: ........................................................................................................................ 27
Xgboost ................................................................................................................................. 28
5. Conclusiones finales, discusión y futuras mejoras ............................................................................. 30
5.1. Conclusiones Análisis Exploratorio y estadístico: ..................................................................... 30
Página 2 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Índice de Tablas
Tabla 1: Tratamiento de Categorías - Recategorización de variable Condición Meteorológica................... 7
Tabla 2: Tratamiento de Categorías - Datos Erróneos.................................................................................. 7
Tabla 3: Fuente de Datos - Dataset Final: Descripción variables .................................................................. 8
Tabla 4: ACP - Autovalores ......................................................................................................................... 12
Tabla 5: ACP - Autovectores ....................................................................................................................... 13
Tabla 6: ACM – Discretización variables numéricas ................................................................................... 15
Tabla 7: ACM – Recategorización variable Hora ......................................................................................... 15
Tabla 8: ACM - Autovalores ........................................................................................................................ 15
Tabla 9: ACM - Autovectores ...................................................................................................................... 16
Tabla 10: Cluster - Análisis de variables importantes ................................................................................. 19
Tabla 11: Cantidad de casos por categoría, Variable Hora ......................................................................... 21
Tabla 12: Modelo Predictivo Inicial - Dataset Final .................................................................................... 22
Tabla 13: Neural Networks: RMSLE/RMSE 2016 ........................................................................................ 23
Tabla 14: Neural Networks: RMSLE/RMSE 2015_2016 .............................................................................. 23
Tabla 15: Neural Networks: RMSLE/RMSE 2016 ........................................................................................ 24
Tabla 16: Neural Networks: RMSLE/RMSE 2015_2016 .............................................................................. 24
Tabla 17: RandomForest: RMSLE/RMSE 2016 ............................................................................................ 25
Tabla 18: RandomForest: RMSLE/RMSE 2015_2016 .................................................................................. 25
Tabla 19: Gradient boosting: RMSLE/RMSE 2016 ...................................................................................... 26
Tabla 20: Gradient boosting: RMSLE/RMSE 2015_2016 ............................................................................ 26
Tabla 21: Xgboost: RMSLE/RMSE 2016 ...................................................................................................... 29
Tabla 22: Xgboost: RMSLE/RMSE 2016 ...................................................................................................... 29
Tabla 23: Xgboost: Importancia de variables predictoras .......................................................................... 29
Tabla 24: Discusión: Comparación de modelos similares con el presente trabajo .................................... 31
Página 3 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Índice de Figuras
Figura 1: Fuente de datos – Bicicletas Publicas - Ecobici ............................................................................. 5
Figura 2: Fuente de datos – Weather Underground .................................................................................... 6
Figura 3: Software Utilizado – Pentaho Web Scrapping ............................................................................... 6
Figura 4: Fuente de datos: Dataset Final ...................................................................................................... 8
Figura 5: Análisis de los datos - Histogramas, boxplots y gráficos de barra de cada variable .................... 10
Figura 6: Análisis de los datos - Matriz de diagramas de Dispersión/Correlación ..................................... 11
Figura 7: ACP - Criterio del Bastón Roto ..................................................................................................... 12
Figura 8: ACP - Biplot ................................................................................................................................. 13
Figura 9: ACP-Gráfico de Variables ............................................................................................................. 13
Figura 10: ACM - Criterio Bastón Roto ....................................................................................................... 15
Figura 11: ACM - Biplot ............................................................................................................................... 17
Figura 12: ACM - Gráfico de Individuos según categoría Contador de viajes ............................................. 17
Figura 13: Cluster – Dendograma ............................................................................................................... 18
Figura 14: Cluster - ACM según clusters ..................................................................................................... 18
Figura 15: Cluster - Análisis de categorías de variables .............................................................................. 19
Figura 16: Árbol de categorización, Variable Hora .................................................................................... 21
Figura 16: Modelo Predictivo Inicial - Dataset Final ................................................................................... 22
Página 4 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
1. Introducción
1.2.Objetivos
El propósito de este trabajo consistió en analizar la relación existente entre las variables climáticas y de
tiempo con la cantidad de bicicletas utilizadas en el sistema de Ecobici en cada hora durante el 2016
Página 5 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
https://www.wunderground.com/history/airport/SABE/2016/1/1/DailyHistory.html?MR=1
hasta:
https://www.wunderground.com/history/airport/SABE/2016/12/31/DailyHistory.html?MR=1
2.2.Pre procesamiento
Software utilizado
Pentaho Data Integration [4]
Paso 01: Se leyó una planilla Excel con una URL por fila por año, y luego se accedió a esa URL y se obtuvo
del HTML sólo el body
Paso 03: Se realizaron transformaciones y limpieza sobre los datos. Por último, se escribió una planilla
Excel con toda la información climática.
Página 6 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
R versión 3.4.1 [5]: se utilizó para el análisis y procesamiento de los datos, y la aplicación de
técnicas y visualización de resultados
Tratamiento de categorías
Condición Meteorológica
Originalmente, había 27 niveles para la descripción de la condición meteorológica y se recategorizó a 4:
Muy Bueno=1, Bueno=2, Malo=3, Muy Malo=4
Página 7 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Modelo Xgboost: Los valores faltantes de la variable “Condición Meteorológica” fueron predichos en
base a un modelo generado con la función “xgboost” del paquete “xgboost” [7] con un accuracy de
0.7242
Página 8 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Página 9 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Figura 5: Análisis de los datos - Histogramas, boxplots y gráficos de barra de cada variable
Página 10 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Correlaciones destacadas:
Contador-Hora: Se logró apreciar una leve correlación positiva, ya que a medida que pasaban las horas,
se utilizaban más bicicletas.
Contador-Humedad: Se logró apreciar una leve correlación positiva, ya que a medida que pasaban las
horas, la temperatura aumentaba por lo que disminuía la humedad y se utilizaban más bicicletas.
Temperatura-Presión: Estos son dos elementos del clima que varían entre sí de manera inversa: cuanto
mayor sea la temperatura del aire, menor será su presión y el aire asciende. A la inversa, cuando el aire
es más frío tiene una tendencia a descender, con lo que la presión atmosférica aumenta por compresión
en los lugares donde desciende.
3. Aplicación de Técnicas
Análisis de componentes principales
El análisis de componentes principales se realizó con la función “PCA” de la librería “FactoMineR” [8] y a
su vez la visualización con la librería “factoextra” [9]. A continuación, se analizó la aplicación del método
ACP sobre las variables numéricas del dataset, es decir, Temperatura, Humedad, Presión,
VientoVelocidad, Contador
Página 12 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Autovectores
Biplots:
Página 13 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Media-Alta correlación negativa entre las variables Temperatura y VientoVelocidad con Presión (lo cual
es una relación inversa natural, a mayor temperatura, disminuye la presión y el aire asciende)
Media-Alta correlación negativa entre Contador y Humedad: A medida que aumenta la Humedad, en
cierta forma disminuye la variable Contador, lo cual se explica en la “Figura 4-Contador respecto a la
humedad”, cuando la Humedad supera el 87% la variable Contador cae drásticamente.
Página 14 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Análisis de correspondencia
Para realizar este análisis, se procedió a la discretización de las variables de Contador, Temperatura,
Humedad, Presión, VientoVelocidad en tres categorías cada una: Alta, Media, Baja. A su vez, se dividió las
Horas en cuatro categorías (Madrugada, Mañana, Tarde, Noche).
El aporte de inercia de cada autovalor es bastante bajo, pero es lo que se esperaría al haber tantas
variables y categorías en juego. De acuerdo con el criterio del bastón roto, se deberían tomar las primeras
dos componentes
Página 15 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Autovectores:
Todas las componentes de forma, dado que presentaron coeficientes positivos y negativos. Es decir, que
están incorrelacionadas, y probablemente expresen la forma de los individuos.
Página 16 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Biplots
De acuerdo a las variables más cercanas al origen, las cuales son BajaContador, Condiciones 1 y 2,
DiaLaboral SI y NO, MediaViento, MediaTemperatura, MediaHumedad, Mañana y Noche, el
comportamiento más común es que hay pocos viajes, buenas condiciones de tiempo, Viento, Humedad y
Temperatura con valores medios, Generalmente en días laborales, Ya sea por la Mañana o por la Noche
(es decir, en el horario de entrada y salida del trabajo).
También, se puede apreciar que MediaContador y AltaContador están muy alejados del comportamiento
promedio y están asociados levemente con la Primavera, días de BajaHumedad y por la Tarde
Página 17 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Análisis de conglomerados
Para realizar un análisis de conglomerados, es útil basarse en el análisis de correspondencia previo, el cual
parte de las categorías dadas para obtener coordenadas numéricas de las nuevas dimensiones. Es decir,
realizar una clasificación jerárquica en las componentes principales del análisis de correspondencia.
Sí se utilizan sólo los primeros tres clusters y se visualizan en el gráfico de individuos del análisis de
correspondencia previo, se puede ver una clara separación de los mismos:
Página 18 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Como se puede apreciar, las variables Estación, Temperatura, Humedad, Contador están muy presentes
en la definición de cada cluster. En base al cuadro anterior se puede destacar:
Cluster1: Agrupa una Bajo valor de viajes, Baja Temperatura, Estación Otoño o Invierno y Alta
Humedad. En general, no muy buenas condiciones climáticas (Condiciones=3), en Feriado, Día No
Laboral y por la Mañana/Madrugada. Es decir, condiciones y horario no muy buenas para no usar la
Ecobici y por eso el bajo contador de viajes (74,56%)
Cluster2: Agrupa Temperaturas Altas, Estación Verano, Humedad Media. Condiciones climáticas
variables (Engloba el 100% de la peor condición, es decir la 4, y porcentajes bajos de condiciones muy
buenas y buenas, es decir 1 y 2), Días no Feriados. Este segundo cluster termina de agrupar el
Página 19 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
porcentaje restante de baja cantidad de viajes (21%), condiciones climáticas variables (en general
buenas).
Cluster3: Agrupa Media y Alta cantidad de viajes (98 y 100%). Temperatura Media, Humedad baja,
Estación Primavera e Invierno (esta última estación con baja presencia). Este tercer cluster
claramente agrupa aquellos días en que hubo condiciones climáticas medias/buenas con alto índice
de viajes.
Página 20 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Preprocesamiento
Se adecuaron los datos para que los cuatro modelos iniciales puedan procesarlos sin inconvenientes. Para
ello se procedió a:
a) Categorizar la variable Hora de acuerdo al valor de la variable Contador, usando un árbol simple:
Tabla 11: Cantidad de casos por
categoría, Variable Hora
b) Separar el dataset final usando el año 2016 para entrenamiento (70%, train_factor) y test
(30%, test_factor), y el año 2017 para validación (test). También, realizar el mismo
procedimiento usando el año 2015-2016 para tener mayor cantidad de información.
c) Aplicar la función logarítmica en la variable a predecir “Contador” así se suavizan los outliers.
train_factor$lgcount <- log(train_factor$Contador+1)
d) Utilizar el paquete “Caret” [10] para el armado de los modelos iniciales puesto que se considera
referente clave para realizar tareas de clasificación y regresión en R
e) Utilizar el error cuadrático medio logarítmico (RMSLE) como medida de precisión entre la
predicción del año 2017 y el valor verdadero: este modelo de regresión es una alternativa cuando
el modelo lineal no logra un coeficiente de determinación apropiado. El caso de RMSLE se toma
el registro de las predicciones y los valores reales, cambiando la varianza que está midiendo. Se
expresa de la siguiente manera:
𝑅𝑀𝑆𝐿𝐸 = 1 𝑛 (log 𝑝𝑖 + 1 − log(𝑎𝑖 + 1)) 𝑛 2 𝑖=1 (30)
: valores reales, históricos.
: valores predictivos.
n: número total de observaciones.
Log(x): número natural
f) Agregar al modelo la variable “Meses”, teniendo en cuenta cuántos meses anteriores al mes
Noviembre 2017 se encontraban los datos. Es decir, para datos del 2016/11 la variable tendría el
valor 12; para datos del 2015/11 la variable tendría el valor 24
Página 21 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Dataset Final:
Tabla 12: Modelo Predictivo Inicial - Dataset Final
Variable/Valor Variable/Valor Variable/Valor
[1] "Meses" [6] "DiaLaboral" [11] "Presion"
Min. : 1.00 DiaLaboralNo Min. : 996
1st Qu.: 9.00 DiaLaboralSi 1st Qu.:1012
Median :17.00 Median :1016
Mean :17.47 Mean :1016
3rd Qu.:26.00 3rd Qu.:1021
Max. :34.00 Max. :1038
[2] "EstacionString" [7] "Feriado" [12] "VientoVelocidad"
Summer FeriadoNo Min. : 0.00
Fall FeriadoSi 1st Qu.: 9.30
Winter Median :13.00
Spring Mean :14.81
3rd Qu.:18.50
Max. :55.60
[3] "MesString" [8] "CondicionesNumeric" [13] "Contador"
Enero Tiempo Muy Bueno Min. : 0.00
Febrero Tiempo Bueno 1st Qu.: 6.00
... Tiempo Regular Median : 30.00
Noviembre Tiempo Muy Malo Mean : 81.58
Diciembre 3rd Qu.:121.00
Max. :694.00
[4] "DiaSemanaString" [9] "Temperatura" [14] "lgcount"
Domingo Min. : 3.00 Min. :0.000
Lunes 1st Qu.:13.00 1st Qu.:1.946
Martes Median :18.00 Median :3.434
Miércoles Mean :17.86 Mean :3.281
Jueves 3rd Qu.:23.00 3rd Qu.:4.804
Viernes Max. :35.00 Max. :6.544
Sábado
[5] "HoraIntCateg" [10] "Humedad"
[ 0.0, 7.5) Min. : 8.0
[ 7.5,12.0) 1st Qu.: 58.0
[12.0,20.0) Median : 71.0
[20.0,23.0] Mean : 68.7
3rd Qu.: 82.0
Max. :100.0
Página 22 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
“La regresión lineal múltiple trata de ajustar modelos lineales o linealizables entre una variable
dependiente y más de una variable independiente.
La regresión lineal supone que la relación entre dos variables tiene una forma lineal (o linealizable
mediante alguna transformación de las variables). La regresión lineal tiene una versión “simple” que
empareja dos variables, pero esta suele ser insuficiente para entender fenómenos mínimamente
complejos en la que influyen más de dos variables, esta versión es la “múltiple”. En el modelo de regresión
lineal múltiple suponemos que más de una variable tiene influencia o está correlacionada con el valor de
una tercera variable. Por ejemplo, en el peso de una persona pueden influir edad, género y estatura, en
la renta pueden influir trabajo, capital físico, conocimientos, etc. En el modelo de regresión lineal múltiple
esperamos que los sucesos tengan una forma funcional como 𝑦𝑗 = 𝑏𝑜 + 𝑏1𝑥1𝑗 + 𝑏2𝑥2𝑗 + ⋯ + 𝑏𝑘𝑥𝑘𝑗 + 𝑢j
donde y es la variable endógena, x las variables exógenas, u los residuos y b los coeficientes estimados
del efecto marginal entre cada x e y.” [11]
formula<- lgcount~EstacionString+MesString+HoraIntCateg
+DiaSemanaString+DiaLaboral+Feriado+CondicionesNumeric
+Temperatura+Humedad+Presion+VientoVelocidad
Luego se aplicó el modelo obtenido “fit.lm.cv” con los datasets de entrenamiento “train”, testing
“test_factor ” y el de validación “test”, en un primer lugar con el entrenamiento del año 2016 y luego con
los años 2015-2016. Los resultados fueron:
Tabla 13: Neural Networks: RMSLE/RMSE 2016 Tabla 14: Neural Networks: RMSLE/RMSE 2015_2016
Como se puede observar, para ambos conjuntos de entrenamiento (2016 y 2015_2016) la mejor
predicción se obtuvo en entrenamiento, luego con el testing el resultado empeoró levemente y en
validación hubo mucha diferencia. Esta última diferencia es aún más grande sí se compara la predicción
con el entrenamiento de sólo 2016 (RMSLE: 2.08) contra el de entrenamiento de 2015-2016 (2.34): En
este caso, el uso de mayor información histórica no mejoró la predicción, como en la mayoría de los
modelos posteriores. Probablemente el ajuste de la recta se dificultó debido a la diferencia de información
entre un año y otro.
Página 23 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Redes Neuronales
Introducción
“Las redes neuronales son un modelo computacional basado en un gran conjunto de unidades neuronales
simples (neuronas artificiales), de forma aproximadamente análoga al comportamiento observado en los
axones de las neuronas en los cerebros biológicos. Cada unidad neuronal está conectada con muchas
otras y los enlaces entre ellas pueden incrementar o inhibir el estado de activación de las neuronas
adyacentes. Cada unidad neuronal, de forma individual, opera empleando funciones de suma. Puede
existir una función limitadora o umbral en cada conexión y en la propia unidad, de tal modo que la señal
debe sobrepasar un límite antes de propagarse a otra neurona. Estos sistemas aprenden y se forman a sí
mismos, en lugar de ser programados de forma explícita, y sobresalen en áreas donde la detección de
soluciones o características es difícil de expresar con la programación convencional. “ [12]
formula<- lgcount~EstacionString+MesString+HoraIntCateg
+DiaSemanaString+DiaLaboral+Feriado+CondicionesNumeric
+Temperatura+Humedad+Presion+VientoVelocidad
Luego se aplicó el modelo obtenido “fit.pcaNNet.cv” con los datasets de entrenamiento “train”,
testing “test_factor ” y el de validación “test”, en un primer lugar con el entrenamiento del año 2016 y
luego con los años 2015-2016. Los resultados fueron:
Tabla 15: Neural Networks: RMSLE/RMSE 2016 Tabla 16: Neural Networks: RMSLE/RMSE 2015_2016
Nota: La mejor arquitectura obtenida fue de 18 nodos en la capa oculta con un parámetro de actualización
de los pesos de 0.2
> fit.pcaNNet$bestTune
Size=18, decay=0.2
Como se puede observar, para ambos conjuntos de entrenamiento (2016 y 2015_2016) la mejor
predicción se obtuvo en entrenamiento, luego con el testing el resultado empeoró levemente y en
validación hubo mucha diferencia. Esta última diferencia es aún más grande sí se compara la predicción
con el entrenamiento de sólo 2016 (RMSLE: 2.11) contra el de entrenamiento de 2015-2016 (1.85):
Claramente, se estuvo sobreajustando con el entrenamiento de sólo 2016, y con el entrenamiento de
2015-2016 se obtuvo un modelo que permitió generalizar mucho mejor y predecir con menos error.
Página 24 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Random Forest
Introducción
Random forest es una combinación de árboles predictores en la que cada árbol depende de los valores
de un vector aleatorio probado independientemente y con la misma distribución para cada uno de estos.
El algoritmo para inducir un random forest fue desarrollado por Leo Breiman y Adele Cutler [13], siendo
Random forests su marca de fábrica.
Este algoritmo mejora la precisión en la clasificación mediante la incorporación de aleatoriedad en la
construcción de cada clasificador individual. Esta aleatorización puede introducirse en la partición del
espacio (construcción del árbol), así como en la muestra de entrenamiento. El Random Forest comienza
con una técnica de aprendizaje automático estándar llamada “árbol de decisiones”, que, en cuanto al
conjunto, corresponde a un aprendizaje. En un árbol de decisión, una entrada se introduce en la parte
superior y hacia abajo a medida que atraviesa el árbol de los datos, los cuales se acumulan en conjuntos
más pequeños [14]
formula<- lgcount~EstacionString+MesString+HoraIntCateg
+DiaSemanaString+DiaLaboral+Feriado+CondicionesNumeric
+Temperatura+Humedad+Presion+VientoVelocidad
fit.rf.cv <- train(formula, data=subTrain , method='rf',
trControl=tc,tuneGrid=Grid,metric='RMSE')
Luego se aplicó el modelo obtenido “fit.rf.cv” con los datasets de entrenamiento “train”, testing
“test_factor ” y el de validación “test”, en un primer lugar con el entrenamiento del año 2016 y luego con
los años 2015-2016. Los resultados fueron:
Tabla 17: RandomForest: RMSLE/RMSE 2016 Tabla 18: RandomForest: RMSLE/RMSE 2015_2016
Al igual que en el modelo anterior de Redes Neuronales, la mejor predicción se obtuvo con el conjunto de
entrenamiento 2015-2016, obteniendo un menor RMSLE con 1.03.
Página 25 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Gradient Boosting
Introducción
“Gradient boosting o Potenciación del gradiente, es una técnica de aprendizaje automático utilizado para
el análisis de la regresión y para problemas de clasificación estadística, el cual produce un modelo
predictivo en forma de un conjunto de modelos de predicción débiles, típicamente árboles de
decisión. Construye el modelo de forma escalonada como lo hacen otros métodos de boosting, y los
generaliza permitiendo la optimización arbitraria de una función de pérdida diferenciable.” [15]
formula<- lgcount~EstacionString+MesString+HoraIntCateg
+DiaSemanaString+DiaLaboral+Feriado+CondicionesNumeric
+Temperatura+Humedad+Presion+VientoVelocidad
fit.gbm.cv <- train(formula, data=subTrain , method='gbm',
trControl=tc,tuneGrid=Grid,metric='RMSE')
Luego se aplicó el modelo obtenido “fit.gbm.cv” con los datasets con los datasets de entrenamiento
“train”, testing “test_factor ” y el de validación “test”, en un primer lugar con el entrenamiento del año
2016 y luego con los años 2015-2016. Los resultados fueron:
Tabla 19: Gradient boosting: RMSLE/RMSE 2016 Tabla 20: Gradient boosting: RMSLE/RMSE 2015_2016
Al igual que en los modelos anteriores, la mejor predicción se obtuvo con el conjunto de entrenamiento
2015-2016, obteniendo el menor RMSLE de los cuatro modelos iniciales con 0.93.
Página 26 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Preprocesamiento
Aparte de las modificaciones del dataset original que se realizaron en “4.1.1”, se adecuaron los datos para
que el modelo mejorado de Xgboost pueda procesarlos sin inconvenientes. Para ello se procedió a:
a) Agregar la variable de índice de calor o sensación térmica “HeatIndex” usando la función
“heat.index” del paquete de R “weathermetrics”
HeatIndex<- heat.index(t = WeatherInfo_bici$Temperatura,
rh = WeatherInfo_bici$Humedad,
temperature.metric = "celsius",
output.metric = "celsius")
b) No categorizar la variable “Hora” en los cuatro grupos anteriores, sino que dejarla con los 24
valores originales (12:00 AM – 23:00 PM)
c) Convertir las variables categorizadas en variable “dummies” para cada uno de los posibles valores
de la variable, así quedarían todas variables numéricas para que el algoritmo Xgboost pueda
procesarlas correctamente.
Por ejemplo: La variable “EstacionString” con los cuatro posibles valores de estaciones se
reemplazó por las variables “Summer, Fall, Winter, Spring” y cada una de ellas puede tener el
valor 0 o 1 dependiendo del valor original de la variable.
Es por ello que el dataset pasó de tener de 14 variables entre categóricas y numéricas a 61
variables, todas numéricas.
Dataset Final:
[1] "Temperatura" [22] "Miércoles" [43] "05:00 PM"
[2] "Humedad" [23] "Jueves" [44] "06:00 PM"
[3] "Presion" [24] "Viernes" [45] "07:00 PM"
[4] "VientoVelocidad" [25] "Sábado" [46] "08:00 PM"
[5] "Summer" [26] "12:00 AM" [47] "09:00 PM"
[6] "Fall" [27] "01:00 AM" [48] "10:00 PM"
[7] "Winter" [28] "02:00 AM" [49] "11:00 PM"
[8] "Spring" [29] "03:00 AM" [50] "DiaLaboralNo"
[9] "Enero" [30] "04:00 AM" [51] "DiaLaboralSi"
[10] "Febrero" [31] "05:00 AM" [52] "FeriadoNo"
[11] "Marzo" [32] "06:00 AM" [53] "FeriadoSi"
[12] "Abril" [33] "07:00 AM" [54] "Tiempo Muy Bueno"
[13] "Mayo" [34] "08:00 AM" [55] "Tiempo Bueno"
[14] "Junio" [35] "09:00 AM" [56] "Tiempo Regular"
[15] "Julio" [36] "10:00 AM" [57] "Tiempo Muy Malo"
[16] "Agosto" [37] "11:00 AM" [58] "HeatIndex"
[17] "Septiembre" [38] "12:00 PM" [59] "MesesOLD"
[18] "Octubre" [39] "01:00 PM" [60] "lgcount"
[19] "Domingo" [40] "02:00 PM" [61] "Contador"
[20] "Lunes" [41] "03:00 PM"
[21] "Martes" [42] "04:00 PM"
Página 27 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Xgboost
Introduccion
“XGBoost significa eXtreme Gradient Boosting […] XGBoost es una implementación de árboles de
decisión con Gradient boosting diseñada para minimizar la velocidad de ejecución y maximizar el
rendimiento. […]. Internamente, XGBoost representa todos los problemas como un caso de modelado
predictivo de regresión que sólo toma valores numéricos como entrada. Si nuestros datos están en un
formato diferente, primero vamos a tener que transformarlos para poder hacer uso de todo el poder de
esta librería. El hecho de trabajar sólo con datos numéricos es lo que hace que esta librería sea tan
eficiente.” [16]
Parámetros optimizados: Se optimizaron mediante un bucle en el que se variaban los valores de cada uno
y se minimizaba el error
min_child_weight: Cantidad mínima de peso de la instancia necesaria en un child (5, 10, 20, 50, 100)
max_depth: Profundidad máxima del árbol (3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
Parámetros claves
nround: El número de rounds para hacer boosting
nthread: Número de hilos a utilizar
eval_ metric: Evaluación de la métrica. Se elige rmse
objective: Tipo de objetivo de tarea de aprendizaje
verbose: Salida por pantalla de información de performace (0=NO, 1=SI)
Parámetros típicos:
eta: Tamaño de cada paso
subsample: Parte de las instancias de datos para crecer el árbol
colsample_bytree: Sub-muestra de columnas al construir cada árbol
alpha, lambda: Términos de regularización. Al aumentar este valor, el modelo será más conservador.
gamma: Reducción mínima de perdidas
Página 28 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Tabla 21: Xgboost: RMSLE/RMSE 2016 Tabla 22: Xgboost: RMSLE/RMSE 2016
Al igual que en los modelos anteriores, la mejor predicción se obtuvo con el conjunto de entrenamiento
2015-2016, obteniendo el menor RMSLE de los dos modelos iniciales con 0.90.
Entonces, el mejor modelo de todos los creados en el presente trabajo fue el de Xgboost.
En la tabla 21 se logró apreciar que la variable con mayor valor predictivo fue “MesesOLD”, es decir, la
antigüedad en los registros, lo que indicó que mientras más información histórica se tenga sobre el uso
de las bicicletas, mayor valor de predicción se tendrá.
También se logró ver que aparecieron muchas variables acerca de la hora del registro, mayormente
indicadoras de la madrugada o temprano por la mañana: dado que la mayor parte de los registros indicó
bajo uso de las bicicletas, la predicción del xgboost se volcó en encontrar variables que explicaran el bajo
nivel del uso, lo cual tuvo sentido ya que por la madrugada/temprano por la mañana, no se usan las
bicicletas.
Por otro lado, también aparecieron las variables climáticas de Humedad, Temperatura, HeatIndex, Presión
Página 29 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
Por último, se ensayaron agrupaciones de los datos en base a distintos criterios y se pudieron establecer
relaciones en cuanto a las variables intervinientes:
Si agrupamos en tres clusters encontramos que el primero y el segundo se llevan el comportamiento
más común que es baja cantidad de viajes, sólo que el primer cluster por lo general tiene malas
condiciones climáticas, mal horario, y días no laborales, mientras que el segundo tiene buenas
condiciones variables, altas temperaturas y en verano. Por último, el tercer cluster agruparía la media
y alta cantidad de viajes, teniendo condiciones climáticas agradables (temperatura media, baja
humedad, primavera).
El armado de los modelos predictivos con bajo error de predicción como el del Xgboost, permitiría saber
con anterioridad y en base a las condiciones climáticas, que días/hora se utilizaría mayormente el servicio
de bicicletas públicas. Con tan sólo introducir las condiciones climáticas esperadas del siguiente/s día/s,
se podría:
Página 30 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
5.3.Discusión
Dado que no existen trabajos similares sobre modelos de predicción del uso de las bicicletas de Ecobici
en base a las condiciones climáticas al igual que la competencia de Kaggle en la Ciudad de Buenos Aires,
la presente discusión se realizó sobre la tesis de “Forecasting Bike Rental Demand Using New York
Citi Bike Data” de Wen Wang (Dublin Institute of Technology) [18]. En la tesis mencionada, se realiza un
trabajo similar con los datos del servicio de bicicletas de la ciudad de Nueva York llegando a los siguientes
resultados de ese trabajo y de otros similares en los que se basó:
Si bien los valores de RMSLE listados son de trabajos con fuentes de datos distintas, los mismos sirvieron
para tener en cuenta que el valor de RMSLE del presente trabajo sería un valor muy competente de
predicción en la competencia de Kaggle del 2013, por lo cual es un buen camino para la predicción de
cantidad de bicicletas usadas en el sistema de Ecobici en la Ciudad de Buenos Aires.
5.4.Futuras mejoras
Con respecto a las futuras mejoras, se podría:
Agregar a las variables predictoras información del inicio y destino del viaje, así obtener cuáles serían
las estaciones más utilizadas y armar modelos predictivos para una mejor distribución de las
bicicletas.
Agregar mayor información de contexto al momento del uso del servicio, tal como: estado del
tránsito, cercanía de las estaciones a subtes/shoppings/lugares turísticos/etc, polución, medidas
gubernamentales.
Agregar mayor información histórica disponible de años anteriores al 2015 y chequear sí se logra una
mejora en los modelos. También se podría actualizar la información al año 2018 una vez que se
encuentre disponible en el portal de datos abiertos de la Ciudad de Buenos Aires.
Página 31 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
6. Bibliografía
[1] Inc, Kaggle, «Bike Sharing Demand,» 29 Mayo 2013. [En línea]. Available:
https://www.kaggle.com/c/bike-sharing-demand. [Último acceso: 01 Enero 2017].
[2] Dirección General de Calidad Institucional y Gobierno Abierto, «Buenos Aires Data,» 2016-2017.
[En línea]. Available: https://data.buenosaires.gob.ar/dataset/bicicletas-publicas. [Último acceso:
01 Septiembre 2017].
[3] TWC Product and Technology, «Weather Underground,» 2016-2017. [En línea]. Available:
https://www.wunderground.com/history/airport/SABE/2016/1/1/DailyHistory.html?MR=1.
[Último acceso: 01 Septiembre 2017].
[4] Hitachi Vantara, «Data Integration - Kettle,» 10 Agosto 2017. [En línea]. Available:
https://community.hitachivantara.com/docs/DOC-1009855-data-integration-kettle. [Último
acceso: 01 Septiembre 2017].
[5] The R Foundation, The R Project for Statistical Computing, Junio 2017. [En línea]. Available:
https://www.r-project.org/. [Último acceso: 01 Septiembre 2017].
[6] S. a. T. B.-B. Moritz, «imputeTS: Time Series Missing Value Imputation in R,» 13 Junio 2017. [En
línea]. Available: https://cran.r-project.org/web/packages/imputeTS/index.html. [Último acceso:
01 Septiembre 2017].
[7] T. C. a. C. Guestrin, «XGBoost: A Scalable Tree Boosting System,» 05 Enero 2016. [En línea].
Available: https://cran.r-project.org/web/packages/xgboost/index.html. [Último acceso: 01
Septiembre 2017].
[8] F. H. S. L. Julie Josse, «FactoMineR: Multivariate Exploratory Data Analysis and Data Mining,» 11
Agosto 2008. [En línea]. Available: https://cran.r-
project.org/web/packages/FactoMineR/index.html. [Último acceso: 20 Febrero 2017].
[9] «Extract and Visualize the Results of Multivariate Data Analyses,» 09 Enero 2017. [En línea].
Available: https://cran.r-project.org/web/packages/factoextra/index.html. [Último acceso: 01
Septiembre 2017].
[10] M. Kuhn, «Classification and Regression Training,» 18 Abril 2017. [En línea]. Available:
https://cran.r-project.org/web/packages/caret/. [Último acceso: 01 Septiembre 2017].
[12] Colaboradores de Wikipedia, «Red neuronal artificial,» 2017. [En línea]. Available:
https://es.wikipedia.org/wiki/Red_neuronal_artificial. [Último acceso: 01 Septiembre 2017].
Página 32 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici
[13] R. p. b. A. L. a. M. W. Fortran original by Leo Breiman and Adele Cutler, «Breiman and Cutler's
Random Forests for Classification and Regression,» 07 Octubre 2015. [En línea]. Available:
https://cran.r-project.org/web/packages/randomForest/index.html. [Último acceso: 01
Septiembre 2017].
[16] R. E. L. Briega, «Boosting en Machine Learning con Python,» 10 Junio 2017. [En línea]. Available:
https://relopezbriega.github.io/blog/2017/06/10/boosting-en-machine-learning-con-python/.
[Último acceso: 01 Septiembre 2017].
[18] W. Wang, «Forecasting bike rental demand using New York Citi Bike data,» Enero 2016. [En línea].
Available: https://arrow.dit.ie/scschcomdis/79/. [Último acceso: 01 Septiembre 2017].
[19] C.-S. L. a. Y.-P. W. Yu-Chun Yin, «Demand Prediction of Bicycle Sharing Systems,» 2014. [En línea].
Available: http://cs229.stanford.edu/proj2014/Yu-chun%20Yin,%20Chi-Shuen%20Lee,%20Yu-
Po%20Wong,%20Demand%20Prediction%20of%20Bicycle%20Sharing%20Systems.pdf. [Último
acceso: 01 Septiembre 2017].
[20] R. H. Z. Z. Jimmy Du, «Forecasting Bike Rental Demand,» 2014. [En línea]. Available:
http://cs229.stanford.edu/proj2014/Jimmy%20Du,%20Rolland%20He,%20Zhivko%20Zhechev,%2
0Forecasting%20Bike%20Rental%20Demand.pdf. [Último acceso: 01 Septiembre 2017].
[21] D. W. A. W. Christina Lee, «Forecasting Utilization in City Bike-Share Program,» 2014. [En línea].
Available:
http://cs229.stanford.edu/proj2014/Christina%20Lee,%20David%20Wang,%20Adeline%20Wong,
%20Forecasting%20Utilization%20in%20City%20Bike-Share%20Program.pdf. [Último acceso: 01
Septiembre 2017].
[22] K. M. a. B. P. R. Akshay Patil, «Bike Share Demand Prediction using RandomForests,» 2015. [En
línea]. Available: http://ijiset.com/vol2/v2s4/IJISET_V2_I4_195.pdf. [Último acceso: 01 Septiembre
2017].
[23] W. Liu, «Predicting Capital Bikeshare Demand in R: Part 3. Generalized Boosted Model,» 10 Julio
2014. [En línea]. Available: http://beyondvalence.blogspot.com/2014/07/predicting-capital-
bikeshare-demand-in_10.html. [Último acceso: 01 Septiembre 2017].
Página 33 de 33