【论文阅读】(CTGAN)Modeling Tabular data using Conditional GAN

论文地址:[1907.00503] Modeling Tabular data using Conditional GAN (arxiv.org)

 

摘要

  对表格数据中行的概率分布进行建模并生成真实的合成数据是一项非常重要的任务,有着许多挑战。本文设计了CTGAN,使用条件生成器解决挑战。为了帮助进行公平和彻底的比较建模这类数据的方法,本文设计了一个基准测试,包括7个模拟数据集和8个真实数据集,以及几个贝叶斯网络基线。CTGAN在大多数真实数据集上都优于贝叶斯方法,而其他深度学习方法则不然。

1、介绍

GAN在建模分布方面比其统计对应方法具有更大的灵活性。新的GAN方法的激增需要一个评估机制。

  • 为了评估这些GAN,本文使用了一组真实的数据集来建立一个基准系统,并实现了三种最新的技术。
  • 为了进行比较,本文使用贝叶斯网络创建了两种基准方法。

在使用模拟数据集和真实数据集对这些模型进行测试后,我们发现,表格数据建模对GAN提出了独特的挑战,导致它们在许多指标上无法达到基线方法,如合成生成数据的可能性适合度和机器学习效率。这些挑战包括:

  • 需要同时对离散列和连续列进行建模
  • 每个连续列中的多模态非高斯值
  • 类别列的严重不平衡问题。

为了应对这些挑战,在本文中提出了条件表格GAN(CTGAN)。引入了几种新技术方法:

  • 通过针对模式的归一化、架构更改来增强训练过程。
  • 通过使用条件生成器和采样训练来解决数据不平衡问题。

当使用有基准测试的相同数据集时,CTGAN的性能明显优于贝叶斯网络基线和其他测试的GAN。如下图所示。

论文的贡献如下:

  • 一个用于合成表格数据生成的条件GAN。本文建议CTGAN作为一个合成表格数据生成器由于以下几点:

- CTGAN比迄今为止的所有方法都要好,在至少87.5%的数据集上超过了贝叶斯网络。

- 为了进一步挑战CTGAN,采用变分自动编码器(VAE)来生成混合类型的表格数据,称之为TVAE。VAE直接使用数据构建生成器;即使有这样的优势,CTGAN在许多数据集上都实现了有竞争力的性能,并且在3个数据集上优于TVAE。

  • 一个合成数据生成算法的基准测试系统。使用多个表格数据集和不同的评估指标,以及多个基线和最先进方法的实现,设计了一个全面的基准框架。同时系统是开源的,可以用其他方法和额外的数据集进行扩展。在撰写本文时,基准有5种深度学习方法、2种贝叶斯网络方法、15个数据集和2种评估机制。

2、相关工作

在过去的十年中,合成数据是通过将表格中的每一列视为随机变量,对联合多元概率分布进行建模,然后从该分布中进行采样而生成的。

  • 一组离散变量可能使用决策树和贝叶斯网络建模。
  • 空间数据可以用空间分解树建模。
  • 一组非线性相关的连续变量可以使用copulas建模。

这些模型受到分布类型和计算问题的限制,严重限制了合成数据的理想性。

由于在表示数据时提供的性能和灵活性,使用VAE和GANs及其众多扩展开发生成模型非常有吸引力。GANs还用于生成表格数据,尤其是医疗记录。例如

  • 使用GANs生成连续的时间序列医疗记录
  • 使用GANs生成离散的表格数据。
  • medGAN将自动编码器和GAN结合起来,生成异构的非时间序列连续和/或二进制数据。
  • ehrGAN生成增强的医疗记录。
  • tableGAN试图解决使用卷积神经网络生成合成数据的问题,该网络优化了标签列的质量;因此,生成的数据可用于训练分类器。
  • PATE-GAN生成不同的私有合成数据。

3、表格数据生成任务中的GANs挑战

