sdv

Par mkurman · zorai

Synthetic Data Vault (SDV) — génération de données tabulaires synthétiques. Synthèse de données en table unique, multi-tables et séquentielles. CTGAN, TVAE, CopulaGAN, GaussianCopula. Métriques de confidentialité et évaluation.

npx skills add https://github.com/mkurman/zorai --skill sdv

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}")

Références

Skills similaires