2 ans d'IA-lab à Ruter — Partie 2

Dec 01 2022
Comment notre pôle d'innovation contribue à améliorer les transports publics Ceci est la deuxième partie d'une série d'articles sur le laboratoire d'intelligence artificielle de Ruter. Dans la première itération d'AI-lab, les étudiants devaient trouver un moyen d'aider l'équipe de support client, lisez la partie 1 ici ! Pour l'itération 2021, un nouveau groupe de quatre étudiants a été chargé d'essayer de prédire les retards sur l'immense réseau de transport de Ruter.

Comment notre pôle d'innovation contribue à améliorer les transports publics

Ceci est la partie 2 d'une série d'articles sur le laboratoire d'IA de Ruter. Dans la première itération d'AI-lab, les étudiants devaient trouver un moyen d'aider l'équipe de support client, lisez la partie 1 ici ! Pour l'itération 2021, un nouveau groupe de quatre étudiants a été chargé d'essayer de prédire les retards sur l'immense réseau de transport de Ruter.

Photo : Ruter As / Redink, Thomas Haugersveen

2021 — Prévision de la mobilité et des temps de trajet

Les retards sont un fardeau pour les voyageurs utilisant les transports en commun. Les voyageurs éprouvent des incertitudes quant à savoir s'ils arriveront à l'heure. Une analyse interne de Ruter estime que les retards sont 2,5 à 6 fois plus contraignants pour les voyageurs que le temps de trajet réel lui-même. Des modèles permettant de prédire avec précision ces retards en temps réel sont donc nécessaires, et l'équipe de quatre étudiants a décidé d'utiliser des modèles d'apprentissage automatique pour y parvenir.

La méthode actuelle de calcul de l'heure d'arrivée estimée utilise une approche réactive. Lorsqu'un retard est détecté sur une liaison, les autres liaisons du trajet sont ajustées par ce retard. Cette méthode suppose qu'un retard sur une liaison ne s'aggrave pas pour les liaisons en aval, mais c'est souvent le cas s'il y a beaucoup de trafic ou pendant les heures de pointe. L'objectif du laboratoire d'IA 2021 était d'essayer une approche basée sur les données pour prédire ces retards de manière proactive à l'aide de ML. La solution aurait le potentiel de :

  • Améliorez l'expérience utilisateur en fournissant des informations plus précises sur les écrans d'affichage et les applications
  • Donner aux utilisateurs des informations sur les retards prévus lors de la planification de leur voyage
  • Faciliter la planification d'itinéraire dynamique

Cette logique peut donner sporadiquement des données erronées difficiles à découvrir à moins de plonger dans les données et d'examiner des itinéraires ou des arrêts de bus spécifiques, ce qui est difficile lorsque l'on traite des millions de lignes. Un temps considérable a donc été consacré à catégoriser les arrêts de bus et les itinéraires avec de multiples erreurs, puis à décider s'il serait avantageux de simplement supprimer ces points de données de notre ensemble de données pour améliorer les performances de nos modèles ML.

L'ensemble du processus que nous avons suivi pour résoudre la tâche, de la collecte de données à l'analyse et à la détermination du meilleur modèle ML, peut être résumé dans les principales étapes suivantes :

Principales étapes réalisées pour entraîner un prédicteur de temps de parcours

Collecte des données du bus :
avant de récupérer les données souhaitées, nous devions avoir une vue d'ensemble de l'entrepôt de données et des différentes tables qu'il contenait. Les scripts ont été écrits en SQL, récupérant les données d'une base de données PostgreSQL.

Collecte de données externes :
pour augmenter les capacités prédictives des futurs modèles d'apprentissage automatique, nous voulions ajouter des données externes pertinentes. Les données météorologiques historiques et les données de trafic ont donc été récupérées sur Internet et fusionnées dans notre ensemble de données. Cependant, en raison d'une résolution grossière des stations de trafic, entre autres, ces données ont eu un impact minime sur nos modèles d'apprentissage automatique.

Nettoyage des données :
les données brutes n'étaient pas dans un format utilisable, tout en contenant également plusieurs enregistrements erronés et des voyages incomplets. Le manque de données et les doublons posaient également problème. Pour gérer cela, un script python s'appuyant fortement sur la bibliothèque pandas a été développé. Ce script est le résultat d'un processus plus long d'essais et d'erreurs à l'aide du bloc-notes Jupyter et d'AWS Sagemaker.

