Data preparation : définition, exemples, conseils
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% à exploiter les données, notamment à les visualiser. 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
- i. Introduction
- ii. Data preparation : définition
- iii. Les 5 étapes de la data preparation
- iv. Les outils de data preparation
- v. Problèmes récurrents en data preparation
i. 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.
Trois 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 de Transformation (« T »).
- 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.
ii. 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.
La data preparation s’attache à importer les données, à en vérifier la consistance, à corriger les problèmes de qualité et ensuite à enrichir les données par l’apport d’autres datasets. Ensuite, si on veut faire du machine learning, on normalisera les données et on créera des « features ». Si on veut faire des dashboards, on calculera des KPI’s.
Chaque étape est importante et nécessite l’usage de fonctionnalités spécifiques 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
iii. 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 .JSON) ont dû être préparés aux côtés de simples fichiers .CSV. 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 avoir de pouvoir en 1 clic 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 (data cleaning)
Dans la 3ème étape de la data préparation (on dit aussi “data prep” pour faire pro), il faut organiser les données et les nettoyer. On appelle ce processus de “netoyage” de plus en plus “data wrangling” ou “data munging”. 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 consiste à “augmenter” votre dataset avec des données externes. Il vous faudra pour cela réaliser des jointures. 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 aussi être faites 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 (càd dans le logiciel de data preparation) et une fois que le processus est fini commencer le travail d’analyse. Nous reviendrons avec plus de détails sur ce sujet ci-après.
C’est aussi lors de cette étape qu’on développera les règle complexes pour pour calculer les KPI’s (pour faire des dashboards) ou qu’on normalisera les données (pour faire du machine learning).
Publication
Une fois que tout est bien organisé, nettoyé, enrichi et normalisé 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. Anatella permet aussi de travailler très facilement avec PowerBI dans le cloud (voici une vidéo très sympa à ce sujet).
iv. 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 surtout Anatella. Mais certains ne jurent que par Tableau Prep, Alteryx, Informatica Power Center, Talend, Azure Data Factory. 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 ou très performante, 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 « de référence » des données (“One source of truth“), ce pour quoi l’outil de data praparation 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) ?
Les logiciels d’ETL, ou Extract-Transform-Load, sont les ancêtres des logiciels de data preparation. L’acronyme ETL signifie :
- 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
En 2020, la grande majorité des ETL se consacrent uniquement à faire les opérations « E » et « L » (Extract et Load) et laissent de côté le côté « T » (transformation). Les outils adaptés pour faire des Transformations (« T ») sur les données sont les outils de data preparation. Vous trouverez plus de détails sur l’historique des outils de ETL et leur évolutipon vers les outils de data preparation sur cette page.
v. 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. Par exemple, on tente d’importer des clients déjà existants. | Déduplication des données sur un ou plusieurs champs (voir cette vidéo) |
Jointure et Enrichissement | 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 7 types de jointure dont: une jointure en fuzzy matching bien utile, une jointure sur des coordonnées géographiques. |
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 |
Pivoter | Lors de l’importation d’une table de données, des données présentes sur plusieurs lignes doivent être regroupées sur une seul ligne (et inversément: on devra parfois mettre sur plusieurs lignes des données présentes sur une seule ligne) | Dans Anatella, on fera ça en quelques clicks avec les boites « flatten » et « unflatten » |
Source: IntoTheMind
Plus d’infos sur Anatella ici.
Téléchargez gratuitement Anatella (dans la Suite TIMi) ici.