TFI - Predicción de La Demanda de Ecobici - Nelson Pedernera-V2 PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 33

Universidad de Buenos Aires

Facultad de Ciencias Exactas y Naturales


Maestría en Exploración de Datos y
Descubrimiento del Conocimiento

Trabajo Final Integrador


Predicción de la demanda de Ecobici

Autor: Ing. Nelson Pedernera


Análisis Inteligente de Datos
Trabajo Final: Ecobici

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

5.2. Conclusiones Modelos Predictivos............................................................................................ 30


5.3. Discusión ................................................................................................................................... 31
5.4. Futuras mejoras ........................................................................................................................ 31
6. Bibliografía.......................................................................................................................................... 32

Í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.1.Acerca de la problemática de estudio


El Trabajo Final Integrador realizado se basó en una competencia del 2013 (Kaggle Bike Sharing Demand
[1]), la cual consistió en tratar de predecir con precisión la cantidad de bicicletas que se rentarían en un
sistema privado de bicicletas en la ciudad de Washington DC en base a las condiciones climáticas. En el
presente caso, se utilizó la información del año 2016 de las bicicletas públicas de la Ciudad de Buenos
Aires, ECOBICI [2], junto con la información meteorológica del sitio Weather Underground [3].
La información analizada consistió en un conjunto de datos que contenía la cantidad de bicicletas
utilizadas en el sistema de EcoBici de la Ciudad de Buenos con la correspondiente información
meteorológica para cada día/hora.

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

2. Datos: Materiales y Métodos

2.1.Fuente de los datos


El conjunto de datos final se obtuvo desde dos sitios de internet, por un lado, de las “Estaciones de
Bicicletas Públicas de la Ciudad de Buenos Aires, Ecobici” y por otro lado del sitio de información
meteorológica “Weather Underground”.

Fuente: Estaciones Bicicletas Públicas - Buenos Aires Data


Los datos se obtuvieron de la información del uso de las bicicletas públicas por parte del sistema de Ecobici
de la Ciudad de Buenos Aires en 2016
Información: 9 Variables y 716507 registros

Figura 1: Fuente de datos – Bicicletas Publicas - Ecobici

Fuente: Weather Underground Web:


Los datos se extrajeron con un proceso de “scrapping” descargando la información meteorológica
histórica de las siguientes páginas

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

Información: 18 Variables y 12192 registros

Figura 2: Fuente de datos – Weather Underground

2.2.Pre procesamiento

Software utilizado
 Pentaho Data Integration [4]

Se utilizó para realizar el scrapping de la web de Weather Underground:

Figura 3: Software Utilizado – Pentaho Web Scrapping

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 02: Se filtró sólo la información requerida

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

Creación de variables nuevas:


A partir de la variable FechaCompleta se crearon las siguientes variables:
 FechaString  EstacionString  MesNumeric
 Hora  EstacionNumeric  DiaSemanaString
 HoraInt  MesString  Feriado

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

Tabla 1: Tratamiento de Categorías - Recategorización de variable Condición Meteorológica


Condición Condición
Condición Original
recategorizada Condición Original recategorizada
Clear 1 Drizzle 3
Partly Cloudy 1 Heavy Drizzle 3
Mist 2 Light Drizzle 3
Mostly Cloudy 2 Light Rain 3
Overcast 2 Light Rain Showers 3
Scattered Clouds 2 Light Thunderstorm 3
Fog 2 Light Thunderstorms and Rain 3
Haze 2 Rain 3
Light Fog 2 Rain Showers 3
Partial Fog 2 Heavy Rain 4
Patches of Fog 2 Heavy Thunderstorms and Rain 4
Shallow Fog 2 Thunderstorm 4
Heavy Fog 2
Thunderstorm and Rain 4
…………………………....... ………………….... Thunderstorms with Hail 4

Tratamiento de Datos Erróneos:


Se encontraron datos erróneos en las siguientes variables y se asignaron como NA

Tabla 2: Tratamiento de Categorías - Datos Erróneos


Velocidad del viento ( km/h ) 111.1,1113.1,1122.3,120.4,129.6,150.0,175.9,374.1,559.3,937.1,Calm
Presión (hPa ) 10,911,920
Humedad (%) 198

Tratamiento de Datos Faltantes:


 Estaciones Bicicletas Públicas - Buenos Aires Data
