CTGAN

GitHub
1.5k 329 简单 1 次阅读 今天NOASSERTION数据工具
AI 解读 由 AI 自动生成,仅供参考

CTGAN 是一款基于深度学习的开源工具,专为生成高质量的合成表格数据而设计。它能够学习真实数据的分布规律和特征,进而创造出在统计特性上与原始数据高度相似的“虚拟”数据,同时确保不泄露任何真实的隐私信息。

在实际应用中,许多团队面临着数据稀缺、敏感数据无法共享或测试数据难以获取的困境。CTGAN 有效解决了这些痛点,让开发者无需担心隐私合规问题,就能获得充足的数据用于模型训练、软件测试或算法研究。目前,它主要实现了 CTGAN 和 TVAE 两种核心模型,这两种算法源自 NeurIPS 2019 会议的前沿论文,特别擅长处理包含连续值和离散值的复杂表格数据。

这款工具非常适合数据科学家、机器学习工程师以及学术研究人员使用。如果你正在构建需要大量样本的预测模型,或者需要在保护用户隐私的前提下进行数据分析,CTGAN 将是一个得力的助手。虽然它也支持作为独立库安装,但官方更推荐通过 SDV(Synthetic Data Vault)生态系统来使用,这样可以享受更便捷的数据预处理流程和友好的接口设计。值得注意的是,当前版本仍处于预发布阶段,适合愿意探索前沿技术并进行实验性开发的用户。

使用场景

某金融科技公司风控团队需要在保护用户隐私的前提下,利用真实的信贷交易数据训练机器学习模型以识别欺诈行为。

没有 CTGAN 时

  • 数据共享受限:由于原始表格包含大量敏感个人信息(如收入、负债),受合规法规限制,数据科学家无法将生产环境数据导出到开发或测试环境。
  • 样本分布失衡:真实数据中欺诈案例极少(占比不足 1%),直接训练导致模型严重偏向正常交易,难以捕捉罕见的欺诈模式。
  • 特征关联丢失:传统简单的随机采样或加噪处理破坏了列与列之间复杂的非线性关系(如“年龄”与“贷款额度”的特定关联),导致合成数据无法反映真实业务逻辑。
  • 开发迭代缓慢:团队需花费数周时间进行繁琐的数据脱敏审批和人工构造模拟数据,严重拖慢了模型原型的验证进度。

使用 CTGAN 后

  • 安全数据生成:CTGAN 学习真实数据的统计分布后,生成高保真的合成表格数据,既保留了原始数据的数学特性,又彻底切断了与具体个人的关联,满足合规共享要求。
  • 平衡类别分布:通过条件生成机制,团队可指定生成特定比例的欺诈样本,人为扩充少数类数据,显著提升了模型对异常交易的识别准确率。
  • 保持复杂关联:基于条件 GAN 架构,CTGAN 精准还原了离散型与连续型特征间复杂的依赖关系,确保在合成数据上训练的模型性能与真实场景高度一致。
  • 加速研发流程:数据工程师只需几行代码即可在本地快速生成大规模数据集,将原本数周的数据准备周期缩短至几小时,大幅提升了算法迭代效率。

CTGAN 通过生成高保真且合规的合成表格数据,成功打破了数据隐私与模型训练效果之间的僵局,让风控模型在安全环境中得以高效进化。

运行环境要求

操作系统
  • 未说明
GPU

未说明 (基于深度学习模型,通常建议使用支持 CUDA 的 NVIDIA GPU 以加速训练,但 README 未明确强制要求)

内存

未说明

依赖
notes该工具是 SDV (Synthetic Data Vault) 项目的一部分。可以通过 pip 或 conda 安装。如果直接使用 CTGAN 库(而非通过 SDV),用户需要手动预处理数据:连续数据必须为浮点数,离散数据必须为整数或字符串,且数据中不能包含缺失值。目前软件处于 Pre-Alpha(预阿尔法)开发阶段。
python未说明
torch
pandas
numpy
CTGAN hero image

快速开始


此仓库是 合成数据保险库项目 的一部分,该项目由 DataCebo 推出。

开发状态 PyPI盾牌 单元测试 下载量 覆盖率 论坛

概述

CTGAN 是一系列基于深度学习的单表数据合成生成器,能够从真实数据中学习,并生成高保真度的合成数据。

