AI for Secure Driving — Safe Driver App (Parte I)

¿Será posible saber si tendremos un accidente vehicular mientras manejamos? En esta primera parte nos centramos en el problema y nos acercamos a la solución

Isaac Arroyo
Saturdays.AI
8 min readNov 25, 2020

--

Photo by Markus Spiske on Unsplash

Introducción

¿Qué obtienes cuando reúnes a diferentes personas apasionadas por la tecnología queriendo adentrarse al mundo de la Inteligencia Artificial y que buscan ayudar a la sociedad? Un proyecto de impacto social. Agrega a esto diferentes perspectivas, habilidades y un objetivo en común: prevenir los accidentes de tráfico, obtendrás entonces Safe Driver.

En el siguiente artículo compartiremos los descubrimientos, enseñanzas y el proceso que pasamos durante la realización de este proyecto como producto final para la Primera Edición Remota de Saturdays.AI — LATAM, organizada por Saturdays.AI.

Equipo:

  • Cristina Higuera: Lic Tecnologías de Información, estudiante de Maestría en Informática Aplicada — (México)
  • Isaac Arroyo: Estudiante de último año de Ingeniería Física — (México)
  • Rosa Sunum: Bióloga, estudiante de Maestría en Estadística Aplicada — (Guatemala)
  • Marleny Juárez: Ingeniero en Computación. Desarrolladora de software — (México)
  • Alexander Saravia: Ingeniero en Electrónica, Automatización y Control; Estudiante de Maestría en Inteligencia Computacional y Cofundador de SunPlena Tech (IoT+AI) — (Ecuador)
  • Winter Alava: Estudiante del último año de Ingeniería Mecatrónica — (Ecuador)
Figura 2: Equipo Rosa — SaturdaysAI LATAM 2020

Todos nosotros estuvimos bajo la mentoría y apoyo de la Dra. en Ciencias y Científica de Datos Lea Vega Romero — (México)

Dra. Lea Vega Romero
Figura 3: Dra. Lea Vega Romero — Mentora del Equipo Rosa

¿Problema sin solución? No. ¿Un reto a resolver? Definitivamente

De acuerdo con la Organización Mundial de la Salud (OMS), cada año 1.4 millones de personas pierden la vida y 50 millones son lesionados debido a accidentes de tránsito¹. Los accidentes de tránsito en el 2016 fueron la octava causa de muertes en el mundo y se estima que hubo 18.2 personas fallecidas por cada 100 mil habitantes (F/100 M habitantes). Esto representa 3,700 muertes diarias.

A nivel mundial, alrededor del 50% de las muertes en accidentes de tránsito conciernen a usuarios vulnerables como peatones, ciclistas y motociclistas. De estos, los peatones y ciclistas representan el 26% y los motociclistas el 28%. Por otro lado, el 29% de las muertes en accidentes de tránsito están asociadas a ocupantes de automóviles. En el contexto regional, en América se evidencia una relación del 50% de actores vulnerables en accidentes de tránsito con proporciones de 23% motociclistas, 22% peatones y 3% ciclistas respectivamente².

Aunque los accidentes viales son de características multidimensionales y aleatorios, con uno o más usuarios fallando en un entorno vial común, el accidente, choque o colisión es el resultado de una cadena de eventos, que es única en sus condiciones y que vincula elementos comunes con las circunstancias del accidente³.

Es claro que necesitamos resolver esto, hay más que daño materiales, hay vidas en riesgo, pero …¿Qué podemos hacer al respecto? Definitivamente no podemos cambiar la manera de conducir de cada persona de Latinoamérica, y mucho menos del mundo; y la conducción autónoma de vehículos es un proyecto que otras empresas han estado trabajando. Algo que sí podemos hacer es ver que tienen en común todos estos accidentes, ¿hay algo que los cause? ¿será por temporada del año, del mes o del día? ¿Podremos resolver este problema con ayuda de algoritmos de Inteligencia Artificial? (Spoiler: Sí) Estas preguntas se pueden responder en el trayecto a la mejor solución.

Los datos: Búsqueda, exploración y selección

Para responder las preguntas antes mencionadas tuvimos que obtener datos, muchos datos de diferentes lugares, pero lo que te muestran en clase no es como lo que obtienes en la realidad.