Aquellos días/horas que no tenían registros de viajes, simplemente se computaron con cero
cantidades de viajes en el Contador
 Weather Underground web
Interpolación variables numéricas: Aquellos días/horas que no tenían registros de condiciones
meteorológicas de Temperatura, Humedad, Presión, Viento Velocidad o que simplemente eran datos
erróneos, fueron interpolados linealmente utilizando la función “na.interpolation” de la librería
“imputeTS” en R [6]

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

Fuente: Dataset Final


Posteriormente, se sumarizó la información del registro de bicicletas contando la cantidad de bicicletas
usadas por hora por día y luego se le añadió la información meteorológica.
Información: 19 Variables y 8784 registros

Figura 4: Fuente de datos: Dataset Final

Tabla 3: Fuente de Datos - Dataset Final: Descripción variables


Tipo o Nivel de Tipo Tipo
Nombre Medición Variable Valor Unidad Ejemplo
"01/01/2016 12:00:00 a.m."-
FechaCompleta Categórica Ordinal Fecha Día "31/12/2016 12:00:00 a.m."
FechaString Categórica Ordinal Carácter - "2016/01/01", "2016/12/31"
Hora Categórica Ordinal Tiempo Hora "12:00 AM"-"11:00 PM"
HoraInt Categórica Ordinal Entero - 0, 23
"Summer","Fall", "Winter",
EstacionString Categórica Ordinal Carácter - "Spring"
EstacionNumeric Categórica Ordinal Entero - 1,2,3,4
MesString Categórica Ordinal Carácter - "Enero","Diciembre"
MesNumeric Categórica Ordinal Entero - 1-12
DiaLaboral Categórica Nominal Boolean - 0(NoLaboral),1
Feriado Categórica Nominal Boolean - 0 (Laboral),1(Feriado)
Temperatura Cuantitativa Continua Real °C 3°C-35°C
Humedad Cuantitativa Continua Real % 0%-100%
Presion Cuantitativa Continua Real hPa 996hPa-1038hPa
VientoVelocidad Cuantitativa Continua Real Km/h 0km/h - 55.6km/h
CondicionesString Cuantitativa Nominal Carácter - "Clear", "Mostly Cloudy", "Rain"
CondicionesNumeric Categórica Categórica Entero - 1,2,3
Viajes x
Contador Cuantitativa Discreta Entero hora 10, 100, 600

Página 8 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici

2.3.Análisis de los datos

Histogramas, boxplots y gráficos de barra


A continuación, se visualizan los histogramas, boxplots y gráficos de barra de cada una de las variables

La distribución de viajes por mes indica que la gente prefiere usar


el servicio de Ecobici durante los meses de primavera en primer
lugar e invierno más que en Diciembre (donde comienza a bajar la
cantidad de viajes) y otoño (donde alcanza valores mínimos del
año)

La distribución de viajes por HoraDelDia indica que la gente usa más


el servicio de Ecobici durante el horario diurno concentrándose
entre las 8hs y las 19hs, con picos en las 9hs durante la mañana y a
las 18hs en la tarde, que es el horario de entrada/salida laboral más
común.

La distribución de viajes por Condiciones indica que la gente usa


más el servicio de Ecobici durante los días con tiempo “Muy Bueno”
o “Bueno”

La distribución de viajes por DíaLaboral indica que la gente usa más


el servicio de Ecobici durante los días de trabajo (Lunes a Sábado)

Página 9 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici

La distribución de viajes por DíaFeriado indica que la gente usa más


el servicio de Ecobici durante los días de trabajo

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

Matriz de diagramas de dispersión/correlación

Figura 6: Análisis de los datos - Matriz de diagramas de Dispersión/Correlación


Página 11 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.

Temperatura-Humedad: En un día normal, la temperatura asciende, y la humedad desciende, y cuando la


temperatura disminuye, la humedad aumenta.

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

Tabla 4: ACP - Autovalores


Prop.
Lambda Valor Proporción
Acum.
PC1 1,813218 36,26437 36%
PC2 1,227982 24,55965 61%
PC3 0,978989 19,57978 80%
PC4 0,713047 14,26093 95%
PC5 0,266764 5,33527 100%

Figura 7: ACP - Criterio del Bastón Roto


