Génération de données

Générer des données factices (dummy data) avec Faker

Il arrive assez souvent que l’on ait besoin de données factices (dummy data). Que ce soit pour des tests, pour anonymiser des données sensibles ou pour ajouter du « bruit » dans un jeu de données d’entraînement, il peut être intéressant d’avoir accès à un jeu de fausses données ayant la même forme que les données réelles. Avec Python, on peut utiliser Faker, une bibliothèque permettant de générer des données suivant un type de données.

Dans cet article, nous ferons un tour rapide des fonctionnalités de Faker et comment l’utiliser pour créer un jeu de données.

Intérêts d’une génération de données factices

Comme énoncé plus haut, la génération de dummy data peut s’avérer utile dans bien des cas :

  • Test : Que ce soit pour des tests unitaires ou des tests de performances, utiliser une génération de données aléatoire peut être très intéressant. Cela peut permettre d’écrire des tests plus « dynamiques » (i.e. les données de tests sont nouvelles à chaque exécution) et donc de tester de potentiels « nouveaux cas », à chaque execution des tests.
  • Masquer des données sensibles : Dans certains cas l’on peut avoir besoin de masquer des données sensibles (dans un jeu de données à partager par exemple). Avoir de la donnée factice ayant la même forme que la donnée sensible (à masquer) peut s’avérer utile dans ces cas là. On peut, par exemple, remplacer l’adresse d’un camp militaire stratégique par une fausse adresse avant de partager le jeu de données.
  • Améliorer la robustesse d’un modèle : Pour avoir un modèle plus robuste/performant, il peut être intéressant d’augmenter un dataset. Cela rajoute du bruit pendant l’entraînement et rend robuste la généralisation (surtout lorsqu’on a affaire à des petits datasets). La génération de données est donc, encore une fois, une très bonne solution.

Comment marche Faker ?

Faker permet de générer des données aléatoires dans plusieurs dizaines de langues. Faker est une bibliothèque ouverte à la communauté, elle est donc en constante évolution. Des providers (générateurs spécifiques à un certain type de données) sont ajoutés régulièrement par la communauté. Jetons un oeil à comment l’utiliser en terme de codes.

Installation

On peut installer Faker avec pip :

pip install Faker

Initialisation du générateur

Simple :

from faker import Faker 
fake = Faker("fr_FR")

La première ligne, évidemment, sert à importer le générateur (Classe Faker). La seconde ligne permet d’initialiser le générateur avec pour paramètre la langue (fr_FR pour Français).

Génération de fakes

Une donnée générée est appelée fake. Un fake est généré à l’appel de la méthode correspondant au type de données.

fake.name() # Retourne un nom (prénom nom)
fake.last_name() # Retourne un nom de famille
fake.address() # Retourne une adresse

Disons qu’on veuille générer une liste de 100 adresses e-mail.

[fake.email() for _ in range(100)]

Voilà !

Conclusion

Faker est une bibliothèque Python permettant de générer des données factices. Elle peut s’avérer bien pratique dans plusieurs cas de figures. Il existe plusieurs alternatives à Faker mais elle reste l’option la plus connue en Python. N’hésitez pas à les citer en commentaires si vous en connaissez. J’espère que vous avez apprécié cet article, à bientôt.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.