Article 3 : Vélib’ & Cortana Analytics – Troisième partie


 

1 – Introduction

 

Didier Simon, Émilie Beau, Mathias Ekizian, Romain Casteres, et moi-même, ingénieurs au sein de l’équipe SQL/BI de Microsoft Customer Support Services, avons mis en œuvre un projet interne d’analyse en temps réel des stations Vélib parisiennes via la suite Cortana Analytics.

Dans ce troisième article qui fait suite aux deux premiers dont vous trouverez les liens ci-dessous, je vous propose de vous présenter en détail le modèle d’analyse prédictive que l’on a conçu pour cette solution.

Si vous n’avez pas lu le premier article, rendez-vous ici : Vélib’ & Cortana Analytics –Première partie.

Si vous n’avez pas lu vers le deuxième article, rendez-vous ici : Vélib & Cortana Analytics – Deuxième partie.

 

2 – Présentation du projet

 

Vélib est un service public à grande échelle de location de vélos sur la région parisienne.

Lancé le 15 juillet 2007, ce service propose aujourd’hui environ 14 500 vélos et 1230 stations sur Paris.

Grâce à la suite Azure Cortana Analytics Suite, nous allons mettre en place une solution d’analyse des données de ces Vélib’ de façon à répondre à 2 problématiques :

  • Obtenir une analyse descriptive en temps réel du réseau Vélib’
  • Mettre à disposition une analyse prédictive permettant de prédire la disponibilité du nombre de vélos et d’emplacements disponibles pour une station donnée.

 

Voici l’architecture que nous avons mise en œuvre pour cette solution :

 

ArchitectureVelibCortana

 

3 – Contexte

 

Le problème a été abordé de la façon suivante, l’état du réseau Vélib’ à l’instant  et en prenant en compte l’aspect temporel, notre objectif est de prédire chaque heure, le nombre de vélos disponibles dans chaque station aux instants   sur un intervalle de 15 minutes.

Cette approche est ainsi connue en anglais sous le nom de « Multi step ahead time series prediction ».

 

4 – Exploration des données

 

4.1 – Jeu de données

Le jeu de données est constitué des attributs suivants :

dataset

La variable dépendante, que l’on va chercher à prédire est « Availablebikes ».

La variable « Bikestands » sera à posteriori utilisée par le modèle final pour classifier les stations selon 4 critères :

  • Vide
  • Pleine
  • Quasi-pleine : Moins de 3 emplacements disponibles
  • Quasi-vide : Moins de 3 vélos à disposition
  • Disponible

Le code R ci-dessous exécuter dans le modèle prédictif sur Azure Machine Learning illustre cette classification.

Comme vous pouvez le voir, on définit également les intervalles de confiance  à 0.95 de la régression.

 

R code

 

Voici une carte du 15ème démontrant le résultat final

prediction map

4.2 – Exploration des données

 

Nous avons choisi de travailler sur chacune des stations de manière indépendante, car lorsque l’on explore les séries chronologiques, on constate que leur comportement varie d’une station à l’autre.

La figure ci-dessous résume assez bien cette variation en illustrant la décomposition STL “Seasonal and Trend decomposition using Loess”  des séries temporelles de quatre stations choisies aléatoirement.

decomposition

 

Afin d’analyser le comportement des stations au sein d’un même arrondissement, nous avons effectué du clustering afin de regrouper les stations ayant le même comportement temporel en groupes homogènes.

L’approche employée consiste à appliquer dans un premier temps  une transformée en ondelettes discrètes (DWT) aux séries temporelles. Ensuite nous avons calculé la mesure de similarité entre les coefficients d’ondelettes avec la distance euclidienne.

La transformée en ondelette nous permet ainsi de réduire chaque série temporelle à un vecteur de coefficients tout en capturant les tendances à long terme (dynamique structurelle) et les détails dans le domaine fréquentiel qui contiennent de l’information plus précise qui se trouve être cachée dans chaque série temporelle.

Le nombre de coefficients d’ondelettes retenu ainsi que le facteur d’échelle sélectionné  sont décrit dans le rapport suivant Zhang H, Ho TB, Zhang Y, Lin MS (2006)

Voici l’implémentation en R utilisé : Package R TSclust

Les dendrogrammes ci-dessous illustrent cette analyse de regroupement pour 9ème  et 6ème  arrondissements.

dendrogram

 

 

 

 

dendro 9

 

5 – Approche

 

Nous allons maintenant voir un peu plus en détail la conception du modèle.

Voici une overview qui explique de manière simple notre approche et dont les éléments sont détaillés juste après :

diagram

 

5.1 – Caractéristiques statistiques

 

Les caractéristiques statistiques ont pour objectif de décrire les propriétés numériques de chaque station calculée sur une fenêtre temporelle d’une heure.

 

 

5.2 – Caractéristiques temporelles

 

1 – Les caractéristiques temporelles sont-elles calculées sur une heure pour chaque station :

2 – Nous calculons ensuite pour chaque station la première et la seconde dérivée sur une série temporelle des deux derniers mois. L’objectif étant de capturer la vitesse instantanée de variation pour chacune des stations ainsi que l’accélération de cette variation par rapport au temps.

 

 

5.3 – Méthode d’apprentissage

 

Pour l’apprentissage, nous avons opté pour un algorithme de type ensemble, non paramétrique : Forêt d’arbres décisionnels.

Pour plus d’information, je vous propose de lire l’article suivant https://msdn.microsoft.com/fr-fr/library/azure/dn905862.aspx

Le réglage des hyperparamètres est effectué par validation croisée.

 

5.4  – Industrialisation

 

L’un des gros points forts d’Azure Machine Learning, c’est qu’il permet d’effectuer très simplement le déploiement d’un modèle prédictif grâce à la mise à disposition de points d’accès « end point » au travers d’un service Web.

L’invocation du modèle comme son réentraînement est ordonnancé par le service Azure Data Factory .

Pour en savoir plus, je vous invite à lire la deuxième partie de la série, rédigé par Romain.

 

 

6 – Performance

 

Les résultats obtenus sont illustrés par les mesures d’évaluation suivantes, MAE et RMSE.  Ces indicateurs sont calculés sur les données du jour J+1.

 

Voici un rapport Power BI avec la RMSE par arrondissement, tranche horaire et date.

RMSE

 

Voici la  et la  MAE du mois dernier interrogé « vocalement » à partir de l’assistant Cortana !

cortana mae, rmse

7 – Conclusion

 

Dans cet article, vous avez découvert la méthodologie employée pour l’analyse du jeu des données, le type des caractéristiques extraites, l’algorithme choisi pour l’entrainement du modèle et enfin le résultat d’évaluation des performances de celui-ci.

Nous réalisons actuellement des vidéos sur la mise en place des différentes briques présentées dans ces articles qui seront publiés sur le site Microsoft Virtual Academy.

De plus, Émilie et Romain seront présents au prochain SQL Saturday Paris 2016 du samedi 25 juin 2016, alors n’hésitez pas à les retrouver pour en savoir plus !

Et pour conclure cette série d’articles, voici le tableau de bord de la solution dans Power BI et un rapport à partir de Cortana.

rapport cortana

dashboard

Comments (0)