Los datos en Latinoamérica.

Empezamos buscando información en diferentes bases de datos de cada uno de nuestros respectivos países, sin embargo nos topamos con una serie de obstáculos:

  • Falta de información geográfica. En distintos conjuntos de datos obtuvimos información de todo tipo, sin embargo, para los casos de México, Guatemala y Ecuador, no pudimos encontrar datos que tuvieran la ubicación geográfica (latitud y longitud), teníamos las regiones pero no los puntos exactos.
  • Uniformidad. En un conjunto de datos obtuvimos variables relevantes que en otros no pero hacían falta otras variables que otro conjunto de datos totalmente diferente tenía. No encontramos uniformidad en un data set.
  • Información de tipo de accidente. Uno de nuestros principales objetivos fue encontrar datos que nos digan el tipo de accidente y su gravedad, algo complicado de encontrar y cuantificar. Por las fuentes de información que encontramos no hallamos algo que se acerque.

Solución temporal: Una prueba de concepto

Optamos por manejar una prueba de concepto, con datos de otros lugares que cumplan con los requisitos que queríamos. Finalmente recurrimos a un conjunto de datos de los reportes de accidentes de tráfico de Estados Unidos (EE.UU.).

Conociendo los datos: Un poco del EDA (Exploratory Data Analysis)

Lugares problemáticos

Con ayuda de un HeatMap podemos observar los puntos más problemáticos de la ciudad. Es fácil notar que las principales avenidas es donde se han registrado un mayor número de accidentes.

Zonas donde se concentran la mayor cantidad de accidentes
Figura 4: Un HeatMap nos puede ayudar a encontrar las zonas donde se concentran la mayor cantidad de accidentes.

Tipos de categorías

El conjunto de datos con el que trabajamos era rico en variables categóricas, a continuación mostramos algunas de las más relevantes:

Figura 5: Variables categóricas y sus respectivas categorías

¿Qué hora es? Hora de manejar con cuidado

Es importante conocer cuál fue la hora más problemática, pero también conocer los tipos de reporte que se tuvieron a esa hora. En la siguiente gráfica se muestra la hora del accidente y el tipo de colisión que fue.

Distribución de accidentes en el día
Figura 6: Distribución de accidentes en el día

Podemos notar que la categoría Fatal Crash no se puede observar con claridad, así que se cuenta con la siguiente gráfica:

Figura 7: Distribución de accidentes en el día (Fatal Crash)

Con ayuda de estas gráficas pudimos darnos cuenta que las horas más problemáticas rondan en dos horarios: en la mañana, aproximadamente a las 8 o 9 de la mañana y en la tarde, alrededor de las 5 de la tarde.

Variables relevantes

No todos los datos son relevantes para un modelo de Machine Learning, por ello se seleccionaron aquellas más relevantes de acuerdo al EDA realizado y reduciendo el número de categorías de las variables (únicamente de las variables categóricas):

  • Variables espaciales: Latitude y Longitude
  • Variables categóricas: Weather, Vehichle Body Type, Vehicle Model, entre otras. A partir de la variable Injury Severity del dataset, creamos la variable binaria a predecir Probability of Accident con valores True y False, esta nos indica si hubo un accidente o no.

Buscando la mejor solución: Modelo para la predicción de accidentes

Parte de nuestra solución fue implementar un algoritmo de Machine Learning para solucionar la problemática, para ello se realizó una investigación del estado del arte de la problemática a resolver, en donde destacan los siguientes modelos por la naturaleza del problema:

  • Regresión Logística
  • Random Forest

Regresión Logística

Representación gráfica de la regresión logística con una Función Sigmoide
Figura 8: Representación gráfica de la regresión logística con una Función Sigmoide

La Regresión Logística es un método de regresión que permite estimar la probabilidad de una variable cualitativa binaria (presencia-ausencia / 1–0) en función de una variable cuantitativa (discreta o continua) o una combinación de variables cuantitativas y cualitativas.

