ydata-synthetic


Nameydata-synthetic JSON
Version 1.3.2 PyPI version JSON
download
home_pagehttps://github.com/ydataai/ydata-synthetic
SummarySynthetic data generation methods with different synthetization methods.
upload_time2023-12-08 22:54:51
maintainer
docs_urlNone
authorYData
requires_python>=3.9, <3.11
licensehttps://github.com/ydataai/ydata-synthetic/blob/master/LICENSE
keywords data science ydata
VCS
bugtrack_url
requirements requests pandas numpy scikit-learn matplotlib tensorflow tensorflow-probability easydict pmlb tqdm typeguard pytest
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![](https://img.shields.io/github/workflow/status/ydataai/ydata-synthetic/prerelease)
![](https://img.shields.io/pypi/status/ydata-synthetic)
[![](https://pepy.tech/badge/ydata-synthetic)](https://pypi.org/project/ydata-synthetic/)
![](https://img.shields.io/badge/python-3.9%20%7C%203.10-blue)
[![](https://img.shields.io/pypi/v/ydata-synthetic)](https://pypi.org/project/ydata-synthetic/)
![](https://img.shields.io/github/license/ydataai/ydata-synthetic)

<p align="center"><img width="300" src="https://assets.ydata.ai/oss/ydata-synthetic_black.png" alt="YData Synthetic Logo"></p>

Join us on [![Discord](https://img.shields.io/badge/Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white)](https://tiny.ydata.ai/dcai-ydata-synthetic)

# YData Synthetic
A package to generate synthetic tabular and time-series data leveraging the state of the art generative models.

## 🎊 The exciting features:
> These are must try features when it comes to synthetic data generation:
  > - A new streamlit app that delivers the synthetic data generation experience with a UI interface. A low code experience for the quick generation of synthetic data
  > - A new fast synthetic data generation model based on Gaussian Mixture. So you can quickstart in the world of synthetic data generation without the need for a GPU.
  > - A conditional architecture for tabular data: CTGAN, which will make the process of synthetic data generation easier and with higher quality!

## Synthetic data
### What is synthetic data?
Synthetic data is artificially generated data that is not collected from real world events. It replicates the statistical components of real data without containing any identifiable information, ensuring individuals' privacy.

### Why Synthetic Data?
Synthetic data can be used for many applications:
  - Privacy compliance for data-sharing and Machine Learning development
  - Remove bias
  - Balance datasets
  - Augment datasets

> **Looking for an end-to-end solution to Synthetic Data Generation?**<br>
> [YData Fabric](https://ydata.ai/products/synthetic_data) enables the generation of high-quality datasets within a full UI experience, from data preparation to synthetic data generation and evaluation.<br>
> Check out the [Community Version](https://ydata.ai/ydata-fabric-free-trial).


# ydata-synthetic
This repository contains material related with architectures and models for synthetic data, from Generative Adversarial Networks (GANs) to Gaussian Mixtures.
The repo includes a full ecosystem for synthetic data generation, that includes different models for the generation of synthetic structure data and time-series.
All the Deep Learning models are implemented leveraging Tensorflow 2.0.
Several example Jupyter Notebooks and Python scripts are included, to show how to use the different architectures.

Are you ready to learn more about synthetic data and the bext-practices for synthetic data generation?

## Quickstart
The source code is currently hosted on GitHub at: https://github.com/ydataai/ydata-synthetic

Binary installers for the latest released version are available at the [Python Package Index (PyPI).](https://pypi.org/project/ydata-synthetic/)
```commandline
pip install ydata-synthetic
```

### The UI guide for synthetic data generation

YData synthetic has now a UI interface to guide you through the steps and inputs to generate structure tabular data.
The streamlit app is available form *v1.0.0* onwards, and supports the following flows:
- Train a synthesizer model
- Generate & profile synthetic data samples

#### Installation

```commandline
pip install ydata-synthetic[streamlit]
```
#### Quickstart
Use the code snippet below in a python file (Jupyter Notebooks are not supported):
```python
from ydata_synthetic import streamlit_app

streamlit_app.run()
```

Or use the file streamlit_app.py that can be found in the [examples folder](https://github.com/ydataai/ydata-synthetic/tree/master/examples/streamlit_app.py).

```commandline
python -m streamlit_app
```

The below models are supported:
  - CGAN
  - WGAN
  - WGANGP
  - DRAGAN
  - CRAMER
  - CTGAN

[![Watch the video](assets/streamlit_app.png)](https://youtu.be/ep0PhwsFx0A)

### Examples
Here you can find usage examples of the package and models to synthesize tabular data.
  - Fast tabular data synthesis on adult census income dataset [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ydataai/ydata-synthetic/blob/master/examples/regular/models/Fast_Adult_Census_Income_Data.ipynb)
  - Tabular synthetic data generation with CTGAN on adult census income dataset [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ydataai/ydata-synthetic/blob/master/examples/regular/models/CTGAN_Adult_Census_Income_Data.ipynb)
  - Time Series synthetic data generation with TimeGAN on stock dataset [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ydataai/ydata-synthetic/blob/master/examples/timeseries/TimeGAN_Synthetic_stock_data.ipynb)
  - Time Series synthetic data generation with DoppelGANger on FCC MBA dataset [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ydataai/ydata-synthetic/blob/master/examples/timeseries/DoppelGANger_FCC_MBA_Dataset.ipynb)
  - More examples are continuously added and can be found in `/examples` directory.

### Datasets for you to experiment
Here are some example datasets for you to try with the synthesizers:
#### Tabular datasets
- [Adult Census Income](https://www.kaggle.com/datasets/uciml/adult-census-income)
- [Credit card fraud](https://www.kaggle.com/mlg-ulb/creditcardfraud)
- [Cardiovascular Disease dataset](https://www.kaggle.com/datasets/sulianova/cardiovascular-disease-dataset)

#### Sequential datasets
- [Stock data](https://github.com/ydataai/ydata-synthetic/tree/master/data)
- [FCC MBA data](https://github.com/ydataai/ydata-synthetic/tree/master/data)

## Project Resources

In this repository you can find the several GAN architectures that are used to create synthesizers:

### Tabular data
  - [GAN](https://arxiv.org/abs/1406.2661)
  - [CGAN (Conditional GAN)](https://arxiv.org/abs/1411.1784)
  - [WGAN (Wasserstein GAN)](https://arxiv.org/abs/1701.07875)
  - [WGAN-GP (Wassertein GAN with Gradient Penalty)](https://arxiv.org/abs/1704.00028)
  - [DRAGAN (On Convergence and stability of GANS)](https://arxiv.org/pdf/1705.07215.pdf)
  - [Cramer GAN (The Cramer Distance as a Solution to Biased Wasserstein Gradients)](https://arxiv.org/abs/1705.10743)
  - [CWGAN-GP (Conditional Wassertein GAN with Gradient Penalty)](https://cameronfabbri.github.io/papers/conditionalWGAN.pdf)
  - [CTGAN (Conditional Tabular GAN)](https://arxiv.org/pdf/1907.00503.pdf)
  - [Gaussian Mixture](https://towardsdatascience.com/gaussian-mixture-models-explained-6986aaf5a95)

### Sequential data
  - [TimeGAN](https://papers.nips.cc/paper/2019/file/c9efe5f26cd17ba6216bbe2a7d26d490-Paper.pdf)
  - [DoppelGANger](https://dl.acm.org/doi/pdf/10.1145/3419394.3423643)

## Contributing
We are open to collaboration! If you want to start contributing you only need to:
  1. Search for an issue in which you would like to work. Issues for newcomers are labeled with good first issue.
  2. Create a PR solving the issue.
  3. We would review every PRs and either accept or ask for revisions.

## Support
For support in using this library, please join our Discord server. Our Discord community is very friendly and great about quickly answering questions about the use and development of the library. [Click here to join our Discord community!](https://tiny.ydata.ai/dcai-ydata-synthetic)

## FAQs
Have a question? Check out the [Frequently Asked Questions](https://ydata.ai/resources/10-most-asked-questions-on-ydata-synthetic) about `ydata-synthetic`. If you feel something is missing, feel free to [book a beary informal chat with us](https://meetings.hubspot.com/fabiana-clemente).

## License
[MIT License](https://github.com/ydataai/ydata-synthetic/blob/master/LICENSE)



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ydataai/ydata-synthetic",
    "name": "ydata-synthetic",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9, <3.11",
    "maintainer_email": "",
    "keywords": "data science ydata",
    "author": "YData",
    "author_email": "community@ydata.ai",
    "download_url": "https://files.pythonhosted.org/packages/28/51/be75a1f48b54fbf8168706c3a22909481ba475317c4825bd2a6db22214c5/ydata-synthetic-1.3.2.tar.gz",
    "platform": null,
    "description": "![](https://img.shields.io/github/workflow/status/ydataai/ydata-synthetic/prerelease)\n![](https://img.shields.io/pypi/status/ydata-synthetic)\n[![](https://pepy.tech/badge/ydata-synthetic)](https://pypi.org/project/ydata-synthetic/)\n![](https://img.shields.io/badge/python-3.9%20%7C%203.10-blue)\n[![](https://img.shields.io/pypi/v/ydata-synthetic)](https://pypi.org/project/ydata-synthetic/)\n![](https://img.shields.io/github/license/ydataai/ydata-synthetic)\n\n<p align=\"center\"><img width=\"300\" src=\"https://assets.ydata.ai/oss/ydata-synthetic_black.png\" alt=\"YData Synthetic Logo\"></p>\n\nJoin us on [![Discord](https://img.shields.io/badge/Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white)](https://tiny.ydata.ai/dcai-ydata-synthetic)\n\n# YData Synthetic\nA package to generate synthetic tabular and time-series data leveraging the state of the art generative models.\n\n## \ud83c\udf8a The exciting features:\n> These are must try features when it comes to synthetic data generation:\n  > - A new streamlit app that delivers the synthetic data generation experience with a UI interface. A low code experience for the quick generation of synthetic data\n  > - A new fast synthetic data generation model based on Gaussian Mixture. So you can quickstart in the world of synthetic data generation without the need for a GPU.\n  > - A conditional architecture for tabular data: CTGAN, which will make the process of synthetic data generation easier and with higher quality!\n\n## Synthetic data\n### What is synthetic data?\nSynthetic data is artificially generated data that is not collected from real world events. It replicates the statistical components of real data without containing any identifiable information, ensuring individuals' privacy.\n\n### Why Synthetic Data?\nSynthetic data can be used for many applications:\n  - Privacy compliance for data-sharing and Machine Learning development\n  - Remove bias\n  - Balance datasets\n  - Augment datasets\n\n> **Looking for an end-to-end solution to Synthetic Data Generation?**<br>\n> [YData Fabric](https://ydata.ai/products/synthetic_data) enables the generation of high-quality datasets within a full UI experience, from data preparation to synthetic data generation and evaluation.<br>\n> Check out the [Community Version](https://ydata.ai/ydata-fabric-free-trial).\n\n\n# ydata-synthetic\nThis repository contains material related with architectures and models for synthetic data, from Generative Adversarial Networks (GANs) to Gaussian Mixtures.\nThe repo includes a full ecosystem for synthetic data generation, that includes different models for the generation of synthetic structure data and time-series.\nAll the Deep Learning models are implemented leveraging Tensorflow 2.0.\nSeveral example Jupyter Notebooks and Python scripts are included, to show how to use the different architectures.\n\nAre you ready to learn more about synthetic data and the bext-practices for synthetic data generation?\n\n## Quickstart\nThe source code is currently hosted on GitHub at: https://github.com/ydataai/ydata-synthetic\n\nBinary installers for the latest released version are available at the [Python Package Index (PyPI).](https://pypi.org/project/ydata-synthetic/)\n```commandline\npip install ydata-synthetic\n```\n\n### The UI guide for synthetic data generation\n\nYData synthetic has now a UI interface to guide you through the steps and inputs to generate structure tabular data.\nThe streamlit app is available form *v1.0.0* onwards, and supports the following flows:\n- Train a synthesizer model\n- Generate & profile synthetic data samples\n\n#### Installation\n\n```commandline\npip install ydata-synthetic[streamlit]\n```\n#### Quickstart\nUse the code snippet below in a python file (Jupyter Notebooks are not supported):\n```python\nfrom ydata_synthetic import streamlit_app\n\nstreamlit_app.run()\n```\n\nOr use the file streamlit_app.py that can be found in the [examples folder](https://github.com/ydataai/ydata-synthetic/tree/master/examples/streamlit_app.py).\n\n```commandline\npython -m streamlit_app\n```\n\nThe below models are supported:\n  - CGAN\n  - WGAN\n  - WGANGP\n  - DRAGAN\n  - CRAMER\n  - CTGAN\n\n[![Watch the video](assets/streamlit_app.png)](https://youtu.be/ep0PhwsFx0A)\n\n### Examples\nHere you can find usage examples of the package and models to synthesize tabular data.\n  - Fast tabular data synthesis on adult census income dataset [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ydataai/ydata-synthetic/blob/master/examples/regular/models/Fast_Adult_Census_Income_Data.ipynb)\n  - Tabular synthetic data generation with CTGAN on adult census income dataset [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ydataai/ydata-synthetic/blob/master/examples/regular/models/CTGAN_Adult_Census_Income_Data.ipynb)\n  - Time Series synthetic data generation with TimeGAN on stock dataset [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ydataai/ydata-synthetic/blob/master/examples/timeseries/TimeGAN_Synthetic_stock_data.ipynb)\n  - Time Series synthetic data generation with DoppelGANger on FCC MBA dataset [![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ydataai/ydata-synthetic/blob/master/examples/timeseries/DoppelGANger_FCC_MBA_Dataset.ipynb)\n  - More examples are continuously added and can be found in `/examples` directory.\n\n### Datasets for you to experiment\nHere are some example datasets for you to try with the synthesizers:\n#### Tabular datasets\n- [Adult Census Income](https://www.kaggle.com/datasets/uciml/adult-census-income)\n- [Credit card fraud](https://www.kaggle.com/mlg-ulb/creditcardfraud)\n- [Cardiovascular Disease dataset](https://www.kaggle.com/datasets/sulianova/cardiovascular-disease-dataset)\n\n#### Sequential datasets\n- [Stock data](https://github.com/ydataai/ydata-synthetic/tree/master/data)\n- [FCC MBA data](https://github.com/ydataai/ydata-synthetic/tree/master/data)\n\n## Project Resources\n\nIn this repository you can find the several GAN architectures that are used to create synthesizers:\n\n### Tabular data\n  - [GAN](https://arxiv.org/abs/1406.2661)\n  - [CGAN (Conditional GAN)](https://arxiv.org/abs/1411.1784)\n  - [WGAN (Wasserstein GAN)](https://arxiv.org/abs/1701.07875)\n  - [WGAN-GP (Wassertein GAN with Gradient Penalty)](https://arxiv.org/abs/1704.00028)\n  - [DRAGAN (On Convergence and stability of GANS)](https://arxiv.org/pdf/1705.07215.pdf)\n  - [Cramer GAN (The Cramer Distance as a Solution to Biased Wasserstein Gradients)](https://arxiv.org/abs/1705.10743)\n  - [CWGAN-GP (Conditional Wassertein GAN with Gradient Penalty)](https://cameronfabbri.github.io/papers/conditionalWGAN.pdf)\n  - [CTGAN (Conditional Tabular GAN)](https://arxiv.org/pdf/1907.00503.pdf)\n  - [Gaussian Mixture](https://towardsdatascience.com/gaussian-mixture-models-explained-6986aaf5a95)\n\n### Sequential data\n  - [TimeGAN](https://papers.nips.cc/paper/2019/file/c9efe5f26cd17ba6216bbe2a7d26d490-Paper.pdf)\n  - [DoppelGANger](https://dl.acm.org/doi/pdf/10.1145/3419394.3423643)\n\n## Contributing\nWe are open to collaboration! If you want to start contributing you only need to:\n  1. Search for an issue in which you would like to work. Issues for newcomers are labeled with good first issue.\n  2. Create a PR solving the issue.\n  3. We would review every PRs and either accept or ask for revisions.\n\n## Support\nFor support in using this library, please join our Discord server. Our Discord community is very friendly and great about quickly answering questions about the use and development of the library. [Click here to join our Discord community!](https://tiny.ydata.ai/dcai-ydata-synthetic)\n\n## FAQs\nHave a question? Check out the [Frequently Asked Questions](https://ydata.ai/resources/10-most-asked-questions-on-ydata-synthetic) about `ydata-synthetic`. If you feel something is missing, feel free to [book a beary informal chat with us](https://meetings.hubspot.com/fabiana-clemente).\n\n## License\n[MIT License](https://github.com/ydataai/ydata-synthetic/blob/master/LICENSE)\n\n\n",
    "bugtrack_url": null,
    "license": "https://github.com/ydataai/ydata-synthetic/blob/master/LICENSE",
    "summary": "Synthetic data generation methods with different synthetization methods.",
    "version": "1.3.2",
    "project_urls": {
        "Homepage": "https://github.com/ydataai/ydata-synthetic"
    },
    "split_keywords": [
        "data",
        "science",
        "ydata"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "78bee8c6d80f2c4062abf05364374b15260688342b4db316f9614075860dc3c3",
                "md5": "e72efbca3f10faaa2f4b451bf3e07926",
                "sha256": "878323ba5ebcaa83549825d71a66d16ab60afa69739214708d8b6ae5e6b0ad21"
            },
            "downloads": -1,
            "filename": "ydata_synthetic-1.3.2-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e72efbca3f10faaa2f4b451bf3e07926",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.9, <3.11",
            "size": 86285,
            "upload_time": "2023-12-08T22:54:50",
            "upload_time_iso_8601": "2023-12-08T22:54:50.142257Z",
            "url": "https://files.pythonhosted.org/packages/78/be/e8c6d80f2c4062abf05364374b15260688342b4db316f9614075860dc3c3/ydata_synthetic-1.3.2-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2851be75a1f48b54fbf8168706c3a22909481ba475317c4825bd2a6db22214c5",
                "md5": "6ba9fe3a4856c8ecf4d7ad36b4eda33f",
                "sha256": "da634966a11b6f8d808e9cd4421d937eece6876530bf58441963c64da600f7de"
            },
            "downloads": -1,
            "filename": "ydata-synthetic-1.3.2.tar.gz",
            "has_sig": false,
            "md5_digest": "6ba9fe3a4856c8ecf4d7ad36b4eda33f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9, <3.11",
            "size": 63646,
            "upload_time": "2023-12-08T22:54:51",
            "upload_time_iso_8601": "2023-12-08T22:54:51.736653Z",
            "url": "https://files.pythonhosted.org/packages/28/51/be75a1f48b54fbf8168706c3a22909481ba475317c4825bd2a6db22214c5/ydata-synthetic-1.3.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-08 22:54:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ydataai",
    "github_project": "ydata-synthetic",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.30"
                ],
                [
                    "<",
                    "2.31"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    "==",
                    "2.0.*"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.23.*"
                ]
            ]
        },
        {
            "name": "scikit-learn",
            "specs": [
                [
                    "==",
                    "1.3.*"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    "==",
                    "3.7.*"
                ]
            ]
        },
        {
            "name": "tensorflow",
            "specs": [
                [
                    "==",
                    "2.12.0"
                ]
            ]
        },
        {
            "name": "tensorflow-probability",
            "specs": [
                [
                    "==",
                    "0.19.0"
                ]
            ]
        },
        {
            "name": "easydict",
            "specs": [
                [
                    "==",
                    "1.10"
                ]
            ]
        },
        {
            "name": "pmlb",
            "specs": [
                [
                    "==",
                    "1.0.*"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    "<",
                    "5.0"
                ]
            ]
        },
        {
            "name": "typeguard",
            "specs": [
                [
                    "==",
                    "4.0.*"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    "==",
                    "7.4.*"
                ]
            ]
        }
    ],
    "lcname": "ydata-synthetic"
}
        
Elapsed time: 0.17405s