Application web Shapash

Il nous parut naturel d’apporter notre expertise à l’édifice construit par la MAIF et ses partenaires.

Contribuer au monde OpenSource en collaborant avec la MAIF sur leur outil Shapash était évident et marque de nombreuses années de collaboration entre la mutuelle et l’équipe dirigeante de SixFoisSept.

Notre expertise technique et projet acquise dans les développements du Cadran ont donc été mises à contribution pour optimiser l’interface Shapash.

Une application web, codée en Python Dash, est attachée à ce package pour permettre aux data scientist de comprendre rapidement leurs modèles en naviguant entre explicabilité globale et locale et  visualiser la contribution des différentes variables.

SixFoisSept a donc apporté son expertise Dash en contribuant à l’amélioration de l’application. Elle a ainsi a été optimisée et complétée avec l’ajout de graphiques ou de fonctionnalités détaillés ci-dessous : 

Responsive design

  • Amélioration du menu supérieur permettant une meilleure adaptation à l’écran (cf Figure 1).
  • Ajout de titres, sous-titres et titres d’axe qui s’adaptent à la taille de l’écran pour l’ensemble des graphiques (cf Figures 2, 3, 4 et 5).
  • Adaptation des étiquettes des graphiques en fonction de leur taille (cf Figures 2, 3 et 4).

Ajout de graphique ou fonctionnalités

  • Création d’un onglet contenant un nouveau graphique de prédiction (cf paragraphe « True Values Vs Predicted Values et les Figures 5 et 7).
  • Ajout de boutons d’explications et de fenêtres contextuelles. Shapash se voulant facile à prendre en main, ces boutons d’explications sont intuitifs et permettent aux utilisateurs de comprendre, en un clic, le fonctionnement de chaque graphique ou de l’utilisation des filtres (cf Figures 1 à 7).
  • Création d’un onglet permettant de faire des filtres sur le jeu de données (cf paragraphe Dataset Filters et la Figure 6).

Figure 1 : Application web Shapash sur les données de prix des maisons.

Shapash est une application Web qui comporte six parties, chacune interagissant pour faciliter l’exploration du modèle et des données.

  • Features Importance : Ce graphique montre à l’utilisateur la contribution de chaque variable. L’utilisateur peut cliquer sur chacune d’entre elles pour mettre à jour le graphique de contribution ci-dessous. Ici, nous avons cliqué sur la variable « building class ».

Figure 2 : Graphique de l’importance des variables.

  • Contribution plot : Ce graphique montre à l’utilisateur comment une variable influence la prédiction. Il peut afficher un graphique en point ou avec des violins de la dispersion de chaque contribution locale de la variable. L’utilisateur peut cliquer sur chaque point (ici la maison avec id=780) pour afficher le graphique d’explication local associé.

Figure 3 : Graphique de contribution.

  • Local explanation plot : Ce graphique permet à l’utilisateur de comprendre localement (à l’échelle d’une maison) quelles sont les variables qui contribuent le plus dans l’estimation du prix de cette maison (id=780).
  • Dataset : Cette table contient toutes les données du jeu de données des prix de maisons ainsi que les prix prédits par le modèle. L’utilisateur peut sélectionner une ligne de cette table pour observer, dans le graphique local, les variables qui contribuent le plus dans la prédiction du prix de la maison sélectionnée.
  • True Values Vs Predicted Values : Ce graphique en nuage de point permet à l’utilisateur de comparer les prix prédits aux prix réels des maisons. Cela lui permet d’observer facilement les données sur lesquelles le modèle n’est pas correct et de faire un focus sur ces données en les sélectionnant. 

Figure 5 : Graphique de prédiction avec sélection d’un sous-échantillon de taille 3.

Le graphique d’explication local sur la maison id=482 indique que c’est la première variable (ensemble des matériaux et finition de la maison) qui contribue le plus au prix de cette maison. Il est possible d’ajouter un filtre sur cette variable pour analyser les maisons ayant un niveau de finition élevé comme c’est le cas ici.

  • Dataset Filters : Il permet à l’utilisateur de sélectionner un sous-ensemble à l’aide de filtres et de concentrer son exploration sur celui-ci. C’est une approche complémentaire pour faire du picking et aider à mieux comprendre le modèle à l’aide d’exemples sélectionnés intelligemment par l’utilisateur.  Celui-ci peut ensuite se servir de l’ensemble des graphiques pour comparer son sous-échantillon à l’ensemble des données et comprendre comment le modèle fonctionne sur ce sous-échantillon.
Retour en haut