2 años de laboratorio de IA en Ruter — Parte 2

Dec 01 2022
Cómo nuestro centro de innovación ayuda a mejorar el transporte público Esta es la parte 2 de una serie de artículos sobre el laboratorio de IA en Ruter. En la primera iteración de AI-lab, los estudiantes debían encontrar una manera de ayudar al equipo de atención al cliente, ¡lea la parte 1 aquí! Para la iteración de 2021, se encargó a un nuevo grupo de cuatro estudiantes que intentaran predecir los retrasos en la enorme red de transporte de Ruter.

Cómo nuestro centro de innovación ayuda a mejorar el transporte público

Esta es la parte 2 de una serie de artículos sobre el laboratorio de IA en Ruter. En la primera iteración de AI-lab, los estudiantes debían encontrar una manera de ayudar al equipo de atención al cliente, ¡ lea la parte 1 aquí ! Para la iteración de 2021, se encargó a un nuevo grupo de cuatro estudiantes que intentaran predecir los retrasos en la enorme red de transporte de Ruter.

Foto: Ruter As / Redink, Thomas Haugersveen

2021 — Predicciones de movilidad y tiempo de viaje

Los retrasos son una carga para los viajeros que utilizan el transporte público. Los viajeros experimentan incertidumbres sobre si llegarán a tiempo. Un análisis interno de Ruter estima que los retrasos son entre 2,5 y 6 veces más onerosos para los viajeros que el tiempo real de viaje. Por lo tanto, se necesitan modelos para predecir con precisión estos retrasos en tiempo real, y el equipo de cuatro estudiantes se dispuso a utilizar modelos de aprendizaje automático para lograrlo.

El método actual para calcular la hora estimada de llegada utiliza un enfoque reactivo. Cuando se detecta un retraso en algún enlace, el resto de enlaces del viaje se ajustan por este retraso. Este método supone que un retraso en un enlace no se agrava para los enlaces descendentes, pero esto suele ser el caso si hay mucho tráfico o durante las horas pico. El objetivo del laboratorio de IA de 2021 era probar un enfoque basado en datos para predecir estos retrasos de forma proactiva utilizando ML. La solución tendría el potencial de:

  • Mejore la experiencia del usuario proporcionando información más precisa en las pantallas y aplicaciones
  • Proporcione a los usuarios información sobre los retrasos esperados al planificar su viaje
  • Facilitar la planificación dinámica de rutas

Esta lógica puede generar esporádicamente datos defectuosos que son difíciles de descubrir a menos que uno se sumerja en los datos y mire rutas o paradas de autobús específicas, lo cual es difícil cuando uno procesa millones de filas. Por lo tanto, se dedicó una cantidad significativa de tiempo a categorizar las paradas de autobús y las rutas con múltiples errores, y luego decidir si sería beneficioso simplemente eliminar estos puntos de datos de nuestro conjunto de datos para mejorar el rendimiento de nuestros modelos ML.

Todo el proceso que seguimos para resolver la tarea, desde la recopilación de datos hasta el análisis y determinación del mejor modelo de ML, se puede resumir en los siguientes pasos principales:

Principales pasos realizados para entrenar un predictor de tiempo de viaje

Recopilación de datos de bus:
antes de obtener los datos deseados, teníamos que obtener una descripción general del almacén de datos y las diferentes tablas que contenía. Los scripts se escribieron en SQL, obteniendo datos de una base de datos PostgreSQL.

Recopilación de datos externos:
para aumentar las capacidades predictivas de los futuros modelos de aprendizaje automático, queríamos agregar datos externos relevantes. Por lo tanto, los datos meteorológicos históricos y los datos de tráfico se obtuvieron de Internet y se fusionaron en nuestro conjunto de datos. Sin embargo, debido a una resolución aproximada de las estaciones de tráfico, entre otras cosas, estos datos tuvieron un impacto mínimo en nuestros modelos de aprendizaje automático.

Limpieza de datos:
los datos sin procesar no tenían un formato utilizable, y también contenían varios registros erróneos y viajes incompletos. La falta de datos y los duplicados también fueron problemáticos. Para manejar esto, se desarrolló un script de python que se basa en gran medida en la biblioteca de pandas . Este script fue el resultado de un proceso más largo de prueba y error con el cuaderno Jupyter y AWS Sagemaker.

