1 Introduction : la circulation à Paris

La ville de Paris rend publiquement accès à de nombreux jeux de données sur la circulation routière de la ville. La découverte du site web Paris Data (“Paris Data” visité le 26.12.2021) nous a motivé à utiliser cette ressource dans notre projet de prédiction. En voyant les données, nous avons développé l’idée de relier les différents capteurs dans une structure de graphe. D’une part, cela motive des études du réseau entier : peut-on construire un algorithme global, qui apprend les interactions dans le réseau entier ? D’autre part, l’étude de rues individuelles mène à des questions sur la corrélation locale de la circulation. Un grand boulevard se comporte-t-il comme ses avenues voisines ?

Dans une première partie, nous introduisons le jeu de données étudié dans notre projet. Nous expliquons notre démarche de création du jeu de données en détaillant les variables récoltées, leurs sources et la complétion de leurs valeurs manquantes. Une brève analyse descriptive sera également réalisée. Dans une seconde partie, nous réalisons la tâche de prédiction de notre projet. Après avoir introduit les problématiques, la métrique utilisée et les détails de notre stratégie de prédiction, nous rapportons les différentes méthodes utilisées et leurs résultats. Les modèles classiques sont passés en revue puis agrégés par une agrégation d’experts.

Matériel accompagnant ce document

Ce document est le rapport de notre projet de Machine Learning, il contient peu de code et encore moins de données. Pour accéder à ces ressources, nous recommandons de cloner notre repository sur github : https://github.com/jakobmaier-eu/paris-traffic-prediction.git . Dans le rapport, nous faisons parfois des références à ce code.

Par ailleurs, nous avons préparé un package qui contient les fonctions les plus utilisées dans nos calculs ainsi que les données que nous avons utilisées pour les prédictions. Il peut être installé à partir du fichier .tar.gz qui peut être téléchargé suivant ce lien One Drive : https://1drv.ms/u/s!AorCvx6dgh2IhIo6VoTCkoM5A-Cw5A?e=sdiFvV .

2 Préparer le jeu de données

2.1 Les données et leurs attribus

Sur le site Paris Data, on trouve énormément de jeux de données issus des activités de la ville, notamment sur le comptage routier (“Données Du Comptage Routier” visité le 26.12.2021). Ces données sont collectées en continu grâce à des boucles électromagnétiques implantées dans la chaussée sur plus de 3000 tronçons de voies. Ces boucles et bornes de comptage mesurent principalement deux choses: le nombre de voitures qui passent et l’occupation du tronçon de route. Disponibles de 2014 jusqu’à aujourd’hui, ces deux données sont mesurées au pas horaire, résultant en environ \[ 8 \text{ ans } \times 365 \text{ jours } \times 24 \text{ heures } \times 3000 \text{ capteurs } = 2.1\times10^8 \text{ observations dans le data set.} \]

Chacune de ces lignes contient les informations suivantes, qui serons nos variables explicatives \(X_i\). Les noms des variables que nous utilisons dans notre analyse sont écrits en gras tout au long de cet exposé.

  • Un timestamp t_1h indiquant date et heure de la mesure.
  • Le nombre de voitures ayant passé le point de comptage pendant une heure, noté q et renommé par nbCar.
  • Le taux d’occupation, correspondant au temps de présence de véhicules sur la boucle en pourcentage d’une heure, noté k et renommé par rateCar.
  • La variable etat_barre indique si la route où se trouve la borne de comptage est “barée,” etat_barre=2, ou “ouverte,” 1. Nous la renommons state. Malheureusement, cette variable a souvent la valeur “inconnu,” 0, ou “invalide,” 4. La différence entre 3 et 4 est un mystère et par conséquence nous nous servons peu de cette variable.
  • L’identifiant iu_ac de chaque borne. Chaque ligne contient de informations sur les compteurs adjacents.
  • Le libellé (libelle) du tronçon de rue où est placé le capteur, par exemple “Champs Elysées partie B.”

Les données historiques de circulation sont enregistrées sur le site web Paris Data sous le format .txt. Chaque fichier couvre toutes les bornes pour une semaine. Pour commencer, il faut donc télécharger les fichiers de toutes les semaines et les convertir en dataframes. Ce faisant, nous effectuons également un tri par identifiant de borne iu_ac.

2.2 Simplification et aggrégation

Au vue de la quantité énorme de 200 millions d’observations, nous sommes obligés de réduire la taille du dataset. La première démarche consiste à garder les variables intéressantes: t_1h, nbCar, rateCar et iu_ac.

Ayant réduit la dimension de chaque observation, la deuxième étape est la réduction du nombre de capteurs de comptage. Pour ce faire, nous utilisons un modèle simplifié des rues de Paris. Etant donné que les capteurs couvrent les grandes axes routiers, dont le périphérique, notre objectif était d’agréger les données selon ces grands axes. Afin d’identifier où passent le plus de voitures, nous calculons les moyennes de nbCar pour chaque libellé, c’est-à-dire les moyennes à travers le temps et pour toutes les bornes associées à chaque libellé. En prenant les 200 libellés dont le nombre de voitures est le plus grand (hors périphérique), nous obtenons le graphique 2.1 qui représente très bien les axes routiers auxquels on s’attendait.
Ensuite, nous ignorons les libellés et regardons exclusivement ce graphique. De manière arbitraire, nous en déduisons le graphe de la figure 2.2, un schéma très simplifié de la circulation à Paris. Grâce à notre démarche d’utiliser les rues les plus fréquentées, cette abstraction nous permet d’avoir un modèle représentatif de la circulation parisienne.