Skip to main content

A Python package for tabular synthetic data

Project description

copula-tabular

Generate tabular synthetic data using Gaussian copulas

Overview

Advancements in synthetic data generation have made it a viable solution for applications in various fields, such as finance, biomedical research, and data science. Synthetic data is generated artificially, yet replicates the joint probability distribution of its real-world counterpart. Its ability to mimic the statistical behaviour of real data makes it a useful tool for testing algorithms, systems, and training machine learning models, and it can be used as an economical substitute for real data when it is not available, is too sensitive to release, or too costly to acquire. Copula-based data generation methods have been demonstrated to produce reliable and accurate tabular data when generating synthetic data.

In this package, we present a tool for generating multivariate synthetic data through the implementation of a Gaussian copula. This model incorporates conditional joint distributions into its framework, allowing for the splitting of single variables into multiple component marginal distributions. The conditional enhancements provides greater usability in the synthesis of complex, non-linear sample distributions, allowing for the replication of a wider range of datasets.

The tool is designed to work with a data dictionary, or a file describing the metadata of the input dataset. There are additional class-based implementations of data cleaning, visualisation tools, transformation tools, privacy leakage evaluation, and sample wrapper scripts for generating synthetic data from start to finish.

Example Result:

Figure showing correlation plots of a simulated multivariate dataset, containing non-trivial, non-linear and non-monotonic relationships. The left plot shows the original Pearson correlation between variables, while the middle and right plots show the correlation for synthetic data generated using standard copula and conditional copula respectively. Figure showing correlation plots of a simulated multivariate dataset, containing non-trivial, non-linear and non-monotonic relationships. The left plot shows the original Pearson correlation between variables, while the middle and right plots show the correlation for synthetic data generated using standard copula and conditional copula respectively.

Figure showing superimposed scatterplots of the same simulated multivariate dataset, containing non-trivial, non-linear and non-monotonic relationships. The training, synthetic (standard copula), synthetic (conditional copula) data points are in blue, grey, and red respectively. Figure showing superimposed scatterplots of the same simulated multivariate dataset, containing non-trivial, non-linear and non-monotonic relationships. The training, synthetic (standard copula), synthetic (conditional copula) data points are in blue, grey, and red respectively.

Documentation

For installation instructions, getting started guides and tutorials, background information, and API reference summaries, please see the website.

Contributing

Thank you for considering contributing to copula-tabular. Please follow this link for more details.

Development notes

Please visit the website for more details.

Copyright and license

Copyright 2023 BiomedDAR, BII, A*STAR. Licensed under MIT.

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

bdarpack-0.1.7.tar.gz (77.4 kB view details)

Uploaded Source

Built Distribution

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

bdarpack-0.1.7-py3-none-any.whl (80.8 kB view details)

Uploaded Python 3

File details

Details for the file bdarpack-0.1.7.tar.gz.

File metadata

  • Download URL: bdarpack-0.1.7.tar.gz
  • Upload date:
  • Size: 77.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for bdarpack-0.1.7.tar.gz
Algorithm Hash digest
SHA256 f5d19f1dfe8caf5c6301f20d07fa75ea610b0969fdeaf9af652d2f25248d4c2b
MD5 387ac4de4b6ea835a09030f99cc5273f
BLAKE2b-256 900a786a5afc5bf323a4ded24e17e39fcac6bec2aff5a8aed26a3eb95b14e8e9

See more details on using hashes here.

File details

Details for the file bdarpack-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: bdarpack-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 80.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.13

File hashes

Hashes for bdarpack-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 0536c2705ba92df2a2b11cb302653f0a0bf3713a7dd43e2307ed96c971b3dd5a
MD5 b8c9169412d0e5e7b3d26008922e3389
BLAKE2b-256 ab1abe3b361da7345b28680f085e2158dc7412d95a3a03d366e5f85eb3427a7b

See more details on using hashes here.

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