Ingénierie des fonctionnalités :
nous avons trouvé une corrélation significative entre le temps de trajet d'un bus sur un itinéraire spécifique et le temps de trajet d'un bus effectuant le même trajet plus tôt. En nous inspirant de l'analyse des séries chronologiques, nous avons créé plusieurs fonctionnalités qui, selon nous, pourraient aider le modèle, y compris l'itinéraire suivi, car la caractéristique catégorique semblait naturelle. Cela signifiait que l'équipe a rencontré "La malédiction de la dimensionnalité" car même notre petite sélection d'itinéraires de bus contenait des centaines de tronçons différents entre deux arrêts. Au lieu de cela, il a été décidé d'inclure ces informations en utilisant différentes moyennes pour différentes étendues, tout en évitant une fuite de mémoire dans notre ensemble de données, en s'assurant plus particulièrement que les moyennes fournies en tant qu'entités ne contiennent pas de données apparues plus tard que le point de données actuel.

Entraînement des modèles d'apprentissage automatique :
Il y avait beaucoup de liberté associée au test de différents modèles d'apprentissage automatique. Nous avons été encouragés à essayer les deux modèles d'apprentissage automatique que nous connaissions auparavant et à apprendre de nouveaux modèles. Un modèle de régression linéaire a été utilisé comme ligne de base, et un extrait des modèles qui ont été testés par rapport à celui-ci sont : « Régression de crête », « GAM », « Réseaux de neurones » et « Modèles d'arbres boostés ». Les modèles d'arbre boostés, tels que XGBoost, ont donné les meilleurs résultats, bien que l'amélioration par rapport au modèle de régression linéaire de base ait été mineure. Cela découlait de la forte corrélation entre le temps de trajet et la caractéristique « moyenne des 10 derniers temps de trajet pour ce lien ». Nos principaux outils pour cette partie étaient Amazon Sagemaker avec python.

Comparaisons de performances de différents modèles. Tous les modèles ML fonctionnent mieux que ce qui est actuellement utilisé aujourd'hui.

Prédiction :
après avoir formé un modèle d'apprentissage automatique, il peut être enregistré et utilisé pour prédire les temps de trajet pour de nouveaux ensembles de données. Une poursuite de notre mission pourrait inclure la production du modèle avec un pipeline qui récupère les données du bus, effectue la transformation des données et alimente les données dans le modèle. Les prédictions pourraient ensuite être envoyées à l'application Ruter et aux écrans d'affichage.

Analyse du modèle ML :
après la sélection du modèle, nous avons approfondi les détails des prédictions et des résidus du modèle. Entre autres, nous voulions savoir dans quelle mesure ce modèle fonctionnait mieux que la solution actuelle, obtenir une visualisation de l'erreur pour les différents liens d'un itinéraire de bus donné, trouver où le modèle fonctionnait mal et pourquoi. Les réponses ont été visualisées à travers différents tracés, et l'analyse est devenue l'événement principal de notre présentation à la fin de l'été.

MAE pour notre modèle et la solution actuelle pour toutes les liaisons de voyage sur la route 110 vers Oslo Bussterminal

Depuis l'été 2021, la logique d'estimation des retards a été encore optimisée, de sorte que les comparaisons pourraient sembler différentes aujourd'hui.

Pour résumer l'été 2021, nous étions 4 étudiants à travailler sur la tâche : "Utiliser des modèles d'apprentissage automatique pour prédire les temps de trajet en temps réel". L'été s'est terminé par une présentation sur les nouvelles découvertes, les problèmes, les résultats et une analyse des résultats. Notre travail de collecte de données, de nettoyage des données, de résultats et de compréhension des données a jeté les bases pour nous deux qui avons continué en tant que stagiaires à temps partiel. En tant que stagiaires travaillant à temps partiel, nous avons entre autres examiné les performances des modèles d'apprentissage automatique lorsque nous omettons des fonctionnalités impliquant le passé immédiat et des prévisions plus éloignées dans le futur. Le stage à temps partiel s'est conclu par une analyse des données à l'aide de nouvelles techniques d'enregistrement des arrivées et des départs.

En 2022, nous avons eu plusieurs cas d'utilisation intéressants pour le ML dans les transports publics, restez à l'écoute pour la partie 3 de la série d'articles AI-lab !

Écrit par Sindre Skaugset Olderkjær et Fredrik Wilhelm Butler Wang