Un glossaire : data scientist

En ces temps de bulle, un glossaire est absolument nécessaire. Dans le but d'éviter tant que faire se peut de raconter n'importe quoi, on vous parle ici de cette étrange créature qu'est le data scientist.

On va d'abord définir la data science

Un data scientist est un scientifique des données, littéralement, ou un spécialiste en science des données.

J’affirme, en accord avec Stéphane Mallat, que c’est une science à part entière, entre théorie et expérience, au croisement de trois domaines : les mathématiques, l'informatique et l'algorithmie. Avant les années 2010, on parlait plus généralement de statisticien ou d'expert en maths appliquées ... avant que les besoins de traitement de données massives nécessitent d'ajouter des compétences logicielles à ces profils. Un data scientist est un professionnel du traitement, de la manipulation et de la valorisation des données. Il maîtrise habituellement des outils informatiques comme Python ou R, ainsi que les bibliothèques mathématiques très spécialisées, qui lui permettent de mener des analyses complexes, longues et parfois hasardeuses.

Les termes suivants sont plus ou moins proches : data analyst, business intelligence, business analytics.

D'où viennent les data scientists ?

Dater l'apparition d'un mot ou d'une expression apporte des informations intéressantes. Si aujourd'hui, tout jeune, fraîchement diplômé d'une école d'ingénieur ou de fac, transforme ses deux, trois cours du trimestre autour de Matlab ou python en un titre de data scientist, ou data analyst pour les moins offensifs, la réalité du terrain est bien différente ! Ce qui compte, c'est la capacité de savoir transformer (presque) tous les jeux de données brutes en une source d'information et de connaissance ; et à ce jeu là, l'expérience compte. Bref : cette mode montre l'importance du phénomène. J'ai choisi, arbitrairement, de le dater de 2012, suite à l'article du Harvard Business Review, Data Scientist: The Sexiest Job of the 21st Century w. Rapprochons cet article de la création de la chaire de science des données au Collège de France, pour l'année 2017-2018.

Quelques outils, un peu en vrac

Un data scientist se sert de ce genre d'outils, qui sont principalement des bibliothèques ou des programmes.

Tensor Flow est un cadriciel (framework) libre permettant d'instancier et de paramétrer des réseaux de neurones. Il est créé en 2009 par Google, et la première version stable est publiée en 2015. Nous, on ne s'en sert pas, mais plein de gens s'en servent, comme de keras.

Nous, on préfère scikit-learn qui nous donne beaucoup de bonheur. C'est une collection libre d'outils et d'algorithmes d'apprentissage automatique développée par INRIA, avec une première version stable en 2010. On sert aussi beaucoup des bibliothèques python Numpy et scipy, collection de routines mathématiques, libres et disponbiles depuis 2006 et 2001. Certains statisticiens se servent de R, un langage de programmation libre spécialisé en statistiques, dont la première version date de 2000. On note un fort usage d'outils libres (open-source) par les data scientists, tout comme dans la communauté scientifique d'analyse de données expérimentales.

edit 2024 : il faudrait maintenant ajouter Jupiter et streamlit.

Un data scientist transforme les données brutes en informations pertinentes

La pertinence dépend du besoin métier : aide à la décision, connaissance client, étude des comportements, exploration de données, etc. Le travail est assez cadré et consiste principalement à écrire du code, corriger du code, admirer les résultats etc, puis être frustré de ne pas pouvoir optimiser les performances ou nettoyer le code.

Le travail classique d'un data scientist

La première étape est un rendez-vous avec une équipe métier (banque, assurance, industrie, commerce B2C etc) pour comprendre ce que le (futur) client attend de la data science. C'est à ce moment qu'on explique que l'IA forte n'existe pas, mais qu'il faut sécher tes larmes lapin, car l'IA faible existe. Elle est principalement constituée de programmes écrits sur-mesure, efficaces sur des points très précis et totalement idiots sur le reste. La seconde étape consiste à établir un périmètre de travail, puis d'identifier un besoin clair et le type de résultat attendu. On rentre souvent dans le dur, et c'est ici qu'on perd pas mal de clients potentiels.

La troisième étape est dédiée à la récupération des données brutes. Le contexte métier doit être spécifié, ainsi que le contexte d'acquisition des données. Il faut mettre au clair la signification des champs et catégories, les indicateurs de données manquantes et toutes autres informations utiles pour rattacher les tableaux de nombres ou textes sur lesquels le data scientist va travailler. Ensuite, dans un quatrième temps, on rentre dans les données et on les explore. A partir de ce moment, l'idée est de présenter des représentation adaptées, avec des graphes, des courbes etc.

La cinquième étape est cruciale. C'est la plus intéressante, et la plus technique. On va modélisation le problème au regard des attendus et des données. On rentre dans la cuisine scientifique et les recettes mathématiques. La sixième étape est dédiée à l'écriture des programmes proprement dits, et la résolution du problème posé. Ça marche rarement du premier coup, car la vie est trop injuste. On recule souvent de deux étapes, voire trois s'il faut ajouter de nouvelles données.

Si le résultat est acceptable techniquement, on rentre dans la septième étape. Le technicienc fait alors un gros effort de représentation et explique ses résultats au client. On recule souvent d'une à deux cases, car la vie est décidément trop injuste.

Vous noterez qu'on ne passe par notre temps à coder. Le gros du travail est souvent de comprendre ce que veut le client, le traduire correctement dans la modélisation puis comprendre pourquoi les résultats fournis par le code.

Un data scientist est un extracteur de valeur

Un genre d'extracteur de jus, mais humain. Et comme les extracteurs de jus, je recommande de ne s'en servir que si on est suffisamment motivé pour entrer dans un processus un peu long et parfois complexe. Oui, j'aimerais vivre dans un monde où les extracteurs de jus seraient simples à nettoyer.

Une autre façon de voir un data scientist est de le considérer comme une interface humaine à peu près compréhensible avec les algorithmes velus, incluant parfois des programmes d'apprentissage automatique (machine learning).

Choisir le bon outil

Si le processus peut être douloureux, les bénéfices sont tout de même intéressants. L’apprentissage automatique permet de ne pas avoir, par exemple, à modéliser un problème à partir de règles et laisser la machine les inférer toute seule. Ex: on a une liste de textes préalablement classés selon certains critères subjectifs et on aimerait reproduire ces résultats automatiquement sur de nouveaux textes, inconnus ? On fait appel à un classeur basé sur un algorithme d'apprentissage automatique supervisé. On doit classer des clients selon leur activité bancaire (VIP, à risques, classiques, prometteurs) ? On fait appel à un modèle mathématique un peu tordu et on lance un algorithme de regroupement (clustering) non-supervisé.

Certains cas ne font pas appel à des quantités astronomiques de données et demandent une modélisation poussée ainsi qu’une approche algorithmique complexe. Ex: un livreur doit acheminer des colis chez 30 personnes différentes ? On fait appel à une heuristique mathématique issue de l'analyse du problème du voyageur de commerce (w) pour résoudre ce problème en quelques minutes au lieu de quelques semaines, voire beaucoup plus. La résolution brutale (brute force) est en n!, avec comme taille de problème le nombre de points n. C’est rapidement énorme. Des versions un peu moins naïves donnent dans le n²2ⁿ, ce qui est tout de même rapidement assez problématique.

Ces outils sont très puissants et permettent de traiter efficacement de grosses quantités de données ou des problèmes complexes, en réduisant drastiquement les temps de traitement, avec toujours ce compromis nécessaire et permanent entre vitesse, performances et temps de développement.


Thomas