Tester un modèle de machine learning, c'est bien. Le tester sur des données bidon qui ressemblent à de vraies données, c'est mieux. Faker est la bibliothèque Python qui génère des noms, des adresses, des e-mails et des entreprises fictives mais cohérentes, en une ligne. Tu peux remplir une base, prototyper un pipeline ou entraîner un classifieur sans jamais toucher à de vraies données personnelles. Résultat : zéro risque RGPD, aucun accord de confidentialité à signer, et un environnement reproductible à l'infini. Le tout en local, gratuit, sans aucune API.
pip install FakerÉtape 1 — Génère ta première donnée fictive. Une fois installé, Faker s'utilise en deux lignes. Chaque appel renvoie une valeur inventée, différente à chaque exécution, mais parfaitement plausible.
from faker import Faker
fake = Faker()
print(fake.name())
print(fake.email())
print(fake.address())Étape 2 — Localise les données en français. Par défaut, Faker parle anglais américain. Passe la locale fr_FR au constructeur et tes données sonneront immédiatement juste : accents, formats de téléphone et adresses à la française.
from faker import Faker
fake = Faker("fr_FR")
print(fake.name())
print(fake.address())
print(fake.phone_number())Étape 3 — Construis un vrai jeu de données. Une simple boucle suffit pour générer des centaines de lignes réalistes, prêtes à être écrites dans un CSV que ton pipeline de données pourra lire directement.
from faker import Faker
import csv
fake = Faker("fr_FR")
with open("clients.csv", "w", newline="", encoding="utf-8") as fichier:
writer = csv.writer(fichier)
writer.writerow(["nom", "email", "ville", "entreprise", "age"])
for _ in range(500):
writer.writerow([
fake.name(),
fake.email(),
fake.city(),
fake.company(),
fake.random_int(min=18, max=85),
])Étape 4 — Reproductible et sans doublons. Pour comparer des expériences entre elles, fige le générateur avec Faker.seed(42) : les mêmes données sortiront à chaque exécution. Et pour garantir des valeurs uniques, utilise l'attribut unique.
from faker import Faker
fake = Faker("fr_FR")
Faker.seed(42)
emails = [fake.unique.email() for _ in range(1000)]
print(len(set(emails))) # 1000 : aucun doublonÉtape 5 — Les données spécialisées qui changent tout. Faker ne se limite pas aux noms. Dates de naissance cohérentes, IBAN, numéro SIRET, coordonnées GPS : des dizaines de providers couvrent des cas métier précis et se combinent librement.
from faker import Faker
fake = Faker("fr_FR")
print(fake.date_of_birth(minimum_age=18, maximum_age=90))
print(fake.iban())
print(fake.siret())
print(fake.latlng()) # coordonnées GPSÉtape 6 — Nourris un DataFrame pour l'entraînement. Combine Faker avec Pandas et tu obtiens un jeu d'entraînement complet en quelques lignes, idéal pour tester un modèle de régression ou de classification avant d'avoir accès à de vraies données.
from faker import Faker
import pandas as pd
fake = Faker("fr_FR")
data = [{
"nom": fake.name(),
"email": fake.email(),
"ville": fake.city(),
"revenu_annuel": fake.random_int(min=18000, max=120000),
} for _ in range(2000)]
df = pd.DataFrame(data)
print(df.head())
print(f"{len(df)} lignes générées")Faker ne remplace pas de vraies données, et il ne faut jamais faire passer du synthétique pour du réel dans un modèle de production. Mais pour prototyper, tester tes pipelines ou préparer une démo, c'est imbattable. Une fois ton code validé sur des données fictives, tu branches tes vraies données et le travail est déjà fait.