Existen dos criterios posibles a utilizar:
El criterio de Kaiser: es decir aquellos factores con autovalores mayores o iguales a 1. En nuestro caso, se
tomaron las tres primeras componentes explicando un 80% de la variabilidad total.
El criterio del bastón roto: este gráfico nos permite discriminar visualmente entre las componentes
importantes y las que no lo son. En nuestro caso se observó que, a partir de la tercera componente, el
aporte de los restantes es mínimo.

Página 12 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici

Autovectores

Tabla 5: ACP - Autovectores

Variables PC1 PC2 PC3 PC4 PC5


Temperatura 0,9040211 -0,187674 -0,06007 -0,0981 0,36646
Humedad -0,546514 -0,614907 -0,07355 0,534179 0,18015
Presion -0,75587 0,4334657 0,27499 -0,26473 0,308326
VientoVelocidad 0,2295346 -0,200585 0,945526 0,101111 -0,05326
Contador 0,2706673 0,7658484 0,018227 0,581179 0,045986

Interpretación de los componentes: Todas las componentes encontradas correspondieron al tipo de


forma, dado que presentaron coeficientes positivos y negativos. Es decir, que están incorrelacionadas, y
probablemente expresen la forma de los individuos.

Biplots:

Figura 8: ACP - Biplot

Figura 9: ACP-Gráfico de Variables

Página 13 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici

Interpretación del biplot y del gráfico de las variables:

 De la comparación de los ejes 1 y 2 se obtuvieron las siguientes conclusiones:

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.

El eje 1 explica la variabilidad de las variables Temperatura/ VientoVelocidad con la Presión.

El eje 2 explica la variabilidad de la variable Contador con la Humedad

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).

Tabla 6: ACM – Discretización variables numéricas


Variable Baja Media Alta
Temperatura [3,13.7] (13.7,24.3] (24.3,35]
Presion [996,1010] (1010,1024] (1024,1038]
Humedad [8,38.7] (38.7,69.3] (69.3,100]
VientoVelocidad [0,18.7] (18.7,37.3] (37.3,56]
Contador [0,231.33] (231.33,462.67] (462.67,694]

Tabla 7: ACM – Recategorización variable Hora


Madrugada Mañana Tarde Noche
HoraInt [12,5] [6,11] [12,17] [18,23]

Luego se procedió a la aplicación del análisis de correspondencia utilizando el paquete FactoMiner,


función MCA:

Tabla 8: ACM - Autovalores


Autovalor Dim.1 Dim.2 Dim.3 Dim.4 Dim.5 Dim.6 Dim.7 Dim.8 Dim.9 Dim.10 Dim.11
Inercia 0.23 0.17 0.15 0.13 0.12 0.12 0.11 0.11 0.10 0.10 0.10
Proporción 10.98 7.88 7.05 6.42 5.70 5.58 5.16 5.02 4.86 4.73 4.56
Prop Acum 11% 19% 26% 32% 38% 44% 49% 54% 59% 63% 68%
Autovalor Dim.12 Dim.13 Dim.14 Dim.15 Dim.16 Dim.17 Dim.18 Dim.19 Dim.20 Dim.21
Inercia 0.09 0.09 0.09 0.08 0.07 0.06 0.06 0.05 0.04 0.03
Proporción 4.50 4.38 4.27 3.97 3.29 2.89 2.86 2.55 2.14 1.23
Prop Acum 72% 77% 81% 85% 88% 91% 94% 97% 99% 100%

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

Figura 10: ACM - Criterio Bastón Roto

Página 15 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici

Autovectores:

Tabla 9: ACM - Autovectores


Variables Dim 1 Dim 2
Madrugada -0,29 -0,45
Mañana -0,31 -0,06
Tarde 0,44 0,51
Noche 0,16 -0,01
Summer 0,90 -0,91
Fall -0,69 -0,32
Winter -0,88 0,48
Spring 0,67 0,75
DiaLaboral_0 -0,02 -0,55
DiaLaboral_1 0,01 0,26
Feriado_0 0,00 0,07
Feriado_1 0,05 -1,34
BajaTemp -1,16 0,12
MediaTemp 0,24 0,14
AltaTemp 1,35 -0,63
BajaHum 1,20 0,94
MediaHum 0,45 0,13
AltaHum -0,49 -0,21
BajaPresion 0,86 -0,54
MediaPresion 0,00 0,09
AltaPresion -1,37 0,32
BajaViento -0,08 0,08
MediaViento 0,26 -0,22
AltaViento 0,38 -0,80
CondicionesNumeric_1 0,19 0,07
CondicionesNumeric_2 -0,15 0,01
CondicionesNumeric_3 -0,77 -0,41
CondicionesNumeric_4 0,47 -1,60
BajaCont -0,10 -0,28
MediaCont 0,70 2,06
AltaCont 1,22 2,42

