L'un des défis de RATP Smart Systems est de construire une plateforme MaaS (Mobility As A Service). La mobilité en tant que service est l'intégration de différentes formes de services de transport dans une seule application. Pour répondre à la demande d'un client, un opérateur MaaS présente une gamme d'options de transport, qu'il s'agisse de transports publics, de covoiturage, de voitures ou de vélos partagés, de scooters, de kick-scooters, de marche à pied, de taxis ou de location de voitures ou de covoiturage, ou d'une combinaison de ces options. Pour l'utilisateur, le MaaS peut offrir une valeur ajoutée grâce à l'utilisation d'une application unique pour accéder à la mobilité, avec un canal de paiement unique au lieu de multiples opérations de billetterie et de paiement. Pour les utilisateurs, le MaaS devrait offrir la meilleure proposition de valeur, en les aidant à répondre à leurs besoins de mobilité et en facilitant les trajets multimodaux.
L'un des points essentiels est que la conception des applications MaaS doit s'appuyer sur des données. Vous ne pouvez proposer à un utilisateur la meilleure proposition de valeur que si vous personnalisez les résultats en fonction des préférences déduites.
Notre premier cas d'utilisation consiste à identifier les modes de transport d'un individu (bus, voiture, train, statique, marche) à partir de ses données de géolocalisation. Notre objectif est d'identifier les modes de transport utilisés par chaque individu tout au long de la journée, le moment des transitions entre les modes et le temps passé sur chaque mode. Pour ce cas particulier d'utilisation des données de géolocalisation, nous utilisons une approche basée sur l'empilement et l'assemblage.
En pratique, nous utilisons les données de mobilité quotidienne pour chaque individu et les spécificités des modes de transport (réseaux routier, de bus et ferroviaire). Les données de mobilité quotidienne consistent en des points géolocalisés (horodatage, latitude, longitude) enregistrés environ toutes les 2 secondes pour chaque individu (Figure 1).
A partir de ces données brutes, nous extrayons de nombreuses caractéristiques des déplacements (vitesse, gisement, accélération, distances aux réseaux, etc.)
Nous abordons cela comme un problème de classification supervisée d'apprentissage automatique. L'ensemble de données étiquetées est composé d'environ 200 trajectoires réparties sur 8 jours. L'ensemble de données brut est beaucoup plus important, mais nous avons encore du mal à étiqueter correctement ces données. Ces trajectoires sont un très petit sous-ensemble étiqueté manuellement par nous-mêmes.
Nous distinguons le transport en voiture, la marche, le bus et le train. Nous ajoutons une autre classe, "Statique", lorsque quelqu'un reste plusieurs heures au même endroit. Les séquences statiques sont souvent bruitées car la collecte de données GPS peut souvent donner des mesures erronées, car lorsque le téléphone est à l'intérieur, la réception GPS peut être défectueuse et les positions déduites peuvent être erronées.
Comme toujours dans les projets d'apprentissage automatique, l'une des premières étapes est les caractéristiques techniques et la transformation des données. Nous créons environ 180 caractéristiques à partir des données d'horodatage, de latitude et de longitude. Les données labellisées sont enrichies de 180 éléments caractérisant le mouvement.
Évidemment, l'un des points clés est que nous savons qu'une personne se déplaçant en voiture doit suivre une route tandis qu'une personne se déplaçant en métro doit suivre une voie ferrée. Nous voulons ajouter cette information grâce à des ensembles de données externes (c'est-à-dire la topologie des différents réseaux de transport)
Pour ce faire, nous utilisons les données d'OpenStreetMap pour les rues et les routes d'une région donnée. Pour les réseaux de transport (bus et rail), nous utilisons les données ouvertes fournies par les opérateurs de réseaux de transport public.
Pour résoudre ce problème de mauvaise classification, nous utilisons un deuxième algorithme de réseau neuronal qui lisse les prédictions erronées de xgboost. Nous entraînons un réseau neuronal récurrent sur la probabilité prédite par le premier algorithme xgboost. Avec cette méthode, couramment appelée "Stacking" (voir la compétition Data Science de Kaggle), nous améliorons certaines parties de nos points mal classés par Xgboost. La figure suivante montre comment le modèle de prédiction Xgboost a été corrigé par le réseau neuronal récurrent.
Pour résoudre ce problème de mauvaise classification, nous utilisons un deuxième algorithme de réseau neuronal qui lisse les prédictions erronées de xgboost. Nous entraînons un réseau neuronal récurrent sur la probabilité prédite par le premier algorithme xgboost. Avec cette méthode, couramment appelée "Stacking" (voir la compétition Data Science de Kaggle), nous améliorons certaines parties de nos points mal classés par Xgboost. La figure suivante montre comment le modèle de prédiction Xgboost a été corrigé par le réseau neuronal récurrent. Ce processus de correction garantit des résultats plus précis et fiables dans la reconnaissance des modes de transport. Grâce à l'utilisation de l'apprentissage en profondeur et de l'empilement des modèles, nous sommes en mesure d'optimiser les prédictions et de réduire les erreurs de classification. Cette approche innovante améliore la précision et la performance globale de notre système de reconnaissance des modes de transport, offrant ainsi une expérience utilisateur plus fluide et personnalisée.
La reconnaissance automatique du mode de transport est un défi permanent, mais les avantages potentiels justifient les efforts déployés pour le relever, et nous sommes ravis des résultats obtenus jusqu'à présent.
© Nikita Loukachev, Asma Ben Said, Remy Reche