重要链接
:computer: [官网] 访问 SDV 官网,了解更多关于我们整体合成数据生态的信息。
:orange_book: [博客] 深入探讨开源、合成数据的创建与评估。
:book: [文档] 快速入门、用户指南、开发指南以及 API 参考。
:octocat: [仓库] 此库的 GitHub 仓库链接。
:keyboard: [开发状态] 本软件目前处于预 Alpha 阶段。
:busts_in_silhouette: [DataCebo 论坛] 讨论 CTGAN 功能、提问并获得帮助。

目前,该库实现了在 2019 年 NeurIPS 大会上发表的论文 使用条件 GAN 建模表格数据 中描述的 CTGANTVAE 模型。

安装

通过 SDV 库使用 CTGAN

:warning: 如果您刚刚开始接触合成数据,我们建议安装 SDV 库,它提供了易于使用的 API 来访问 CTGAN。 :warning:

SDV 库为您的数据预处理提供了封装,并包含约束等额外的易用性功能。请参阅 SDV 文档 开始使用。

直接使用 CTGAN 独立库

或者,您也可以直接安装和使用 CTGAN 作为独立库:

使用 pip:

pip install ctgan

使用 conda:

conda install -c pytorch -c conda-forge ctgan

直接使用 CTGAN 库时,您可能需要手动将数据预处理成正确的格式,例如:

  • 连续数据必须表示为浮点数
  • 离散数据必须表示为整数或字符串
  • 数据不应包含任何缺失值

使用示例

在本示例中,我们加载了 Adult Census 数据集*,这是一个内置的演示数据集。我们使用 CTGAN 从真实数据中学习,然后生成一些合成数据。

from ctgan import CTGAN
from ctgan import load_demo

real_data = load_demo()

# 离散列的名称
discrete_columns = [
    'workclass',
    'education',
    'marital-status',
    'occupation',
    'relationship',
    'race',
    'sex',
    'native-country',
    'income',
]

ctgan = CTGAN(epochs=10)
ctgan.fit(real_data, discrete_columns)

# 创建合成数据
synthetic_data = ctgan.sample(1000)

