Skip to main content

Exploring the Effects of Disjoint Generation of Synthetic Tabular Data.

Project description

PyPI version

Disjoint Generative Models

Disjoint Generative Models (DGMs) is a framework for generating synthetic data by distributing the generation of different attributes to different generative models. DGMs unlock mixed model generation, allowing the user to choose ``correct tool for the correct job'' and infers increased privacy by not having a single model that has access to all the data.

The library provides a simple API for generating synthetic data using a variety of generative models and joining strategies. The library has access to a variety of generative model backends namely SynthCity, DataSynthesizer, TabDiff, and Synthpop, but additional backends can be added in the adapters module. Similarly several methods for joining are available for combining the generated data, and more can be added in the joining strategies module.

Installation

We recommend cloning and working with the repository directly due to challenging dependencies, but the library is also available on PyPI. To install the library, run the following command:

pip install disjoint-generation

One of the generative model backends "synthpop" requires a working R installation on the system. Access is handled through subprocess to run an Rscript command, so make sure that the Rscript command works in the terminal.

Tutorial and Codebooks

Below is codebooks that can be used to replicate the results shown in the paper.

Link Description Fig. refs.
Tutorial A simple tutorial on how to use the library NA
Codebook 1 Introductionary experiments, random joining, incresing number of partitions Fig. 3, 10
Codebook 2 High-dimensional dataset example vith validation, correlated partitions study Fig. 4, 5, 6, 13
Codebook 3 Mixed-model generation and combinatorics Fig. 7, 8, Tab. 2, 3
Codebook 4 Study of the joining validator model, optimisation and calibration Fig. 11, 12, 14

Additional examples for how to use the library can be seen in the documentation in the source code folder.

Requirements

The codebase requires Python ~3.10 (we use version 3.10.11) and the following packages:

  • numpy ~= 1.26
  • pandas ~= 2.2.3
  • scipy ~= 1.12
  • scikit-learn ~= 1.5
  • synthcity >= 0.2.11
  • DataSynthesizer ~= 0.1.13
  • pyod >= 2.0

Because Synthcity sometimes causes compatibility issues we also provide an environment.txt file with a pip freeze of a working installation, which can be downloaded and installed using pip install -r environment.txt and should work on Python ~3.10.11.

Additonally, the synthpop generative model is accessed through R (we used version 4.1.2), and requires the following R packages:

  • synthpop ~= 1.8.0

Citing

If you use our library in your work, you can reference us by citing our paper:

@misc{Lautrup2025,
      title={Disjoint Generative Models}, 
      author={Anton Danholt Lautrup and Muhammad Rajabinasab and Tobias Hyrup and Arthur Zimek and Peter Schneider-Kamp},
      year={2025},
      eprint={2507.19700},
      archivePrefix={arXiv},
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

disjoint_generation-1.2.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

disjoint_generation-1.2-py3-none-any.whl (41.8 kB view details)

Uploaded Python 3

File details

Details for the file disjoint_generation-1.2.tar.gz.

File metadata

  • Download URL: disjoint_generation-1.2.tar.gz
  • Upload date:
  • Size: 37.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for disjoint_generation-1.2.tar.gz
Algorithm Hash digest
SHA256 b48590fa6e768592f85344f3eb2c768ed9f582ed9d2d22134094fc242a391df7
MD5 66dab9015bb409ed74cefa3aebdfc6e0
BLAKE2b-256 6be1d878a858332b25ee8396163f706e2a781fa9d9151edb33c960d3266f1d60

See more details on using hashes here.

Provenance

The following attestation bundles were made for disjoint_generation-1.2.tar.gz:

Publisher: release.yml on notna07/disjoint-synthetic-data-generation

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file disjoint_generation-1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for disjoint_generation-1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b27fdfeaa0f9677b1ab56625de8a39081447e69eda977aea240745afea434784
MD5 6f0dc73509f3c1aab177323a402ebe4d
BLAKE2b-256 c2ea88842b04a7cb47e44b1349d2559072e94c2fd4f763ba8dd8db0fb08acd9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for disjoint_generation-1.2-py3-none-any.whl:

Publisher: release.yml on notna07/disjoint-synthetic-data-generation

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page