sdv-dev/SDGym
GitHub: sdv-dev/SDGym
SDGym 是一个用于对合成数据生成算法进行基准测试的框架,旨在评估模型的性能、内存占用及数据质量。
Stars: 305 | Forks: 69
本仓库是 The Synthetic Data Vault Project 的一部分,该项目由 DataCebo 发起。
[](https://pypi.org/search/?c=Development+Status+%3A%3A+2+-+Pre-Alpha) [](https://travis-ci.org/sdv-dev/SDGym) [](https://pypi.python.org/pypi/sdgym) [](https://pepy.tech/project/sdgym) [](https://bit.ly/sdv-slack-invite)
SDGym 库与 Synthetic Data Vault 生态系统集成。您可以使用其任何 synthesizer、数据集或指标进行基准测试。您也可以自定义流程以包含您自己的工作。
* **数据集**:从 SDV 项目中选择任何公开可用的数据集,或输入您自己的数据。
* **Synthesizers**:从任何 SDV synthesizer 和基线中进行选择。或者编写您自己的自定义机器学习模型。
* **评估**:除了性能和内存使用情况外,您还可以通过各种指标衡量合成数据的质量和隐私。
# 安装
使用 pip 或 conda 安装 SDGym。我们建议使用虚拟环境,以避免与您设备上的其他软件发生冲突。
```
pip install sdgym
```
```
conda install -c pytorch -c conda-forge sdgym
```
有关使用 SDGym 的更多信息,请访问 [SDGym 文档](https://docs.sdv.dev/sdgym)。
# 用法
让我们对单表的合成数据生成进行基准测试。首先,让我们定义要使用的建模技术。让我们从 SDV 库中选择几个 synthesizer,并选择其他几个作为基线。
```
# 这些 synthesizers 来自 SDV library
# 每一个使用不同的 modeling techniques
sdv_synthesizers = ['GaussianCopulaSynthesizer', 'CTGANSynthesizer']
# 这些 basic synthesizers 可在 SDGym 中使用
# 作为 baselines
baseline_synthesizers = ['UniformSynthesizer']
```
现在,我们可以对不同的技术进行基准测试:
```
import sdgym
sdgym.benchmark_single_table(synthesizers=(sdv_synthesizers + baseline_synthesizers))
```
结果是对各种公开可用数据集上的 synthesizer 进行的详细性能、内存和质量评估。
## 提供自定义 synthesizer
对您自己的合成数据生成技术进行基准测试。通过指定训练逻辑(使用机器学习)和采样逻辑来定义您的 synthesizer。
```
def my_training_logic(data, metadata):
# create an object to represent your synthesizer
# train it using the data
return synthesizer
def my_sampling_logic(trained_synthesizer, num_rows):
# use the trained synthesizer to create
# num_rows of synthetic data
return synthetic_data
```
在 [自定义 Synthesizers 指南](https://docs.sdv.dev/sdgym/customization/synthesizers/custom-synthesizers) 中了解更多信息。
## 自定义您的数据集
SDGym 库包含许多公开可用的数据集,您可以立即使用它们。使用 ``list_datasets`` 功能列出这些数据集。
```
sdgym.dataset_explorer.DatasetExplorer().list_datasets()
```
```
dataset_name size_MB num_tables
KRK_v1 0.072128 1
adult 3.907448 1
alarm 4.520128 1
asia 1.280128 1
...
```
您还可以包含存储在您计算机上或 Amazon S3 存储桶中的任何自定义、私有数据集。
```
my_datasets_folder = 's3://my-datasets-bucket'
```
有关更多信息,请参阅 [自定义数据集](https://docs.sdv.dev/sdgym/customization/datasets) 的文档。
# 接下来做什么?
访问 [SDGym 文档](https://docs.sdv.dev/sdgym) 以了解更多信息!
[The Synthetic Data Vault Project](https://sdv.dev) 最初于 2016 年在 MIT 的 [Data to AI Lab]( https://dai.lids.mit.edu/) 创建。经过 4 年的研究和企业应用,我们于 2020 年创立了 [DataCebo](https://datacebo.com),旨在发展该项目。 如今,DataCebo 是 SDV 的骄傲开发者,SDV 是最大的合成数据生成与评估生态系统。它是支持合成数据的多个库的所在地,包括: * 🔄 数据发现与转换。逆转转换以重现逼真的数据。 * 🧠 多种机器学习模型——从 Copulas 到深度学习——用于创建表格、多表和时间序列数据。 * 📊 衡量合成数据的质量和隐私,并比较不同的合成数据生成模型。 [开始使用 SDV 包](https://sdv.dev/SDV/getting_started/install.html) —— 一个完全集成的解决方案,也是您合成数据的一站式商店。或者,针对特定需求使用独立的库。
标签:Apex, DataCebo, JARM, SDV, 内存分析, 凭据扫描, 合成数据, 性能测试, 数据生成, 数据科学, 数据质量评估, 数据隐私, 机器学习, 深度学习, 统计建模, 资源验证, 逆向工具
