Aperçu
Le Synthetic Data Vault (SDV) génère des données tabulaires synthétiques qui préservent les propriétés statistiques tout en protégeant la confidentialité. Prend en charge la génération de données à une seule table, multi-tables et séquentielles avec les modèles CTGAN, TVAE, CopulaGAN et GaussianCopula.
Installation
uv pip install sdv
Table unique (CTGAN)
from sdv.single_table import CTGANSynthesizer
from sdv.datasets.demo import load_demo
data, metadata = load_demo(dataset="census")
synth = CTGANSynthesizer(metadata)
synth.fit(data)
synthetic = synth.sample(num_rows=500)
print(synthetic.head())
print(f"Original columns: {data.shape}, Synthetic: {synthetic.shape}")
Multi-tables
from sdv.multi_table import HMA1Synthesizer
synth = HMA1Synthesizer(multi_table_metadata)
synth.fit(multi_table_data)
synthetic = synth.sample(scale=0.5)
Évaluation de la confidentialité
from sdv.evaluation import evaluate
# Statistical similarity
report = evaluate(synthetic, data, metadata)
print(f"Overall score: {report.get_score():.3f}")
print(f"Column shapes: {report.get_property('Column Shapes'):.3f}")
print(f"Column pairs: {report.get_property('Column Pair Trends'):.3f}")