Ingeniería de características:
Encontramos una correlación significativa entre el tiempo de viaje de un autobús en una ruta específica y el tiempo de viaje de un autobús que conducía la misma ruta antes. Inspirándonos en el análisis de series temporales, creamos varias características que pensamos que podrían ayudar al modelo, incluida la ruta que se estaba siguiendo, ya que la característica categórica parecía natural. Esto significó que el equipo se encontró con "La maldición de la dimensionalidad", ya que incluso nuestra pequeña selección de rutas de autobús contenía cientos de tramos diferentes entre dos paradas. En su lugar, se decidió incluir esta información usando diferentes promedios para diferentes tramos, al mismo tiempo que se evitaba una fuga de memoria en nuestro conjunto de datos, más específicamente asegurándose de que los promedios proporcionados como características no contuvieran datos que aparecieran después del punto de datos actual.

Entrenamiento de modelos de aprendizaje automático:
había mucha libertad asociada con la prueba de diferentes modelos de aprendizaje automático. Nos animaron a probar los dos modelos de aprendizaje automático que conocíamos de antemano y aprender nuevos modelos. Se utilizó un modelo de regresión lineal como línea base, y un extracto de los modelos que se probaron contra él son: "Regresión de cresta", "GAM", "Redes neuronales" y "Modelos de árbol potenciado". Los modelos de árbol potenciados, como XGBoost, arrojaron los mejores resultados, aunque la mejora con respecto al modelo de regresión lineal de referencia fue menor. Esto surgió de la gran correlación entre el tiempo de viaje y la característica "media de los últimos 10 tiempos de viaje para este enlace". Nuestras principales herramientas para esta parte fueron Amazon Sagemaker con python.

Comparaciones de rendimiento de diferentes modelos. Todos los modelos de ML funcionan mejor que los que se usan actualmente.

Predicción:
después de entrenar un modelo de aprendizaje automático, se puede guardar y usar para predecir tiempos de viaje para nuevos conjuntos de datos. Una continuación de nuestra tarea podría incluir la producción del modelo con una canalización que obtiene datos de bus, realiza la transformación de datos y alimenta los datos en el modelo. Luego, las predicciones podrían enviarse a la aplicación Ruter y a las pantallas de visualización.

Análisis del modelo ML:
después de la selección del modelo, profundizamos en los detalles de las predicciones y los residuos del modelo. Entre otros, queríamos saber cuánto mejor funcionaba este modelo que la solución actual, obtener una visualización del error para los diferentes enlaces de una ruta de autobús dada, encontrar dónde el modelo funcionaba mal y por qué. Las respuestas se visualizaron a través de diferentes tramas, y el análisis se convirtió en el evento principal de nuestra presentación al final del verano.

MAE para nuestro modelo y la solución actual para todos los enlaces de viaje en la ruta 110 hacia Oslo Bussterminal

Desde el verano de 2021, la lógica para estimar los retrasos se ha optimizado aún más, por lo que las comparaciones podrían verse diferentes hoy.

Para resumir el verano de 2021, éramos 4 estudiantes trabajando con la tarea: “Usar modelos de aprendizaje automático para predecir tiempos de viaje en tiempo real”. El verano concluyó con una presentación sobre nuevos descubrimientos, problemas, resultados y un análisis de los resultados. Nuestro trabajo con la recopilación de datos, la limpieza de datos, los resultados y la comprensión de los datos sentó las bases para que nosotros dos continuáramos como pasantes trabajando a tiempo parcial. Como pasantes que trabajan a tiempo parcial, algunas de las cosas que hicimos fue observar cómo funcionan los modelos de aprendizaje automático cuando omitimos características que involucran el pasado inmediato y la predicción en el futuro. La pasantía a tiempo parcial concluyó con un análisis de datos utilizando nuevas técnicas para registrar llegadas y salidas.

En 2022 tuvimos varios casos de uso interesantes para ML en el transporte público, ¡estén atentos a la parte 3 de la serie de artículos de AI-lab!

Escrito por Sindre Skaugset Olderkjær y Fredrik Wilhelm Butler Wang