Le projet

TSExplanation

TSExplanation s’inscrit dans le cadre de la formation en cycle ingénieur à l’INSA de Rennes. Il est réalisé par un groupe de huit étudiants de deuxième année du département Informatique et s’étend sur l’ensemble de l’année scolaire 2018-2019.

Les domaines abordés sont ceux du Machine Learning, et plus spécifiquement de la classification de séries temporelles.

Le résultat retourné par un classifieur ne comporte aucune explication. L'humain ne peut donc pas connaître les raisons pour lesquelles le classifieur a choisi ce résultat là. Une explication pourrait apporter de la confiance au classifieur.

Le but de ce projet est d’implémenter un outil capable d'expliquer une décision prise par un classifieur de séries temporelles. Cette explication doit être claire et relativement simple pour qu’elle soit comprise par un utilisateur quelconque.

Pour vulgariser cet objectif, on peut prendre l’exemple d’un classifieur qui décide, à partir d'électrocardiogrammes, si un patient présente une maladie cardiaque ou non.
Si un médecin utilise un tel classifieur, il voudrait avoir confiance en la décision prise par son outil. Pour cela, le médecin voudrait pouvoir demander à l'outil d'expliquer le choix de classification (le diagnostic de la maladie).

Les fonctionnalités

TSExplanation permet d'entraîner un classifieur à partir d'un ensemble d'entraînement constitué de séries temporelles annotées. L'outil permet également de sauvegarder un classifieur entraîné afin de l'utiliser ultérieurement sur de nouvelles données.

L'outil possède une interface graphique qui permet à l'utilisateur de visualiser les données (séries temporelles) qu'il cherche à classifier.
L'interface graphique de TSExplanation permet de sélectionner une série temporelle et une Shapelet particulière et de visualiser la distance entre ces deux éléments.
L'outil peut justifier un choix de classification grâce à son adaptation de l'algorithme LIME.


Entraîner et sauvegarder un classifieur de séries temporelles

Un problème de classification consiste à associer des classes à différentes données, le but étant de différencier ces données selon certains critères.
Un classifieur est un outil qui permet de résoudre ce genre de problèmes.

Dans un premier temps, un classifieur a besoin qu'on lui fournisse des exemples c'est à dire des données dont on connaît les classes. Ces données sont dites "annotées". On parle alors d'entraînement du classifieur.

Avec TSExplanation, il est possible d'entraîner un classifieur de séries temporelles et de le sauvegarder pour qu'il puisse être utilisé par la suite.
Deux types de classifieurs peuvent ainsi être construits : un classifieur basé sur l'algorithme 1NN-DTW et un classifieur basé sur Learning Shapelet. Pour entraîner ces deux types de classifieurs, l'utilisateur a la possibilité d'importer le jeu de séries temporelles d'entraînement via deux méthodes :

  • Importation via un fichier texte

  • Importation d'un jeu de données présent sur le site de l'UCR TimeSeriesClassification

  • Classifieur 1NN-DTW :
  • Lorsque l'on cherche à classifier une nouvelle série temporelle, le classifieur va comparer cette dernière avec les séries temporelles du jeu d'entraînement. Cette comparaison se fait en mesurant la distance entre la série temporelle que l'on veut classifier et chaque série temporelle du jeu d'entraînement.
    La série temporelle à classifier se verra attribuer la même classe que la série temporelle du jeu d'entraînement la plus proche d'elle (en terme de distance).

  • Classifieur Learning Shapelet :
  • Ce classifieur repose sur un algorithme plus complexe : Learning Shapelet.
    Cet algorithme se base sur des sous-séries temporelles caractéristiques de chaque classe. Pour qu'une sous-série temporelle soit caractéristique d'une classe, il faut qu'elle ne soit présente que dans les séries temporelles appartenant à cette classe et pas dans celles des autres classes.
    Ces sous-séries sont appelées des Shapelets.
    Ce sont ces Shapelets qui vont permettre la classification d'une nouvelle série temporelle.

Une fois un classifieur entraîné, l'utilisateur peut le sauvegarder dans un fichier afin de l'utiliser plus tard.



Afficher une série temporelle

Une série temporelle est une suite de valeurs mesurées au cours du temps durant une certaine durée. Cette durée peut varier ainsi que l'intervalle de temps entre chaque mesure.
Voici quelques exemples de séries temporelles :

  • Un électrocardiogramme,
  • Une évolution de population dans une zone précise pendant une durée précise,
  • Un relevé de température pendant une certaine durée.

De telles données peuvent être représentées sous forme graphique pour les rendre plus lisibles par un humain.

L'outil TSExplanation possède une interface graphique pour faciliter le travail de l'utilisateur. Ainsi, l'utilisateur a la possibilité d'afficher à l'écran n'importe quelle série temporelle sous forme de graphique.



Afficher la distance entre une Shapelet et une série temporelle

L'interface graphique de TSExplanation permet également à l'utilisateur d'afficher une série temporelle ainsi qu'une Shapelet quelconque et de visualiser la distance minimale entre ces deux éléments.

L'utilisateur peut ainsi connaître la partie de la série temporelle qui ressemble le plus à la Shapelet. Il peut alors déterminer par lui-même, visuellement, si la Shapelet peut être considérée comme étant présente dans la série temporelle ou non.



Classifier une série temporelle et afficher l'explication de la classification

Une fois un classifieur entraîné et sauvegardé, il est utilisé pour classifier de nouvelles séries temporelles. L'utilisateur va pouvoir importer un classifieur sauvegardé ainsi qu'une série temporelle à classifier.

TSExplanation va alors utiliser le classifieur importé pour classifier la série temporelle et va, par la suite, afficher le choix de classification et l'explication de ce choix. Cette explication sera générée par une adaptation de l'algorithme LIME : LIMEShape, un algorithme spécifique aux séries temporelles.

L'affichage de l'explication se fait sous forme graphique. Les parties de la série temporelle qui ont le plus contribué à la classification vont être mises en avant (coloriées en vert) tandis que celles qui auront le moins contibué seront coloriées en rouge.

Ainsi, l'utilisateur peut visualiser les différentes sous-séries qui ont permis à l'outil de faire son choix. De ce fait, l'utilisateur peut juger par lui-même la classification réalisée par TSExplanation et donc avoir confiance en son outil.

L'interface graphique

Les 4 onglets de l'image sont intéractifs, cela permet de mieux visualiser les fonctionnalités de TSExplanation.
Il est possible d'afficher un exemple d'explication dans l'onglet LIME en cliquant sur le bouton Exécuter.

Notre équipe



Notre équipe de 8 étudiants a été encadrée par Maël Guillemé, chercheur à l'IRISA et employé chez Energiency, et par Laurence Rozé, enseignante à l'INSA et chercheuse à l'IRISA.