Le Datalab RATP Smart Systems, la data au service de votre quotidien

Reconnaissance des modes de transport à l'aide de données GPS

Rédigé par Asma | 5 sept. 2023 15:23:17

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

Figure 1 : Geolocated points of a path to and from Paris.

1. Le jeu de données

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.

2. Caractéristiques techniques

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. 

3. Network data

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

Les figures 3 et 4 présentent respectivement les caractéristiques du réseau automobile et du réseau ferroviaire calculées pour le trajet de l'exemple. La taille d'un point géolocalisé indique la probabilité que ce point se trouve sur le réseau considéré.

4. Les modèles de Machine learning 

Pour ce cas d'utilisation, en tant que problème de classification, nous choisissons d'optimiser la perte logarithmique multinomiale. Après avoir comparé les algorithmes, nous avons sélectionné Xgboost, une bibliothèque de boosting populaire, comme étant la meilleure pour cet objectif. Le modèle est entraîné avec le sous-ensemble d'entraînement, puis validé sur le sous-ensemble de test. Ce modèle évalue, pour chaque point d'une trajectoire, la probabilité d'appartenir à chacun des 5 modes (bus, voiture, train, statique, marche).

À ce stade, nous avons prédit les modes de transport, mais lorsque nous visualisons la prédiction, nous constatons que certains problèmes se posent. En visualisant notre prédiction sur une carte, nous pouvons trouver un modèle commun d'erreur de classification : par exemple, nous pouvons voir sur la figure 5 des points isolés prédits comme "marche" mais situés entre deux segments continus de voiture.

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.

Figure 5 : présente les résultats de la reconnaissance des modes de transport sur le trajet exemple. Les couleurs bleue et bleu ciel représentent respectivement les modes "marche" et "voiture". La figure montre un schéma commun de mauvaise classification : certains points isolés sont prédits comme étant "marche" mais sont situés entre deux segments continus de voiture. Figure 6 : montre comment le modèle de prédiction Xgboost a été corrigé par le Réseau de Neurones Récurrent.

5. Conclusion

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