Las variables cualitativas pueden recodificarse en una variable dummy⁴. El problema que resuelve la regresión logística es expresar la probabilidad de cierto desenlace (Y=1) en función de n variables X1, X2 … Xn las cuales pueden ser de cualquier naturaleza (continuas, discretas, dicotómicas, ordinales o nominales, aunque en este último caso han de manejarse a través de variables dummy)⁵.

Los resultados de la regresión logística permiten obtener una función logística de las variables independientes que permita clasificar un conjunto de eventos o individuos en una determinada clase. La función logística o sigmoide está definida de la siguiente manera:

Ecuación 1: Representación matemática de la Figura 8

Para valores de X muy grandes positivos, el valor de exp(-x) es aproximadamente 0 por lo que el valor de la función sigmoide es 1. Para valores X muy grandes negativos, el valor exp(-x) tiende a infinito por lo que el valor de la función sigmoide es 0. Sustituyendo x de la Ecuación 1, por la función lineal se obtiene:

Ecuación 2

En la interpretación, para que un modelo sea considerado adecuado, debe atribuir una alta probabilidad de obtener Y=1 al conjunto de características que efectivamente obtengan 1, y viceversa. El grado de ajuste de un modelo será mejor cuanto más aproxima a 1, es la verosimilitud⁵.

Random Forest

Photo by veeterzy on Unsplash

Random Forest es una técnica de aprendizaje automático supervisada basada en árboles de decisión. Su principal ventaja es que obtiene un mejor rendimiento de generalización para un rendimiento durante un entrenamiento similar. Esta mejora en la generalización la consigue compensando los errores de las predicciones de los distintos árboles de decisión. Para asegurarnos que los árboles sean distintos, lo que hacemos es que cada uno se entrena con una muestra aleatoria de los datos de entrenamiento. Esta estrategia se denomina bagging

Dado que un Random Forest es un conjunto de árboles de decisión, y los árboles son modelos no-paramétricos, los Random Forest tienen las mismas ventajas y desventajas de los modelos no-paramétricos. La ventaja es que pueden aprender cualquier correspondencia entre datos de entrada y resultado a predecir. La desventaja es que no son buenos extrapolando, porque no siguen un modelo conocido⁶.

En cuanto a la interpretación, existen dos enfoques. El primero es observar un solo árbol del Random Forest, el cual nos brinda mayor entendimiento de las decisiones tomadas para generar la predicción. Y el segundo, es evaluar la importancia relativa de las variables explicativas, cuyo resultado indica cuánto mejora la inclusión de determinada variable en la predicción del modelo⁷.

Con esto concluimos la Primera Parte del trayecto para la creación de Safe Driver: AI for All. Te invitamos a continuar leyendo “AI for Secure Driving — Safe Driver App (Parte II)”

Repositorio de GitHub

La Jupyter Notebook donde se puede encontrar el proceso se encuentra en el siguiente repositorio de GitHub

Referencias

[1] WHO. (2018). Global status report on road safety 2018. Génova: World Health Organization.

[2] Ospina-Mateus, H., y Quintana, A. (2019). Predicción de accidentes viales en Cartagena, Colombia, con árboles de decisión y reglas de asociación. Economía & Región, 13(2): 83–115.

[3] Montella, Alfonso., Aria, Massimo., D’Ambrosio, Antonio., y Mauriello, Filomena (2012), “Analysis of powered two-wheeler crashes in Italy by classification trees and rules discovery”, Accident Analysis and Prevention 49.

[4] Legendre, P. (2003). Numerical Ecology. The Netherlands: Elsevier Sciences.

[5] Epidat. (2014). Regresión Logística. 41 pp. Disponible en: https://www.sergas.es/Saude-publica/Documents/1898/Ayuda_Epidat4_Regresion_logistica_Octubre2014.pdf

[6] Martínez, J. (2020). Random Forest (Bosque Aleatorio): combinando árboles. Disponible en: https://www.iartificial.net/random-forest-bosque-aleatorio/

[7] Koehrsen, W. (2020). An Implementation and Explanation of the Random Forest in Python. Disponible en: https://towardsdatascience.com/an-implementation-and-explanation-of-the-random-forest-in-python-77bf308a9b76

--

--

Isaac Arroyo
Saturdays.AI

On a journey to be a Data Journalist | I love data visualization, the arts and social impact projects