memisislabs / scripts /EXTERNAL_BASELINES.md
nnagesh101's picture
Expand baseline roster: all synthcity-available TabDiff/fair-tab-diffusion baselines + external-baseline framework
28b69e8
|
Raw
History Blame Contribute Delete
2.6 kB
# Baselines from TabDiff & fair-tab-diffusion
Both papers benchmark a large set of generators. In MemisisLabs they fall into two tiers.
## Tier 1 β€” available as synthcity plugins (run via the arena, no extra repos)
These enter the arena directly through the `synthcity` backend once a `SYNTHCITY_VENV` is set
(see `scripts/server_arena.py`). Install with `pip install "synthcity[all]"` on the GPU host to
get the `goggle`/`great` extras.
| Baseline (paper) | synthcity plugin |
|---|---|
| CTGAN | `ctgan` |
| TVAE / RTVAE | `tvae`, `rtvae` |
| TabDDPM | `ddpm` |
| GOGGLE | `goggle` |
| GReaT | `great` |
| Normalizing flow | `nflow` |
| ARF | `arf` |
| DP-GAN / PATE-GAN / ADS-GAN | `dpgan`, `pategan`, `adsgan` |
| PrivBayes | `privbayes` |
| DECAF (fairness) | `decaf` |
Run: `python scripts/server_arena.py` (uses these by default across all datasets).
## Tier 2 β€” standalone research repos (external experiments)
No pip/synthcity plugin β€” each is its own repo with its own env. Integrate them the same way as
TabDiff: clone + set up, train + sample into a CSV, then score with **our** metric suite via a
small evaluate step (mirror `scripts/tabdiff_evaluate.py`). This puts them on the shared
leaderboard under our TabDiff-standard metrics.
| Baseline | Repo | Notes |
|---|---|---|
| TabDiff | github.com/MinkaiXu/TabDiff | done β€” `scripts/tabdiff_prepare.py` + `tabdiff_evaluate.py` |
| TabSyn | github.com/amazon-science/tabsyn | latent-space diffusion |
| STaSy | github.com/JayoungKim408/STaSy | score-based |
| CoDi | github.com/ChaejeongLee/CoDi | co-evolving diffusion |
| FairTabDDPM | github.com/comp-well-org/fair-tab-diffusion | fairness-aware diffusion |
| FairTabGAN / FairSMOTE | (fair-tab-diffusion `args/*/`) | fairness-aware baselines |
### Generic pattern for a Tier-2 baseline
1. Clone + create its env on the lab server.
2. Prepare the dataset in its expected format (adapt `scripts/tabdiff_prepare.py` if it uses the
same Info-JSON layout β€” TabSyn/CoDi/STaSy/FairTabDDPM all descend from the TabSyn data format).
3. Train + sample to a synthetic CSV.
4. Score + record:
```bash
python scripts/tabdiff_evaluate.py --dataset openml_45040 \
--synthetic /path/to/<method>_samples/ --record
```
(change the recorded label in the script, or add a `--label <method>` flag.)
## Fairness metrics
fair-tab-diffusion's fairness = fairlearn `demographic_parity_ratio` + `equalized_odds_ratio` β€”
already adopted as the arena's `fairness` dimension (`pipeline/fairness.py`), applied to every
classification dataset with a sensitive attribute.