Interpretación de los componentes:

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

A continuación, analizaremos los biplots.

Figura 11: ACM - Biplot

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

Figura 12: ACM - Gráfico de Individuos según categoría Contador de viajes

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.

En la figura 12 se puede ver el dendograma una vez realizado el clustering jerárquico

Figura 13: Cluster – Dendograma

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:

Figura 14: Cluster - ACM según clusters

Página 18 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici

Análisis de los clusters


Si realizamos un análisis de las variables que están más asociadas a la separación de los clusters con un
test chi-cuadrado con un nivel de significancia del 0.05, encontramos como variables más importantes a
Estación, Temperatura, Humedad, Contador

Tabla 10: Cluster - Análisis de variables importantes


Variable p.value df
EstacionString 0.00e+00 6
TemperaturaCateg 0.00e+00 4
HumedadCateg 0.00e+00 4
ContadorCateg 0.00e+00 4
HoraCateg 2.80e-198 6
PresionCateg 1.04e-172 4
CondicionesNumeric 2.90e-153 6
DiaLaboral 3.51e-50 2
Feriado 4.59e-50 2
VientoVelocidadCateg 1.07e-16 4

Distribución de cada una de las variables y sus categorías en cada cluster

Figura 15: Cluster - Análisis de categorías de variables

La relación Clase/Modalidad indica por ejemplo para “Cluster 1, Contador=BajaCont=74,56%” que el


“74,56%” de los registros que tienen el valor de “BajaCont” para la variable de “Contador” también
pertenecen a “Cluster 1”. Luego “Cluster 2, Contador=BajaCont=21,4%”, agrupa al “21,4%” de los registros
que tienen el valor de “BajaCont” para la variable de “Contador” y que también pertenecen a “Cluster 2”

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

4. Construcción de Modelos Predictivos


En esta sección se estudió la construcción de cuatro modelos predictivos como NeuralNetworks,
RandomForest, Gradient Boost, y por último, se profundizó en el tunning de los parámetros del algoritmo
Xgboost (Es decir, en la búsqueda y mejora del modelo de Xgboost), dado que se considera un modelo
superior que el RandomForest y por lo general se obtienen mejores resultados.

4.1. Aplicación Modelos Predictivos iniciales

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

Categoría Cantidad de Casos


Hora[ 0.0, 7.5) 2902
Hora[ 7.5,12.0) 1458
Hora[12.0,20.0) 2914
Hora[20.0,23.0] 1451
Figura 16: Árbol de categorización, 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

Figura 17: Modelo Predictivo Inicial - Dataset Final

Página 22 de 33
Análisis Inteligente de Datos
Trabajo Final: Ecobici

Regresión Lineal Múltiple


Introducción

“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]

Aplicación de la técnica y resultados


Para la aplicación de la regresión lineal múltiple se eligió a la variable lgcount como variable a predecir y
las demás variables como variables predictoras.

formula<- lgcount~EstacionString+MesString+HoraIntCateg
+DiaSemanaString+DiaLaboral+Feriado+CondicionesNumeric
+Temperatura+Humedad+Presion+VientoVelocidad

fit.lm.cv<-train(formula, data=subTrain,method ="lm",controls=control)

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

Ambiente Predicción RMSLE RMSE Ambiente Predicción RMSLE RMSE


Entrenamiento train_factor 0.8684123 50.61538 Entrenamiento train_factor 1.191959 64.76519
Testing test_factor 0.8786909 51.76532 Testing test_factor 1.216369 65.28989
Validación test 2.0857059 192.65180 Validación test 2.349121 206.10290

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]

Aplicación de la técnica y resultados


Para la aplicación del algoritmo de Neural Networks se eligió a la variable lgcount como variable a predecir
y las demás variables como variables predictoras.

