[Jour 3 comme Data Scientist] Préparation des données

Hello !

Quelle donnée récupérer ?

On a vu dans la phase d’identification du problème qu’il peut être conseillé d’utiliser des informations externes. Afin de collecter des données, vérifiez que celle-ci soient disponibles et en volume suffisant. Sans parler de la qualité de ces donnée (manque-t-il des entrées ? Pour chaque info manque-t-il des informations ? À quel point l’information est précise ? L’information est-elle à jour ? …).

Si j’arrive à récupérer les salaires des Data Scientist chez Google, qu’est-ce qu’un Data Scientist aux yeux de Google ? L’entreprise se trouve sur un autre environnement économique, le coût de la vie là-bas n’est pas le même qu’ici. Et, à en croire des articles, ils ont cette manie de recruter les meilleurs pour les empêcher d’aller chez la concurrence. Ils donnent des salaires disproportionnés. Ce qui pourrait fausser les résultats.

Attention à la qualité des données récoltées.

Comment récupérer de la donnée ?

Il existe plusieurs moyens de récupérer des données : via les API, le scraping, etc.

Les API sont en général de type REST et fournissent du JSON. Ce qui est très facile pour naviguer avec un script Python.

Le scraping est souvent limité par les sites (la fréquence du nombre de requêtes par minutes par exemple). Renseignez-vous et faites paquet par paquet. Autrement dit, n’essayez pas de tout récupérer d’un coup. Sinon vous risquez d’être blacklisté.

Où la récupérer ?

La donnée interne se trouve en général dans des fichiers, des bases de données, des logs, sur les réseaux sociaux.

Dans le cadre de ma mission, je vais utiliser les données que dispose l’entreprise dans des fichiers excel. Elles pourraient très bien se trouver dans des bases de données, ce qui ne poserait pas de soucis. J’utilise personnellement pgweb pour interagir avec un base relationnelles ou directement en ligne de commandes.

Il faut être vigilant avec les bases orientées document (Firebase par exemple) parce que les données ne sont pas structurées !

N’hésitez pas à croissez ces données récoltées avec des données publiques. Cela commence à devenir vraiment intéressant lorsqu’on croise des données de socio-économiques avec des informations géographiques par exemple.

Il est quasi impossible de mesurer objectivement la qualité d’un jeu de données. Seuls des critères plus ou moins arbitraires, comme ceux cités dans ce mail, peuvent donner une idée.

Le nettoyage

Des données de qualité c’est :

  • l’exactitude
  • l’exhaustivité
  • l’actualité
  • la cohérence .

Autrement tout ce qui est incomplet, dupliqué, incorrect ou imprécis, c’est à nettoyer.

Concrètement il s’agit de retirer le code HTML, ajouter ou retirer les valeurs manquantes, retirer les valeurs inutiles, retirer la ponctuation, retirer les smileys, vérifier la grammaire, retirer les urls, etc.

il faut chercher à normaliser lorsqu’on reçoit la donnée. Par exemple, un prix va dépendre du pays et de sa monnaie. Il faut se débrouiller pour normaliser cette donnée lorsqu’on reçoit cette information.

Ça peut être aussi les fautes d’orthographe, les fautes de frappe, les variations d’orthographe, l’écriture des surnoms et des prénoms, les abréviations, etc. Il faut proposer une liste pré-définie et ne pas laisser de liberté à la saisie.

Aujourd’hui plus de 50% du temps est consacré au nettoyage et à la normalisation des données !

Hop explorons tout ce tintamarre !