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.
Dans quels cas avez-vous besoin de données synthétiques ?
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())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}')Quand avez-vous besoin de données synthétiques avec garanties de confidentialité ?
Comment vérifiez-vous que vos données synthétiques sont suffisamment réalistes ?
Donnez 3 cas d usage où vous avez utilisé ou auriez dû utiliser des données synthétiques.
| Niveau | Maitrise | Signal GO | NO-GO |
|---|---|---|---|
| Confirmé | Faker pour les tests, comprend les cas d usage | A utilisé Faker pour générer des fixtures de test réalistes | Utilise des données de production dans les tests |
| Senior | SDV, SMOTE, évaluation de la qualité | A utilisé SDV pour préserver les distributions, évalue la fidélité statistique | Ne sait pas ce que sont les données synthétiques |
Premier entretien gratuit. Rapport GO/NO-GO sous 48h.