*有关数据集的更多信息,请参阅: Dua, D. 和 Graff, C. (2019). UCI 机器学习存储库 [http://archive.ics.uci.edu/ml]。 加州欧文:加州大学信息与计算机科学学院。

加入我们的社区

加入我们的 论坛,讨论更多关于 CTGAN 的内容,提问并获得帮助。

有兴趣为 CTGAN 做贡献吗? 请阅读我们的 贡献指南 开始行动。

引用 CTGAN

如果您使用 CTGAN,请引用以下文献:

Lei Xu, Maria Skoularidou, Alfredo Cuesta-Infante, Kalyan Veeramachaneni. 使用条件 GAN 建模表格数据。NeurIPS,2019 年。

@inproceedings{ctgan,
  title={Modeling Tabular data using Conditional GAN},
  author={Xu, Lei and Skoularidou, Maria and Cuesta-Infante, Alfredo and Veeramachaneni, Kalyan},
  booktitle={Advances in Neural Information Processing Systems},
  year={2019}
}

相关项目

请注意,这些项目不属于 SDV 生态系统,与 DataCebo 无关联,也不由 DataCebo 维护。




合成数据 vault 项目 最早于 2016 年在麻省理工学院的 数据到 AI 实验室 创建。经过四年的研究以及在企业界的广泛应用后,我们于 2020 年成立了 DataCebo,旨在进一步推动该项目的发展。 如今,DataCebo 是 SDV 的自豪开发者,SDV 是目前最大的合成数据生成与评估生态系统。该生态体系包含多个支持合成数据的库,其中包括:

  • 🔄 数据发现与转换。通过逆向变换重现真实数据。
  • 🧠 多种机器学习模型——从 Copula 到深度学习——可用于生成表格型、多表结构及时间序列数据。
  • 📊 用于衡量合成数据的质量与隐私保护水平,并比较不同合成数据生成模型的工具。

开始使用 SDV 软件包——这是一个完全集成的解决方案,也是您获取合成数据的一站式平台。或者,您也可以根据具体需求单独使用各个独立库。

版本历史

v0.12.12026/02/13
v0.12.02026/01/27
v0.11.12025/10/30
v0.11.02025/02/26
v0.10.22024/10/22
v0.10.12024/05/13
v0.10.02024/04/11
v0.9.12024/03/14
v0.9.02024/02/13
v0.8.02023/11/13
v0.7.52023/10/05
v0.7.42023/07/27
v0.7.32023/05/25
v0.7.22023/05/09
v0.7.12023/02/23
v0.7.02023/01/20
v0.6.02022/10/07
v0.5.22022/08/19
v0.5.12022/02/25
v0.5.02021/11/18

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2天前
Agent开发框架图像

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|2天前
图像数据工具视频

scikit-learn

scikit-learn 是一个基于 Python 构建的开源机器学习库,依托于 SciPy、NumPy 等科学计算生态,旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口,涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具,内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。 对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言,scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点,让用户无需重复造轮子,只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。 其核心技术亮点在于高度一致的 API 设计风格,所有估算器(Estimator)均遵循相同的调用逻辑,极大地降低了学习成本并提升了代码的可读性与可维护性。此外,它还提供了强大的模型选择与评估工具,如交叉验证和网格搜索,帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目,scikit-learn 以其稳定性、详尽的文档和活跃的社区支持,成为连接理论学习与工业级应用的最

65.7k|★☆☆☆☆|今天
开发框架其他数据工具

keras

Keras 是一个专为人类设计的深度学习框架,旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。 无论是刚入门的学生、专注算法的研究人员,还是需要快速落地产品的工程师,都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。 Keras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码,即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性,还允许开发者根据需求自由选择:利用 JAX 或 PyTorch 的即时执行模式进行高效调试,或切换至速度最快的后端以获得最高 350% 的性能提升。此外,Keras 具备强大的扩展能力,能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群,是连接原型开发与生产部署的理想桥梁。

63.9k|★★☆☆☆|3天前
开发框架数据工具其他

crawl4ai

Crawl4AI 是一款专为大语言模型(LLM)设计的开源网络爬虫与数据提取工具。它的核心使命是将纷繁复杂的网页内容转化为干净、结构化的 Markdown 格式,直接服务于检索增强生成(RAG)、智能体构建及各类数据管道,让 AI 能更轻松地“读懂”互联网。 传统爬虫往往面临反爬机制拦截、动态内容加载困难以及输出格式杂乱等痛点,导致后续数据处理成本高昂。Crawl4AI 通过内置自动化的三级反机器人检测、代理升级策略以及对 Shadow DOM 的深度支持,有效突破了这些障碍。它能智能移除同意弹窗,处理深层链接,并具备长任务崩溃恢复能力,确保数据采集的稳定与高效。 这款工具特别适合开发者、AI 研究人员及数据工程师使用。无论是需要为本地模型构建知识库,还是搭建大规模自动化信息采集流程,Crawl4AI 都提供了极高的可控性与灵活性。作为 GitHub 上备受瞩目的开源项目,它完全免费开放,无需繁琐的注册或昂贵的 API 费用,让用户能够专注于数据价值本身而非采集难题。

63.2k|★★☆☆☆|5天前
数据工具Agent

MinerU

MinerU 是一款专为大语言模型(LLM)打造的文档解析工具,旨在将复杂的 PDF 文件高效转化为机器易读的 Markdown 或 JSON 格式。在日常工作中,许多用户面临从扫描版论文、技术手册或包含复杂排版的文档中提取高质量文本的难题,传统方法往往难以保留原有的公式、表格和结构信息,导致后续 AI 处理效果不佳。MinerU 正是为了解决这一痛点而生,它能精准识别并还原文档中的多栏布局、数学公式及图表内容,确保输出数据干净、结构化,直接适配各类智能体(Agentic)工作流。 这款工具特别适合开发者、数据科学家以及需要构建知识库的研究人员使用。无论是希望微调专属模型的算法工程师,还是试图搭建企业级 RAG(检索增强生成)系统的技术团队,MinerU 都能提供强有力的支持。其核心技术亮点在于对复杂版面分析的深度优化,不仅支持批量处理,还能在保持高准确率的同时,大幅降低数据清洗的人力成本。通过 MinerU,用户可以轻松打通从原始文档到 AI 应用的数据链路,让非结构化文档真正变成可被智能体理解的高价值资产。

58.2k|★★★☆☆|2天前
图像数据工具其他