• 15 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 18/02/2020

Repérez les différents types d'erreurs

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Bravo, vous avez réussi à passer l'épreuve de la partie 3 de ce cours ! Maintenant, repos. Cette dernière partie est très simple et courte. Elle porte sur le nettoyage des données.

En vous lançant dans l'analyse de vos données, il vous faudra les nettoyer de toute erreur. Sinon, le code que vous écrirez pour faire de beaux graphiques (ou autres) plantera. Pire, vos analyses pourront contenir des erreurs si votre échantillon contient des erreurs.

Tous les data analysts ou data scientists vous le diront : on passe malheureusement la majeure partie du temps à nettoyer les données plus qu'à les analyser... c'est frustrant, car le nettoyage n'est vraiment pas la partie la plus captivante ! Mais j'ai une bonne nouvelle : le nettoyage des données ne nous prendra que 3 chapitres, alors courage. ;)

D'où proviennent les erreurs ?

En fait, tout dépend de la source de vos données. Prenons deux exemples de sources parmi d'autres : les saisies "à la main" effectuées par des humains, et les capteurs.

Si les données ont été saisies par un humain, alors il y a de fortes chances pour que des erreurs se soient glissées dans la saisie, par exemple lorsque quelqu'un tape dans un tableur les résultats d'un sondage rempli sur papier, ou encore lorsqu'un site web contient un formulaire dans lequel l'internaute saisit de fausses données.