表格数据的几个独特特性对GAN模型的设计提出了挑战:

  1. 混合的数据类型:现实世界的表格数据由多种类型组成。为了同时生成离散列和连续列的混合,GANs必须将softmax和tanh都应用于输出。
  2. 非高斯分布:图像中,像素值遵循类高斯分布,可以使用最小-最大变换归一化为[−1,1]。tanh函数通常用于网络的最后一层,以输出该范围内的值。表格数据中的连续值通常是非高斯的,其中最小-最大变换将导致消失梯度问题。
  3. 多模式分布:本文使用核密度估计来估计列中的模式数。但是在8个真实数据集中,57/123连续列有多种模式。有论文表明原始GAN无法在一个简单的2D数据集上对所有模式进行建模。因此,它也很难对连续列的多模式分布进行建模。
  4. 从稀疏独热编码向量中学习:当生成合成样本时,使用softmax训练生成模型生成各个类别的概率分布,而真实数据则用独热向量表示。这是有问题的,因为鉴别器只会检查分布稀疏性而不会考虑样本整体的真实性。
  5. 高度不平衡的分类列:在数据集中,有636/1048个分类列是高度不平衡的,其中主类别出现在90%以上的行中。这会造成严重的模式崩溃。缺少一个次要类别只会导致数据分布发生微小变化,鉴别器很难检测到这些变化。不平衡的数据还导致小类别训练不足。

4、CTGAN模型

CTGAN是一种基于GAN的方法,用于对表格数据分布建模从分布中采样。在CTGAN中发明了针对模式的归一化,以克服非高斯和多模式分布。设计了一个条件生成器通过采样进行训练,以处理不平衡的离散列。使用全连接网络和几种最新技术来训练高质量的模型。

4.1、符号表

4.2、针对模式的归一化

离散值可以自然地表示为独热向量,但表示有着任意分布的连续值是非常重要的。以前的模型使用最小-最大归一化将连续值归一化为[−1, 1]。 在CTGAN中设计了一种针对模式的归一化方法来处理具有复杂分布的列。

下图展示对一个连续列使用针对模式的归一化方法。

4.3、条件生成器和抽象训练

4.4、网络框架

4.5、TVAE模型

5、基准测试合成数据生成算法

5.1、基线和数据集

5.2、评估指标和框架

5.3、基准结果

5.4、消融实验

我们做了一项消融实验,以了解模型中每个组件的有用性。消融实验结果如下。

6、结论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/193228.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA如何打断点调试

目录 1. 设置断点2. 调试3. 调试的基本操作3.1 step over3.2 step into 跟 Force step into3.3 step out3.4 resume program3.5 mute breakpoints3.6 view breakpoints3.6 条件断点 编写代码的时候,有时候我们需要跟踪代码的运行情况,使用断点调试就是一…

Eclipse打包Springboot项目

首先&#xff0c;在pom.xml文件中添加配置&#xff0c;修改mainClass主函数&#xff1a; <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configurat…

蓝桥杯每日一题2023.11.14

题目描述 题目分析 此题目的最终目标是将字母都填上数使等式符合条件&#xff0c;实际我们发现可以使用搜索将所有符合条件的进行判断&#xff08;答案&#xff1a;29&#xff09; 由于小数可能会出现错误故我们将其进行简单变化进行搜索 #include<bits/stdc.h> using…

Git常用指令以及常见问题解决

摘要&#xff1a;记录本人Git常用指令以及常见问题解决 1.Git流程 2.具体操作 git init&#xff1a;初始化目录&#xff08;一般直接git clone远端的工程&#xff0c;这一步都可以省略掉&#xff09;&#xff1b; 输入命令“git config --global user.name xxx”来配置你的用…

wpf devexpress设置行和编辑器

如下教程示范如何计算行布局&#xff0c;特定的表格单元编辑器&#xff0c;和格式化显示值。这个教程基于前一个文章 选择行显示 GridControl为所有字段生成行和绑定数据源&#xff0c;如果AutoGenerateColumns 属性选择AddNew。添加行到GridControl精确显示为特别的几行设置。…

【力扣题:循环队列】

文章目录 一.题目描述二. 思路解析三. 代码实现 一.题目描述 设计你的循环队列实现。 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FIFO&#xff08;先进先出&#xff09;原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好…

贪吃蛇小游戏代码

框架区 package 结果;import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.util.ArrayList; import java.util.List; import java.util.Random;import javax.s…

k8s之Helm

理论&#xff1a; 什么是 He lm 在没使用 helm 之前&#xff0c;向 kubernetes 部署应用&#xff0c;我们要依次部署 deployment、svc 等&#xff0c;步骤较繁琐。 况且随着很多项目微服务化&#xff0c;复杂的应用在容器中部署以及管理显得较为复杂&#xff0c;helm 通过打包…

