Configuration
METIS uses a single YAML file to control all modes of operation.
Full Schema
# ── DATA ─────────────────────────────────────────────────────────────────
data:
real: "path/to/real.csv"
synthetic: "path/to/synth.csv" # "None" for calibrate/benchmark-only
target: "label_column" # "None" for fidelity-only evaluation
task_type: "classification" # classification | regression | "None"
real_separator: ","
synth_separator: ","
schema:
column_name: type_spec # See column types below
# ── METRICS ──────────────────────────────────────────────────────────────
metrics:
- "fidelity" # Shortcut: all fidelity metrics
- "utility.tstr" # Single metric by ID
- "privacy.dataset_based" # Shortcut: subset
# ── REPRODUCIBILITY ──────────────────────────────────────────────────────
reproducibility:
seed: 42
# ── CALIBRATION ──────────────────────────────────────────────────────────
calibration:
n_iterations: 5 # Split-half iterations
sample_percentage: 100.0 # % of data to use
n_jobs: 1 # Parallelism (-1 for all cores)
tune_aggregators: true # Optimize weights with Optuna
# ── EVALUATION ───────────────────────────────────────────────────────────
evaluation:
n_runs: 5 # Multi-seed repetitions
# ── BENCHMARK ────────────────────────────────────────────────────────────
benchmark:
enabled: true
output_dir: "results/benchmark"
n_runs: 5
sample_ratio: 1.0
generators:
- name: "ctgan"
params: { epochs: 300, batch_size: 500 }
- name: "tvae"
params: { epochs: 300 }
statistical_test:
method: "friedman-nemenyi"
alpha: 0.05
# ── REPORTS ──────────────────────────────────────────────────────────────
report:
formats: ["json", "md"]
output_dir: "reports/"
Column Types
| Type | Syntax | Internal View |
continuous | age: continuous | NUM |
discrete | income: {type: discrete, ranges: [[0,1000],[1001,5000]]} | NUM (normalized) |
categorical | gender: categorical | CAT |
boolean | flag: boolean | CAT + NUM |
ordinal | edu: {type: ordinal, levels: [low, mid, high]} | CAT + NUM [0,1] |
datetime | created: datetime | NUM (timestamp) |
geospatial | lat: geospatial | NUM |
text | desc: text | CAT (top-k) |
code_numeric | zip: code_numeric | CAT |
id | patient_id: id | Excluded |
Metric Shortcuts
| Shortcut | Expands to |
"fidelity" | All 26 fidelity metrics |
"fidelity.global" | correlation_matrix, mmd, energy_distance, outliers_coverage |
"fidelity.marginal.tails" | ks, wasserstein, anderson_darling, hellinger, kde_ise, delta_exceedance |
"fidelity.marginal.scales" | delta_mean, delta_median, delta_iqr, delta_mad, cohens_d |
"fidelity.marginal.coverage" | tvd, js, kl, psi, entropy_delta, gini_delta |
"fidelity.conditional" | All conditional metrics |
"utility" | All 5 utility metrics |
"privacy" | All 9 privacy metrics |
"privacy.dataset_based" | All except differential_privacy |