AccueilBlogTest technique données synthétiques : générer des données de test réalistes
Guide recrutement data

Test technique données synthétiques : générer des données de test réalistes

Les données synthétiques permettent de tester les pipelines et entraîner des modèles sans exposer de données réelles. En entretien, on évalue la capacité à choisir la bonne approche selon le cas.

Data Builder·Juin 2025·5 min de lecture·Data Engineer · Data Scientist
Sommaire
  1. Pourquoi les données synthétiques
  2. Faker pour les tests
  3. SDV pour la distribution
  4. Gretel et la confidentialité
  5. Évaluer la qualité
  6. Cas d usage
  7. Grille

1Pourquoi générer des données synthétiques

Question discriminante

Dans quels cas avez-vous besoin de données synthétiques ?

2Faker : données de test basiques

Question discriminante

Comment générez-vous des données de test réalistes avec Faker ?

from faker import Faker import pandas as pd import random from datetime import datetime, timedelta fake = Faker('fr_FR') # locale française def generate_orders(n: int = 1000) -> pd.DataFrame: orders = [] for _ in range(n): order_date = fake.date_between(start_date='-1y', end_date='today') orders.append({ 'order_id': fake.uuid4(), 'customer_email': fake.email(), 'customer_name': fake.name(), 'amount': round(random.lognormal(4, 1), 2), # log-normal comme les vrais achats 'status': random.choices( ['completed', 'pending', 'cancelled'], weights=[0.85, 0.1, 0.05] )[0], 'region': fake.department_name(), 'order_date': order_date }) return pd.DataFrame(orders) df = generate_orders(10000) print(df.head())

3SDV : préserver la distribution statistique

Question discriminante

Quand utilisez-vous SDV plutôt que Faker pour générer des données synthétiques ?

from sdv.single_table import GaussianCopulaSynthesizer from sdv.metadata import SingleTableMetadata # Faker génère des données plausibles mais pas statistiquement fidèles # SDV génère des données avec les MÊMES distributions que les vraies # Définir les métadonnées metadata = SingleTableMetadata() metadata.detect_from_dataframe(real_orders_df) metadata.update_column('email', sdtype='email') # PII à anonymiser # Entraîner le synthétiseur synth = GaussianCopulaSynthesizer(metadata) synth.fit(real_orders_df) # Générer des données synthétiques synthetic_df = synth.sample(num_rows=10000) # Évaluer la qualité from sdv.evaluation.single_table import run_diagnostic, evaluate_quality diag = run_diagnostic(real_orders_df, synthetic_df, metadata) quality = evaluate_quality(real_orders_df, synthetic_df, metadata) print(f'Quality score: {quality.get_score():.2f}')

4Gretel.ai : confidentialité différentielle

Question discriminante

Quand avez-vous besoin de données synthétiques avec garanties de confidentialité ?

5Évaluer la qualité des données synthétiques

Question discriminante

Comment vérifiez-vous que vos données synthétiques sont suffisamment réalistes ?

6Cas d usage concrets

Question discriminante

Donnez 3 cas d usage où vous avez utilisé ou auriez dû utiliser des données synthétiques.

7Grille par niveau

NiveauMaitriseSignal GONO-GO
ConfirméFaker pour les tests, comprend les cas d usageA utilisé Faker pour générer des fixtures de test réalistesUtilise des données de production dans les tests
SeniorSDV, SMOTE, évaluation de la qualitéA utilisé SDV pour préserver les distributions, évalue la fidélité statistiqueNe sait pas ce que sont les données synthétiques

Vous recrutez un Data Engineer ou Data Scientist ?

Premier entretien gratuit. Rapport GO/NO-GO sous 48h.