参考意义大。4+巨噬细胞相关生信思路,简单易复现。

今天给同学们分享一篇生信文章“Angiogenesis regulators S100A4, SPARC and SPP1 correlate with macrophage infiltration and are prognostic biomarkers in colon and rectal cancers”&#xff0c;这篇文章发表在Front Oncol期刊上&#xff0c;影响因子为4.7。 结果解读&a…

[云原生案例2.3 ] Kubernetes的部署安装 【多master集群架构高可用 ---- (二进制安装部署)】

文章目录 1. Kubernetes多Master集群高可用方案1.1 多节点Master高可用的实现过程1.2 实现高可用方法 2. 新Master节点的部署2.1 前置准备2.2 系统初始化操作2.2.1 关闭防火墙、selinux和swap分区2.2.2 修改主机名&#xff0c;添加域名映射2.2.3 修改内核参数2.2.4 时间同步 2.…

如何在Windows 10中进行屏幕截图

本文介绍如何在Windows 10中捕获屏幕截图&#xff0c;包括使用键盘组合、使用Snipping Tool、Snipp&Sketch Tool或Windows游戏栏。 使用打印屏幕在Windows 10中捕获屏幕截图 在Windows 10中捕获屏幕截图的最简单方法是按下键盘上的PrtScWindows键盘组合。你将看到屏幕短暂…

做一个Springboot文件上传-阿里云

概述 这个模块是用来上传头像以及文章封面的&#xff0c;图片的值是一个地址字符串&#xff0c;一般存放在本地或阿里云服务中 1、本地文件上传 我们将文件保存在一个本地的文件夹下&#xff0c;由于可能两个人上传不同图片但是却同名的图片&#xff0c;那么就会一个人的图片就…

mac配置双网卡 mac同时使用内网和外网

在公司办公通常都会连内网&#xff0c;而连内网最大的限制就是不可以使用外网&#xff0c;那遇到问题也就不能google&#xff0c;而当连接无线的时候&#xff0c;内网的东西就不可以访问&#xff0c;也就不能正常办公&#xff0c;对于我这种小白来说&#xff0c;工作中遇到的问…

【C++】类和对象(3)--初始化列表(再谈构造函数)

目录 一 引入 二 初始化列表概念 三 初始化列表特性 1 引用和const 2 混合使用 3 自定义成员情况 四 初始化列表中的初始化顺序 五 总结 一 引入 构造函数体赋值 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;} priv…

初学UE5 C++①

游戏类 1.创建所需项的类 2.创建游戏模式类&#xff0c;在该类上实现所需项&#xff0c;引入头文件和构造函数时实例化 三种时间函数类型函数和提示类型 FName、FString、FText类型相互转化 FName用FName FString用ToString&#xff08;&#xff09; FText用FText&#xff1a;…

让AI拥有人类的价值观,和让AI拥有人类智能同样重要

编者按&#xff1a;2023年是微软亚洲研究院建院25周年。25年来&#xff0c;微软亚洲研究院探索并实践了一种独特且有效的企业研究院的新模式&#xff0c;并以此为基础产出了诸多对微软公司和全球社会都有积极影响的创新成果。一直以来&#xff0c;微软亚洲研究院致力于创造具有…

RabbitMQ的 五种工作模型

RabbitMQ 其实一共有六种工作模式&#xff1a; 简单模式&#xff08;Simple&#xff09;、工作队列模式&#xff08;Work Queue&#xff09;、 发布订阅模式&#xff08;Publish/Subscribe&#xff09;、路由模式&#xff08;Routing&#xff09;、通配符模式&#xff08;Topi…

Spring Framework 核心容器详解:Core、Beans、Context 和 Expression Language 模块

Spring可能成为您的所有企业应用程序的一站式商店。但是&#xff0c;Spring是模块化的&#xff0c;允许您挑选适用于您的模块&#xff0c;而无需引入其他模块。下面的部分提供了Spring Framework中所有可用模块的详细信息。 Spring Framework提供了大约20个模块&#xff0c;可…

黑马程序员微服务第四天课程 分布式搜索引擎1

分布式搜索引擎01 – elasticsearch基础 0.学习目标 1.初识elasticsearch 1.1.了解ES 1.1.1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;可以帮助我们从海量数据中快速找到需要的内容 例如&#xff1a; …