Si les données proviennent de capteurs (exemple : le système de géolocalisation de votre téléphone, le capteur de vitesse de votre véhicule, la machine qui valide votre billet à l'entrée du bus, etc. ), alors il se peut que le capteur se dégrade au cours du temps et ne soit plus étalonné (ex: un thermomètre qui indique 23°C alors que la température réelle est de 25°C) ou bien qu'il ne fonctionne plus (il n'envoie plus de données).

Les différents types d'erreurs

Prenons l'exemple d'un échantillon de personnes, décrites par plusieurs variables :

Prénom

Email

Date de naissance

Pays

Taille

Leila

leila@example.com

23/01/1990

France

1,49 m

Samuel

samuel_329@example.com

20/09/2001

 

1,67 m

Radia

choupipoune@supermail.eu

12 sept. 1984

Côte d'ivoire

153 cm

Marc

marco23@example.com, mc23@supermail.eu

10/02/1978

France

1,65 m

Heri

helloworld@supermail.eu

05/03/2008

Madagascar

1,34 m

Hanna

hanna2019@supermail.eu

01/01/1970

24

3,45 m

samuël

samuel_329@example.com

 

Bénin

1,45 m

Bon... vous voyez que cet échantillon n'est pas vraiment vraiment propre, n'est-ce pas ?

  1. Tout d'abord, il y a des cases vides pour les variables Pays et Date de naissance. On appelle cela les valeurs manquantes.

  2. Si vous regardez dans la colonne Pays, il y a une case qui contient  24. Or 24 n'est absolument pas un pays ! Il s'agit ici d'une erreur lexicale.

  3. Ensuite, vous avez peut-être vu qu'un  153 cm  s'est glissé dans la colonne Taille. C'est un problème car toutes les autres valeurs sont données en mètres, et pas en centimètres ! C'est une erreur d'irrégularité, car la variable Taille n'est pas représentée de manière régulière.

  4. Marc a 2 adresses email. Ce n'est pas forcément problématique, mais si vous oubliez cela et que vous codez un programme d'analyse en faisant la supposition qu'une personne n'a qu'un seul email, votre programme plantera probablement ! Si vous faites effectivement cette supposition, alors il y aura une erreur de formatage, car marco23@example.com, mc23@supermail.eu ne respecte pas le format voulu.

  5. Regardez la variable Date de naissance. Il y a également une erreur de formatage : la date de naissance de Radia n'est pas du même format que les autres dates.

  6. Samuel est présent sur 2 lignes. Comment être sûr qu'il s'agit bien du même Samuel ? Par son adresse email bien sûr ! Il s'agit d'un doublon. De plus, sur les 2 lignes de Samuel, les tailles sont différentes : 1,67 m et 1,45 m, ça c'est une erreur de contradiction.

  7. Hanna mesure 3,45 m. Cette taille est très différente des tailles usuelles des êtres humains : c'est une valeur qualifiée d'outlier. Même si nous n'en sommes pas sûrs, il s'agit probablement d'une erreur. 

Que faire de toutes ces erreurs ?

Je préfère vous le dire tout de suite, dès que vous devrez nettoyer un jeu de données, il n'y a pas de règle toute faite. Tous les traitements que vous ferez seront en fonction de l'utilisation que vous aurez de vos données. Deux data analysts ne nettoieront pas un même jeu de données de la même manière s'ils ont des objectifs différents !

Pas de règle donc, mais je peux vous donner quelques pistes :

  1. Concernant les valeurs manquantes, c'est l'objet du chapitre suivant. ;)

  2. Pour le pays invalide, il est possible de fixer à l'avance une liste des pays autorisés, puis de supprimer les valeurs qui ne sont pas dans cette liste (ici,  24  n'y sera pas). Une telle liste est souvent appelée dictionnaire.

  3. Pour les erreurs d'irrégularité, c'est plus compliqué ! On peut par exemple fixer un format fixe (ici : un nombre décimal suivi du caractère "m") et supprimer les valeurs qui ne suivent pas ce format. Mais on peut faire mieux, et détecter d'abord dans quelle unité est exprimée la valeur (mètres ou centimètres) puis tout convertir en une même unité.

  4. Pour l'erreur de formatage de la double adresse email, tout dépend de ce que vous souhaitez faire. Si vous n'analyserez pas les emails dans votre analyse future, alors pas besoin de corriger l'erreur. Si par contre vous souhaitez connaître la proportion du nombre de personnes dont l'adresse finit par  @example.com, par  @supermail.eu, etc., alors vous pouvez choisir entre :

    1. prendre la première adresse email, et oublier la seconde ;

    2. garder l'ensemble des adresses email.

  5. Passons à la variable Date de naissance. Aaaaaaah les dates ! :'( Croyez-moi, elles vous donnerons toujours du fil à retordre ! Eh oui, il existe d'innombrables formats de date, et chaque pays a sa propre habitude quand il s'agit d'écrire une date (ex : les Français et les Nord-Américains n'utilisent pas les mêmes formats). En plus de cela, il faut ajouter les problèmes des fuseaux horaires ! Dans notre cas, la plus simple des solutions consiste à supprimer les dates qui ne sont pas au format  jour/mois/année.

  6. Pour le doublon, vous verrez cela dans le chapitre suivant.

  7. Pour l'outlier, c'est également dans le chapitre suivant ! ;)

Cependant, si les erreurs sont nombreuses et de même nature, autant créer un programme informatique qui corrigera les erreurs.

Par exemple, si 60 % des tailles sont données en mètres, 35 % en centimètres et 5 % dans d'autres unités, alors il y a 35 % d'erreurs qui sont de même nature (35 % des valeurs sont en centimètres au lieu de mètres). Autant donc coder quelques lignes de code qui convertiront les centimètres en mètres. Si vous êtes motivés et que le jeu en vaut la chandelle, attaquez-vous aussi aux 5 % restants, mais cela vous prendra beaucoup de temps !

Aller plus loin : Les dates

Sachez qu'entre différents pays, nous avons quand même réussi à nous mettre d'accord sur un format de date normalisé : c'est le format ISO 8601. Il est de cette forme :  1977-04-22T06:00:00Z.

De toute manière, sachez que les dates vous feront toujours souffrir, comme en témoigne ce CommitStrip :

Aller plus loin : Ressources externes

Dans ce cours, nous nettoierons nos données grâce à Python ou R.

Mais sachez qu'il existe un très bon outil destiné au nettoyage de données, accessible à ceux qui ne maîtrisent pas la programmation : c'est OpenRefine.

Exemple de certificat de réussite
Exemple de certificat de réussite