formula<- lgcount~EstacionString+MesString+HoraIntCateg
+DiaSemanaString+DiaLaboral+Feriado+CondicionesNumeric
+Temperatura+Humedad+Presion+VientoVelocidad

Grid <- expand.grid(size=seq(3,20,5),decay=c(0.01,0.1,0.2,0.3))


fit.pcaNNet.cv <- train(formula, data=subTrain, method = 'pcaNNet',
trControl=fitControl,metric='RMSLE',maximize=FALSE,tuneGrid=Grid,
linout=TRUE,maxit=5000,trace=FALSE)

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

Ambiente Predicción RMSLE RMSE Ambiente Predicción RMSLE RMSE


Entrenamiento train_factor 0.6576453 43.04095 Entrenamiento train_factor 0.6168767 44.42842
Testing test_factor 0.7328848 46.36512 Testing test_factor 0.717432 55.3639
Validación test 1.8546125 708.14469 Validación test 2.114484 242.23

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]

Aplicación de la técnica y resultados


Al igual que en RedesNeuronales, para la aplicación del algoritmo RandomForest se eligió a la variable
lgcount como variable a predecir y las demás variables como variables predictoras.

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

Ambiente Predicción RMSLE RMSE Ambiente Predicción RMSLE RMSE


Entrenamiento train_factor 0.3547386 22.25995 Entrenamiento train_factor 0.3554179 21.97197
Testing test_factor 0.6669191 37.54792 Testing test_factor 0.664628 36.7426
Validación test 2.1018264 190.80185 Validación test 1.0300281 164.94422

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]

Aplicación de la técnica y resultados


Al igual que en las dos técnicas anteriores, para la aplicación del algoritmo GradientBoosting se eligió a la
variable lgcount como variable a predecir y las demás variables como variables predictoras.

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

Ambiente Predicción RMSLE RMSE Ambiente Predicción RMSLE RMSE


Entrenamiento train_factor 0.4781048 32.89825 Entrenamiento train_factor 0.4314385 30.7997
Testing test_factor 0.6767209 40.71222 Testing test_factor 0.6679265 40.86703
Validación test 2.1198438 185.6748 Validación test 0.9353345 149.08761

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

4.2. Aplicación Modelo Predictivo mejorado Xgboost

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]

Aplicación de la técnica y resultados


Al igual que en Random Forest, Para la aplicación del algoritmo Xgboost [17] se eligió a la variable lgcount
como variable a predecir y las demás variables como variables predictoras.

xgb_ecobici_2015_2016 <- xgboost(


data = as.matrix(train[,c(13:71)]),
label = train[,c(72)],
eta = 0.01,
subsample = 0.7,
colsample_bytree = 0.4,
min_child_weight = vmin_child_weight,
max_depth = vmax_depth,
alpha = 0, lambda = 0.1, gamma = 0.01,
nround = 2000,
nthread = 3,
eval_metric = "rmse",
objective = "reg:linear",
verbose = 0 )
Algunas notas sobre los parámetros del algoritmo
Datos:
 data: Contiene los valores numéricos de las 60 variables predictoras
 label: Contiene la variable a predecir, lgcount

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

Luego se aplicó el modelo obtenido “xgb_ecobici_2015_2016” con los datasets de entrenamiento


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 21: Xgboost: RMSLE/RMSE 2016 Tabla 22: Xgboost: RMSLE/RMSE 2016

Ambiente Predicción RMSLE RMSE Ambiente Predicción RMSLE RMSE


Testing test_factor 0.7084018 46.59139 Testing test_factor 0.6218264 36.15422
Validación test 1.045666 161.3802 Validación test 0.9089478 139.6452

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.

Importancia de las variables


La librería de Xgboost tiene unas funciones que permitieron ver la importancia predictiva de las variables
usadas en el entrenamiento.

Tabla 23: Xgboost: Importancia de variables predictoras

# Variable Ganancia Cobertura Frecuencia


