Le nettoyage de données : 10 trucs à faire

On imagine souvent la Data Science comme le développement d’algos pour trouves des réponses à des questions grâce à un tas de données. Ça paraît simple et surtout c’est sexy.

La réalité est autrement moins glamour. On peut passer la moitié de notre temps (si ce n’est plus) au nettoyage de données avant de faire quoi que ce soit. Car si les données, qui représente les briques élémentaires, sont faussées alors les résultats ne seront pas fiables. C’est pourquoi il est primordial de veiller à ce que cette base de travail qu’est le nettoyage de données soit rigoureux.

Pour ce faire j’utilise une procédure pour minimiser le risque d’oublier des choses.

La voici :

Faire un résumé statistique

Grâce à des méthodes comme la moyenne, l’écart type, les quantiles, etc. L’objectif est d’identifier des valeurs bizarroïdes.

Visualiser les données

Visualiser les données dans un graphe. Par exemple ce graphe :

Il indique la répartition par sexe en 2019. On sait que les hommes représentent 42% et les femmes 56%. Jusque là tout va bien. Sauf que son total n’est pas égal à 100% !

Comme on dit dans le jargon, il y a probablement une couille dans le jeu de données !

Valider les données

Les données sont-elles au bon format ?

Par exemple, est-ce que les prix sont des données numériques ?

Les plages de valeurs sont-elles respectées ?

Par exemple, une pointure doit être comprise entre [25 et 48] (à une pointure près).

Les valeurs obligatoires sont-elles renseignées ?

Par exemple, un énergumène peut être identifié par son adresse mail. Auquel cas la colonne des mails ne peut pas être vide.

Dans le même ordre d’idée, les valeurs sous contrainte d’unicité sont-elles uniques ?

Par exemple, il y a des systèmes où deux utilisateurs ne peuvent pas utiliser le même mail.

Qu’en est-il des valeurs qui peuvent prendre que des valeurs particulières ?

Par exemple, les énumérations.

Et les liaisons entre les valeurs existent-elles toujours ?

C’est-à-dire les relations clé étrangère/clé primaire

Enfin, les patterns sont-ils respectés ?

Par exemple, une adresse mail doit contenir un @, un numéro de téléphone ou un code postal doit contenir N chiffres.

Vérifier la précision

C’est-à-dire le degré d’exactitude.

Par exemple, il y a une différence entre connaître le pays et connaître la rue.

Vérifier la pertinence

Par exemple, ça n’a pas beaucoup d’intérêt de savoir les numéros de téléphone de footeux, si tu veux analyser leur salaire. Du moins a priori.

Identifier les dupliquées

Ça arrive bien plus souvent qu’on ne l’imagine.

Par exemple, à cause d’un backend qui n’effectue pas cette vérification ou le regroupement de plusieurs sources de données.

Les erreurs de syntaxes

Retirer les espace en début et en fin de chaîne de caractères, retirer le code html, retirer les smileys, etc.

Les erreurs de typo

Une astuce est d’utiliser un bar plot pour visualiser l’ensemble des valeurs. Un bar plot ressemble à ça :

Ensuite on doit pouvoir facilement corriger via du matching ou en utilisant une expression régulière, si nécessaire.

Standardiser

Pour n’avoir qu’une unité de mesure.

Par exemple, que toutes les chaînes de caractères soient en minuscules ou majuscules. Le poids peut être enregistré en kilos. La date peut suivre le format américain. Même schmiblick pour la monnaie.

Mettre à l’échelle

En vue de comparer les valeurs.

Par exemple, en fonction de l’école, le système de notation diffère. On note sur 10, on note sur 20, on note sur 100 … Avoir une échelle unique permet de comparer ces notes entre-elles.

Supprimer

Attention à ne pas forcément supprimer les colonnes lorsqu’il manque des valeurs. Ou que celles-ci sont aberrantes

Quand tu supprimes une valeur, tu supprimes une information. Et L’absence d’information est une information

Si la suppression représente 10% ou plus des données alors il faut se poser la question avant de faire quoi que ce soit.

Une astuce peut être de catégoriser les valeurs manquantes

C’est pourquoi il faut toujours être vigilant lorsqu’on combine des jeux de données. Toujours vérifier que les données ne se contredisent pas !