La Data Science Machin-Chouette, c’est quoi ce chambard ?

La data science c’est comme un match de foot.

Organiser une rencontre implique une multitude d’acteurs issus de milieux divers : des vendeurs pour la buvette, des cuistos pour tenir la baraque à frites, de la sécurité à cause des vendeurs de la buvette, des joueurs et un arbitre. Là où en Data Science on utilise l’informatique pour collecter et extraire des données, des mathématiques pour traiter cette donnée, de la communication pour présenter les résultats obtenus, etc.

A la seule différence qu’un match permet de se divertir où la Data Science sert à prendre de meilleurs décisions. 

Pour ce faire, l’équipe se compose :

D’un capitaine, le Data scientist. Il gère l’équipe de l’intérieur et est capable d’apporter son point de vue sur chacun des autres postes, de la programmation à l’algorithme.

De ce fait, le périmètre d’un data Scientist est large. Il est en mesure de comprendre les consignes de l’entraîneur, les faires appliquer, collecter/nettoyer/analyser et exploiter, modéliser les données en vue de dégager des tendances, développer des algorithmes, et partage le résultat de ce travail à travers un compte rendu.

Il y a toutefois une différence entre comprendre les tenants et aboutissants de chaque joueur et être capable d’apporter la même expertise sur chaque poste que le spécialiste. Son rôle requiert une prise de recul et a fortiori une bonne connaissance du contexte client.

A la différence de son entraîneur -ak client- le Data Scientist possède un profil technique. Son domaine d’expertise s’étend des langages de programmations (SQL et/ou R) au langage permettant de communiquer avec la base de données (SQL et/ou NoSQL), des statistiques (regression, properties of distributions, statistical tests and proper usage, etc.) au data mining en passant par le machine learning (clustering, decision tree learning, artificial neural networks, etc.), des outils en vogue (Hadoop, Spark, etc.), data architectures à la communication écrite comme orale, etc.

Quant au Data Analyst, il est caractérisé par l’analyse et nettoyer des données ainsi que la présentation de compte rendu et visuels des enseignements tirés. Ce qui sous-entend d’être en mesure de formaliser au préalable le problème à résoudre, si ce n’est pas déjà fait. C’est important car c’est à ce moment qu’on détermine le niveau de précision qui est attendu. 

Les données peuvent résultées d’un traitement ou être prêtes à être traitées. En fonction de cet état, on sera en mesure de prédire des tedances et probabilités futures et ainsi prévoir des solutions, recommandations des actions à mettre en place par rapport à la problématique de départ. 

Pour enfin extraire les métriques les plus importantes et de les présenter de manière pertinente. Ce travail simplifie et rend visuelle la donnée. Par exemple dans un match de foot quand on nous montre des statistiques. On extrait des données et les montres.

Le joueur qui écrit des requêtes complexes et s’assure de la bonne gestion des systèmes,est la propriété du Data Engineer

Ce gardien des données gère les base de données (collecte, stockage, exploitation et analyse des données), leur interprétation (units of measurement, missing values, data and times), son formatage et ce qu’on en fait ainsi que les pipelines et les process. Les bases de données et systèmes doivent être en mesure de monter en charge. 

Ses compétences s’articulent autour de langages de programmation (Python et/ou R), langage de requêtes (SQL et/ou NoSQL), ETL, Hadoop

Enfin, le Machine-learning engineer s’occupe des technologies et librairies utilisées pour le machine learning (modèles et algorithmes). S’assure que le code est efficace (maintenable, scalable et debuggable). Développe des process pour surveiller, interagir et construire des systèmes ainsi que des algorithmes.

Son travail permet de prédire la tendance ou le résultat. 

Il possède de bonnes connaissances en Informatique pour être capable de prendre des décisions stratégiques. Sans délaisser les statistiques et probabilités.

Une fois l’équipe constituée, vient le moment de définir un projet de jeu. A quoi ressemble un projet en Data Science ?

Premièrement, définir le problème. Utiliser des questions : Comment faire des économies pour cette gamme de produit ? Comment obtenir de nouveaux clients ? Qui recommander aux partenaires ? En vue de constituer des équipes, qui a les mêmes centres d’intérêt ? Quels sont les meilleurs clients ? Pourquoi mon collègue gagne plus ? Quand demander une augmentation ? Quelles sont les vidéos qui plaisent le plus sur mon blog ?

Quoi, qui, où, quand, comment, combien, pourquoi, ces questions permettent de recueillir et soulever un maxi d’informations sur la situation et ainsi définir le périmètre.

Partir d’une question un peu trop vague est une erreur. Cette première étape n’est pas à négliger parce qu’il arrive qu’on veuille utiliser les données par buzz.

Deuxièmement, collecter les données dont on a besoin (c’est pourquoi il est crucial de correctement identifier le problème). Puis trouver une manière de récupérer ces données (APIs, DB, scrapping, file export, etc.). A ce niveau il est nécessaire d’être en mesure d’exécuter des requêtes SQL malgré l’émergence du NoSQL et Hapoop.

Troisièmement, explorer/analyser/nettoyer les données. L’idée étant de rendre ces données lisibiles et ce sans efforts. Commencer à identifier le bruit dans la donnée, ce qui pourrait induire en erreur.

Par préparer les données par le nettoyage, on entend  supprimer les valeurs dupliquées, les NaN values, les valeurs sans importances, les valeurs non conformes au format et transformer/homogénéiser (avec Talend ou informatica par exemple) pour structurer la donnée en vue de construires des modèles.

La solution Hadoop permet de gérer des quantités importantes de données avec des possibilités d’explorer, filter, retravailler, visualiser les données, etc. Dans le même ordre d’idée Spark est plus performant en terme de vitesse d’exécution (l’un travaille directement sur le disque mémoire où la donnée se trouve tandis que l’autre utilise du cache pour ses calculs) et est très utilisé dans le monde.

Essayer de comprendre la donnée c’est recherche des pattern, des tendances, les relations. Sélectionner les variables et indicateurs clés.

Ensuite, on en arrive à un point où, pour trouver des réponses aux questions, on applique des outils statistiques et mathématiques sur les données prêtes à être utilisées. 

Pour aller plus loin, il paraît évident d’étendre ses connaissances sur les techniques de machines learning et algos (KNN, decision, naive bayes).

Evaluer ce qu’on obtient n’est pas tâche aisée. Il s’agit de trouver la bonne métrique compte tenu du modèle, ce en fonction du type de problème. 

Enfin, il est venu le temps de communiquer les résultats. Faire simple, concis et clair. Des outils sont fait pour ça tel que Tableau, MatplotlibPower BI, etc.

Le storytelling en outre permet de rendre la communication plus vivante et dynamique. Car c’est difficile d’expliquer simplement un résultat complexe.