合成数据生成器(Synthetic Data Generator,SDG)是一个专注于快速生成高质量结构化表格数据的组件。支持10余种单表、多表数据合成算法,实现最高120倍性能提升,支持差分隐私等方法,加强合成数据安全性。
合成数据是由机器根据真实数据与算法生成的,合成数据不含敏感信息,但能保留真实数据中的行为特征。合成数据与真实数据不存在任何对应关系,不受 GDPR 、ADPPA等隐私法规的约束,在实际应用中不需要担心隐私泄漏风险。高质量的合成数据可用于数据安全开放、模型训练调试、系统开发测试等众多领域。
重要链接 | |
---|---|
📖 文档 | 项目API文档 |
项目仓库 | 项目Github仓库 |
📜 License | Apache-2.0 license |
举个例子 🌰 | 在AI靶场上运行SDG示例(TBD) |
pip install sdgx
# 导入相关模块
from sdgx.models.single_table.ctgan import CTGAN
from sdgx.transform.sampler import DataSamplerCTGAN
from sdgx.transform.transformer import DataTransformerCTGAN
from sdgx.utils.io.csv_utils import *
# 读取数据
demo_data, discrete_cols = get_demo_single_table()
真实数据示例如下:
age workclass fnlwgt ... hours-per-week native-country class
0 27 Private 177119 ... 44 United-States <=50K
1 27 Private 216481 ... 40 United-States <=50K
2 25 Private 256263 ... 40 United-States <=50K
3 46 Private 147640 ... 40 United-States <=50K
4 45 Private 172822 ... 76 United-States >50K
... ... ... ... ... ... ... ...
32556 43 Local-gov 33331 ... 40 United-States >50K
32557 44 Private 98466 ... 35 United-States <=50K
32558 23 Private 45317 ... 40 United-States <=50K
32559 45 Local-gov 215862 ... 45 United-States >50K
32560 25 Private 186925 ... 48 United-States <=50K
[32561 rows x 15 columns]
#定义模型
model = GeneratorCTGAN(epochs=10,\
transformer= DataTransformerCTGAN,\
sampler=DataSamplerCTGAN)
# 训练模型
model.fit(demo_data, discrete_cols)
# 生成合成数据
sampled_data = model.generate(1000)
合成数据如下:
age workclass fnlwgt ... hours-per-week native-country class
0 33 Private 276389 ... 41 United-States >50K
1 33 Self-emp-not-inc 296948 ... 54 United-States <=50K
2 67 Without-pay 266913 ... 51 Columbia <=50K
3 49 Private 423018 ... 41 United-States >50K
4 22 Private 295325 ... 39 United-States >50K
5 63 Private 234140 ... 65 United-States <=50K
6 42 Private 243623 ... 52 United-States <=50K
7 75 Private 247679 ... 41 United-States <=50K
8 79 Private 332237 ... 41 United-States >50K
9 28 State-gov 837932 ... 99 United-States <=50K
- 高性能
- 支持10余种单表、多表数据合成算法,实现最高120倍性能提升;
- SDG会持续跟踪学术界和工业界的最新进展,及时引入支持优秀算法和模型。
- 生产环境快速部署
- 针对实际生产需求进行优化,提升模型性能,降低内存开销,支持单机多卡、多机多卡等实用特性;
- 提供自动化部署、容器化技术、自动化监控和报警等生产环境所需技术,支持容器化快速一键部署;
- 针对负载均衡和容错性进行专门优化,提升组件可用性。
- 隐私增强:
- 提供中文敏感数据自动识别能力,包括姓名、身份证号、人名等17种常见敏感字段;
- 支持差分隐私、匿名化等方法,加强合成数据安全性。
模型 | Adult(二分类数据集)(%) | Satellite(多分类数据集)(%) |
---|---|---|
原始数据集 | 69.5 | 89.23 |
CTGAN | 60.38 | 69.43 |
TVAE | 59.52 | 83.58 |
table-GAN | 63.29 | 79.15 |
CTAB-GAN | 58.59 | 79.24 |
OCT-GAN | 55.18 | 80.98 |
CorTGAN | 67.13 | 84.27 |
模型 | Rossmann(回归数据集)(rmspe) | Telstra(分类数据集)(mlogloss) |
---|---|---|
原始数据集 | 0.2217 | 0.5381 |
SDV | 0.6897 | 1.1719 |
CWAMT | 0.4348 | 0.818 |
- CTGAN:Modeling Tabular Data using Conditional GAN
- TVAE:Modeling Tabular Data using Conditional GAN
- table-GAN:Data Synthesis based on Generative Adversarial Networks
- CTAB-GAN:CTAB-GAN: Effective Table Data Synthesizing
- OCT-GAN: OCT-GAN: Neural ODE-based Conditional Tabular GANs
- SDV:The Synthetic data vault
具体接口参数请参考 API文档 【TBD】。
SDG开源项目由哈尔滨工业大学(深圳)数据安全研究院发起,若您对SDG项目感兴趣并愿意一起完善它,欢迎加入我们的开源社区。
非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。
开发环境配置请参考开发者文档
SDG开源项目使用 Apache-2.0 license,有关协议请参考LICENSE。