1 MesesOLD 0.363497578 0.105953473 0.108528163
2 Summer 0.065714764 0.015452514 0.013536604
3 4:00 AM 0.042933602 0.024034251 0.00643577
4 Humedad 0.04291168 0.069654432 0.120888116
5 5:00 AM 0.03779884 0.02341019 0.006405075
6 3:00 AM 0.037131956 0.021420768 0.006108354
7 Temperatura 0.035826041 0.053242069 0.099258198
8 HeatIndex 0.032350796 0.057541568 0.094745997
9 6:00 AM 0.022461427 0.020571367 0.005402364
10 Fall 0.022142544 0.01150364 0.018938968
11 2:00 AM 0.021790935 0.021285588 0.005934414
12 Marzo 0.021695577 0.007700705 0.006548319
13 Presion 0.01999615 0.065550307 0.107566378
14 DiaLaboralNo 0.01766243 0.016008299 0.030552003
15 Abril 0.017458839 0.018069142 0.008901622

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

5. Conclusiones finales, discusión y futuras mejoras

5.1.Conclusiones Análisis Exploratorio y estadístico:


El desarrollo del estudio permitió, por medio del análisis exploratorio y estadístico de las variables, probar
la conjetura inicial acerca de la posibilidad de encontrar relaciones entre la cantidad de viajes realizados
en el 2015-2016 y las condiciones meteorológicas. Si bien no se observa una alta correlación entre las
variables pudieron determinarse algunas relaciones entre ellas como:
 la cantidad de viajes y la hora del viaje según el análisis de componentes principales
 la cantidad alta y media de viajes no es un comportamiento común y está levemente relacionado con
una baja humedad, la primavera y el horario de la tarde, según el análisis de correspondencia

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).

5.2.Conclusiones Modelos Predictivos


El desarrollo de los modelos predictivos permitió encontrar que a medida que se agregaba más
información histórica del uso de las bicicletas del año 2015-2016, se obtenía una mejor predicción. De
hecho, esto se logró ver claramente con la importancia de las variables predictoras en el modelo de
Xgboost.

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:

1) Organizar cuadrillas de reparación de estaciones de bicicletas.


2) Distribuir una mayor cantidad de bicicletas en las estaciones los días que se esperaría un mayor
uso del sistema, sí se tiene disponibilidad.
3) Decidir sí sería necesario adquirir un mayor número de bicicletas en base a la demanda o sí sólo
sería necesaria una nueva redistribución

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ó:

Tabla 24: Discusión: Comparación de modelos similares con el presente trabajo

Referencia Modelos generados Mejor Modelo (RMSLE)


Yin et al. [19] (1) Ridge Regression Random Forest: 0.31.
(2) Support Vector Regression
(3) Random Forest
(4) Gradient Boosted Tree
Du et al. [20] (1) Basic Linear Regression CTree: 0.46
(2) Generalized Linear Models with Elastic Net Regularization
(3) Generalized Boosted Models
(4) Principal Component Regression
(5) Support Vector Regression
(6) Random Forest
(7) Conditional Inference Trees
Lee et al. [21] (1) Neural Network Neural Network: 0.49.
(2) Poisson Regression
(3) Markov Model
(4) Mean Value Benchmark
Patil et al. [22] (1) Random Forest Random Forest: 0.49
(2) Enhancing RM model using TuneRF
(3) Conditional Inference Trees
(4) Generalized Boosted
Presente trabajo (1) Neural Network Xgboost: 0.90
(2) Random Forest
(3) Gradient Boosting
(4) Xgboost
Wayne Liu [23] (1) Regression Kaggle leader board : 1.38378
(2) Generalized BoostedModels

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].

[11] M. Granados, «Modelos de regresión lineal múltiple,» de Documentos de Trabajo en Economía


Aplicada, España., Universidad de Granada, 2016, pp. 1,6.

[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].

[14] RandomForest, «RandomForest,» 08 Mayo 2013. [En línea]. Available:


http://randomforest2013.blogspot.com/2013/05/randomforest-definicion-random-forests.html.
[Último acceso: 01 Septiembre 2017].

[15] Colaboradores de Wikipedia, «Gradient boosting,» 2017, [En línea]. Available:


https://es.wikipedia.org/wiki/Gradient_boosting. [Ú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].

[17] T. H. [. c. M. B. V. K. Y. T. O. i. H. C. K. C. R. M. I. C. T. Z. M. L. J. X. M. L. Y. G. Y. L. X. c. [. Tianqi Chen,


«xgboost: Extreme Gradient Boosting,» 05 Enero 2017. [En línea]. Available: https://cran.r-
project.org/web/packages/xgboost/. [Ú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

También podría gustarte