Pour parler de la data preparation, quoi de mieux que de partir d’un constat. Dans le monde de la data, il y une règle que tout le monde connaît : 80% du temps d’un data scientist est passé à préparer ses données ; et seulement 20% à travailler vraiment dessus, notamment à travers ce qu’on appelle la datavisualisation. Dans cet article nous donnons un coup de projecteur sur la data preparation : les problèmes les plus souvent rencontrés, les outils et les tendances. En route pour de nouvelles dataventures !
Sommaire
- Introduction
- Data preparation : définition
- Les 5 étapes de la data preparation
- Les outils de data preparation
- Problèmes récurrents en data preparation
Introduction
Il ne vous aura pas échappé que les données sont partout et qu’elles constituent le moteur de l’innovation digitale. La multiplication des applications, la part grandissante d’Internet dans notre vie, la montée en puissance de l’IoT, sont autant de facteurs qui expliquent que des activités spécifiques se développent autour des données. Dans les services informatiques sont donc apparues de nouvelles fonctions : data engineer, data visualisation specialist, data scientist. Chacun intervient à différentes étapes du processus de valorisation des données. Mais tous ont un besoin commun : celui de données de qualité. C’est tout l’enjeu de la data preparation.
3 conseils pour le choix d’un outil de préparation des données (ETL)
- Choisissez un outil avec de nombreux connecteurs en entrée
- Il est important de disposer de nombreuses fonctionnalités pour transformer les données. Les ETL fonctionnent souvent avec des « boîtes » à connecter entre elles. Vérifiez donc que l’ETL que vous choisissez est très complet au niveau de ces boîtes.
- Les jointures sont particulièrement importantes. Privilégiez un outil qui dispose de plusieurs types de jointures. Une jointure avec fuzzy matching se révèle souvent très utile et doit faire partie des fonctionnalités offertes.
Data preparation : définition
Le terme « data preparation » (ou « préparation des données » en français) désigne les opérations qui sont effectuées sur des données brutes afin de les rendre analysables.
Souvent fastidieuse, la data preparation s’attache à importer les données, à en vérifier la consistance, à corriger les problèmes de qualité et au besoin à les enrichir par l’apport d’autres datasets. Chaque étape est importante et nécessite l’usage de fonctionnalités spécifiques, notamment au moment de la transformation des données.
data preparation = les opérations qui sont effectuées sur des données brutes afin de les rendre analysables
Les 5 étapes de la data preparation
Disons-le tout de suite, il n’y pas de « workflow » unique et je n’affirme pas présenter la vérité absolue en matière de préparation des données. Sur la base de mon expérience j’ai simplement essayé de regrouper les tâches récurrentes en étapes logiques. Qu’il y en ait 5, 6 ou 7 a au final peu d’importance. Ce qui compte c’est que vous compreniez le contenu de chaque opération.
Importation ou acquisition des données
La 1ère étape consiste à « acquérir » les données qui sont nécessaires au travail. Ces données peuvent venir de différents endroits, avoir différents formats. Il est donc important d’adopter un outil qui dispose de multiples connecteurs pour ne pas être bloqué. Si les fichiers plats constituent un des formats les plus courants, il ne faut certainement pas négliger des formats plus exotiques. Dans cet exemple de data preparation à partir de fichiers extraits de LinkedIn, des fichiers plats (au format csv) ont dû être préparés aux côtés de fichiers .har et json. En matière d’importation de données il faut être prêt à toutes les éventualités !
Découverte
La 2ème étape est assez excitante. Il s’agit de partir à la découverte des données, de les explorer. Le but à ce stade n’est pas d’analyser les corrélations mais plutôt de chercheurs les erreurs qui auraient pu se glisser ici et là. Il est important de repérer les champs vides et les formats de données. Une petite visualisation rapide est utile à cet effet car elle vous permettra tout de suite de voir si le format de données est le bon (essayez de faire un graphique si vos données sont stockées en texte). Lorsque j’utilise Anatella, j’apprécie de pouvoir en 1 clic avoir des statistiques descriptives des données. Cela permet de repérer tout de suite les catégories erronées, les valeurs aberrantes et surtout les « Null ». Profitez de l’étape de découverte des données pour effectuer quelques petits tests simples afin de détecter les problèmes moins évidents à corriger dans l’étape suivante. Utilisez par exemple des fonctions de tri pour détecter les doublons.
Nettoyage des données
Dans la 3ème étape de la data preparation (on dit aussi « data prep » pour faire pro), il faut organiser les données et les nettoyer. Ce que j’aime faire à ce stade c’est déjà de réorganiser et renommer les colonnes, d’éliminer celles qui sont redondantes quand c’est le cas. Cela vous permet d’avoir les prémisses d’un data model et la première pierre de votre diagramme UML. Ensuite vient le moment d’aller plus dans le détail. Lors de l’étape de découverte vous avez déjà pu corriger les problèmes de formats les plus évidents. Maintenant, il est temps de faire apparaître les problèmes les moins évidents. Je pense ici par exemple aux problèmes de doublons (déduplication), à la séparation des données. Le nettoyage des données peut également comporter une partie « transformation ». Vous pourriez, par exemple, détecter une catégorie de données qui doit être modifiée afin d’être exploitable). Dans le cas où votre jeu de données contiendrait des valeurs aberrantes, les opérations de transformation sont utiles pour pouvoir quand même exploiter vos précieuses données.
Enrichissement
L’enrichissement des données (qu’on appelle de plus en plus « data wrangling » ou « data munging ») consiste à « augmenter » votre dataset avec des données externes. Il vous faudra pour cela réaliser une jointure. Il existe différents types de jointures. Ce que j’apprécie avec une solution comme Anatella c’est la possibilité de choisir parmi de nombreux types de jointures. L’une d’entre elles est particulièrement unique puisqu’il s’agit d’une jointure de type « fuzzy matching ». Cette fonctionnalité est tellement unique que j’en ai même fait un article pour comparer les processus entre Anatella, Alteryx et Tableau Prep. Les jointures simples (lorsque toutes les données ont été nettoyées) peuvent être faites directement dans votre solution de data visualisation (voir ici notre guide de la dataviz). Il y a des avantages et des inconvénients à une telle pratique. En ce qui me concerne, je préfère préparer mes données dans un seul logiciel et une fois que le processus est fini commencer le travail d’analyse.
Publication
Une fois que tout est bien organisé, nettoyé et enrichi, il n’y a plus qu’à publier le dataset final. La plupart du temps les données seront simplement « poussées » soit en local, soit vers le Cloud. En fonction de l’utilisation que vous ferez des données après la data preparation, il peut être utile d’opter pour une exportation dans un format de données optimisé. Par exemple, si vous travaillez comme moi sous Tableau, il est recommandé d’exporter les fichiers au format .hyper. L’ETL que j’utilise (Anatella) était le premier à ma connaissance à disposer d’une sortie dans ce format.
Data preparation : les outils
Si certains développeurs hardcore préfèrent toujours tout faire à la main avec des lignes de code, j’ai depuis longtemps opté pour des solutions « no code » qui sont largement plus efficaces. En ce qui me concerne, je pratique Tableau Prep, Alteryx et Anatella. Mais certains ne jurent que par Talend, Azure Data Factory, Informatica Power Center. Vous l’aurez compris, les outils sont légion et c’est peut-être le problème. Il y en a tellement que le choix devient difficile.
Si vous êtes à la recherche d’une solution gratuite, je vous conseille Anatella, commercialisé par la société Timi. En ce qui me concerne, je suis un fan et j’apprends même à mon fils de 11 ans à s’en servir. Il fait quelques démos en vidéos sur des problèmes data divers et variés (séparation des données, déduplication).
Pour certains points spécifiques de la data preparation, des solutions alternatives existent. Par exemple, une jointure peut être réalisée dans un ETL ou bien directement dans la plupart des solutions de data visualisation. Le choix vous revient. Gardez en tête que si vous travaillez en groupe il est important de garder une seule version nettoyée des données (« One source of truth« ), ce pour quoi l’ETL est essentiel. Référez-vous au tableau ci-dessous pour voir les inconvénients de l’une et l’autre approche.
Avantages | Inconvénients | |
Jointure dans un logiciel de data preparation (ETL) | Vous pouvez gérer tous les aspects de la data preparation à un seul endroit. Le nettoyage des données en particulier n’est pas toujours possible dans un logiciel de data visualisation. Seules les opérations les plus simples sont possibles dans un logiciel de dataviz.
Seule approche possible si vous voulez maintenir « one source of truth« . |
Si vous avez fait une erreur (découverte dans le logiciel de visualisation), vous devrez rouvrir votre ETL et réexporter les données |
Jointure dans un logiciel de data visualisation | La facilité : vous faites la jointure et vous pouvez voir le résultat visualisé directement. Pas besoin, comme avec un logiciel ETL, d’exporter les données dans un format intermédiaire. | Impossible de faire des opérations de transformation complexes sur les données. Dans PowerBI ou Tableau vous pouvez modifier des formats de données, séparer des données qui sont dans une même colonne, mais ça ne va guère plus loin.
Le principe « One Source of Truth » ne peut pas être respecté puisque chacun fait son travail de son côté |
Qu’est-ce qu’un ETL (Extract – Transform – Load) ?
Un logiciel d’ETL, ou Extract-Transform-Load, permet de gérer tous les aspects de la data preparation :
- Extract : extraire les données à partir d’un fichier quel que soit son format
- Transform : nettoyer et transformer les données afin de les rendre utilisables
- Load : exporter les données et les charger dans un environnement où elles deviennent disponibles pour la prochaine étape de valorisation
Data preparation : problèmes récurrents
J’ai essayé de lister ci-dessous quelques-uns des problèmes les plus courants que vous serez amenés à rencontrer en matière de data preparation.
Problème | Description | Solution |
Doublons | Des données sont répétées dans le dataset qui risquent d’induire des erreurs d’analyses | Déduplication des données sur un ou plusieurs champs (voir cette vidéo) |
Jointure | Liaison de 2 ou plus jeux de données grâce à une « clé » de jointure. | Les ETL disposent généralement de plusieurs types de jointures. Anatella par exemple propose 6 types de jointure dont une en fuzzy matching bien utile. |
Différences d’orthographe | Les utilisateurs ont entré des données (nom, prénom, ville) de manières différentes ce qui rend impossible l’analyse. | Correction sur la base d’un dictionnaire ou en fuzzy matching (voir cet article pour plus d’information sur le fuzzy matching) |
Différences de format | Le problème le plus commun est l’utilisation du point pour la décimale dans le monde anglo-saxon au lieu de la virgule. | Adaptation des formats régionaux au moment de l’import des données ou adaptation par la suite. Dans les outils de BI il est possible d’indiquer le format régional lorsque les données sont importées. |
Chiffres stockés en texte | Erreur souvent due à la présence d’espaces ou autres signes qui empêchent la reconnaissance du format | Éliminer d’abord les signes qui « polluent » le champ (qu’ils soient visibles ou non) puis changer le format. Dans les outils de BI on peut utiliser la commande « scinder » (extraire dans PowerBI). Dans les ETL comme Anatella je conseille l’utilisation de la boîte « changeDataType » |
Différence d’encodage | « text encoding » qui change entre 2 fichiers qui doivent être traités dans un même process (Latin1/iso8859 et utf-8 par exemple). | Spécification de la méthode d’encodage au moment de l’import des donnés |
Espaces dans les cellules | Problème très courant mais difficile à détecter car l’espace peut ne pas être présent dans toutes les cellules | Suppression des espaces indésirables à l’import des données. Dans Anatella l’option « Trim » est activée par défaut à chaque importation de données |
Publié dans Data et IT.