使用各种数据集对表格式合成数据生成器进行基准测试
项目描述
概述
合成数据健身房(SDGym)是一个用于建模和生成合成数据的基准框架。衡量不同合成数据建模技术(经典统计学、深度学习等)的性能和内存使用情况!
SDGym 库与合成数据宝库生态系统集成。您可以使用其任何合成器、数据集或指标进行基准测试。您还可以自定义过程,包括您自己的工作。
- 数据集:从 SDV 项目中选择任何公开可用的数据集,或输入您自己的数据。
- 合成器:从 SDV 合成器中选择任何基准。或者编写您自己的自定义机器学习模型。
- 评估:除了性能和内存使用外,您还可以通过各种指标衡量合成数据质量和隐私。
安装
使用 pip 或 conda 安装 SDGym。我们建议使用虚拟环境,以避免与设备上其他软件发生冲突。
pip install sdgym
conda install -c pytorch -c conda-forge sdgym
有关使用 SDGym 的更多信息,请访问 SDGym 文档。
用法
让我们对单表合成数据生成进行基准测试。首先,让我们定义我们想使用的建模技术。让我们从 SDV 库中选择一些合成器和其他一些作为基准。
# these synthesizers come from the SDV library
# each one uses different modeling techniques
sdv_synthesizers = ['GaussianCopulaSynthesizer', 'CTGANSynthesizer']
# these basic synthesizers are available in SDGym
# as baselines
baseline_synthesizers = ['UniformSynthesizer']
现在,我们可以基准测试不同的技术
import sdgym
sdgym.benchmark_single_table(
synthesizers=(sdv_synthesizers + baseline_synthesizers)
)
结果是针对各种公开可用的数据集的合成器性能、内存和质量评估的详细报告。
提供自定义合成器
基准测试您自己的合成数据生成技术。通过指定训练逻辑(使用机器学习)和采样逻辑来定义您的合成器。
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
有关更多信息,请参阅 自定义合成器指南。
自定义您的数据集
SDGym 库包含许多公开可用的数据集,您可以立即使用它们。使用 get_available_datasets
功能列出这些数据集。
sdgym.get_available_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'
有关更多信息,请参阅 自定义数据集 文档。
接下来是什么?
访问 SDGym 文档 了解更多信息!
合成数据保险库项目于2016年首次在麻省理工学院的数据到AI实验室(Data to AI Lab)创建。经过4年的企业合作研究和推广,我们于2020年创建了DataCebo,目标是扩大项目规模。如今,DataCebo是SDV的骄傲开发者,SDV是最大的合成数据生成与评估生态系统。它拥有多个支持合成数据的库,包括
- 🔄 数据发现与转换。反向转换以重现真实数据。
- 🧠 多种机器学习模型,从Copulas到深度学习,以创建表格、多表格和时间序列数据。
- 📊 衡量合成数据的质量和隐私,并比较不同的合成数据生成模型。
开始使用SDV包 -- 一个完全集成的解决方案,也是您合成数据的一站式商店。或者,使用独立的库来满足特定需求。
项目详情
下载文件
下载您平台上的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。