Generate high-quality synthetic healthcare data using the Gaussian Copula model and evaluate its usefulness through statistical analysis, visualization, machine learning performance, and privacy assessment.
Access to high-quality datasets is often limited by privacy concerns, especially in healthcare. Synthetic data generation offers a way to create realistic datasets that preserve important statistical properties while reducing the exposure of sensitive information.
This project implements a Gaussian Copula-based approach for generating synthetic tabular healthcare data and evaluates the generated data using multiple quantitative and visual techniques.
This project was further developed following an award-winning submission at the AI & Deep Learning Codeathon (2026), where it received Second Prize.
- Generate realistic synthetic tabular data.
- Preserve statistical properties of the original dataset.
- Evaluate synthetic data quality using multiple techniques.
- Compare machine learning performance between original and synthetic datasets.
- Assess the privacy characteristics of the generated data.
The project uses the publicly available Heart Disease dataset.
The dataset used in this project is publicly available and is included in the repository for reproducibility.
The dataset contains clinical attributes such as:
- Age
- Sex
- Chest Pain Type
- Blood Pressure
- Cholesterol
- Maximum Heart Rate
- ECG
- ST Depression
- Heart Disease Target
The workflow followed in this project is:
- Load and prepare the original dataset.
- Automatically detect dataset metadata.
- Train a Gaussian Copula synthesizer.
- Generate multiple synthetic datasets.
- Compare descriptive statistics.
- Evaluate downstream machine learning performance.
- Compare feature distributions.
- Analyze feature correlations.
- Perform statistical hypothesis testing (KS Test).
- Evaluate privacy using nearest-neighbor analysis.
synthetic-data-generation/
│
├── notebooks/
│ └── synthetic_data_generation.ipynb
│
├── data/
│ └── heart.csv
│
├── images/
├── results/
│
├── README.md
├── requirements.txt
├── LICENSE
└── .gitignore
- Python
- Pandas
- NumPy
- SDV (Gaussian Copula)
- Scikit-learn
- Matplotlib
- Seaborn
- SciPy
The generated synthetic datasets were evaluated using:
- Descriptive statistical comparison
- Distribution visualization
- Correlation analysis
- PCA visualization
- Kolmogorov–Smirnov statistical testing
- Machine learning performance comparison
- Privacy evaluation through nearest-neighbor distance analysis
Together, these evaluations provide insight into both the utility and realism of the generated synthetic data.
Clone the repository:
git clone https://github.com/Farooq-ro/synthetic-data-generation.gitInstall the required libraries:
pip install -r requirements.txtOpen:
notebooks/synthetic_data_generation.ipynb
Run all cells in order.
Potential future enhancements include:
- Comparing Gaussian Copula with CTGAN and TVAE.
- Evaluating additional healthcare datasets.
- Implementing automated quality metrics.
- Packaging the workflow into a reusable Python module.
- Developing a simple web interface for synthetic data generation.
This project is released under the MIT License.
