【论文阅读】(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、结论

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

flutter下拉列表

下拉列表 内容和下拉列表的标题均可滑动 Expanded: 内容限制组件,将其子类中的无限扩展的界面限制在一定范围中。在此使用,是为了防止下拉列表中的内容超过了屏幕限制。 SingleChildScrollView: 这个组件,从名字中可…

C++——友元函数

如下是一个日期类&#xff1a; class Date { public:Date(int year 2023, int month 10, int day 1){_year year;_month month;_day day;if (_month < 1 || month > 12 || _day < 1 || _day > GetMonthDay(_year, _month)){cout << "日期不规范&…

元数据管理,数字化时代企业的基础建设

随着新一代信息化、数字化技术的应用&#xff0c;众多领域通过科技革命和产业革命实现了深度化的数字改造&#xff0c;进入到以数据为核心驱动力的&#xff0c;全新的数据处理时代&#xff0c;并通过业务系统、商业智能BI等数字化技术和应用实现了数据价值&#xff0c;从数字经…

hadoop 如何关闭集群 hadoop使用脚本关闭集群 hadoop(八)

1. hadoop22, hadoop23, hadoop24三台机器 2. namenode 所在hadoop22关闭 hdfs: # 找到/etc/hadoop位置 cd /opt/module/hadoop-3.3.4/etc/hadoop # 找到shell脚本&#xff0c;关闭即可sbin/stop-dfs.sh 3. 关闭yarn脚本&#xff0c;我的在hadoop23&#xff1a; # 找到/etc…

【云原生进阶之PaaS中间件】第三章Kafka-1-综述

1 Kafka简介 Kafka是最初由Linkedin公司开发&#xff0c;是一个分布式、支持分区的&#xff08;partition&#xff09;、多副本的&#xff08;replica&#xff09;&#xff0c;基于zookeeper协调的分布式消息系统&#xff0c;它的最大的特性就是可以实时的处理大量数据以满足各…

数据同步到Redis消息队列,并实现消息发布/订阅

一、假设需求&#xff1a; 某系统在MySQL某表中操作了一条数据在其他系统中&#xff0c;实时获取最新被操作数据的数据库名、数据表名、操作类型、数据内容 应用场景&#xff1a; 按最近项目的一个需求来说&#xff1a; 1.当某子系统向报警表中新增了一条报警数据&#xff1b;…

如何实现Redisson分布式锁

首先&#xff0c;不要将分布式锁想的太复杂&#xff0c;如果我们只是平时业务中去使用&#xff0c;其实不算难&#xff0c;但是很多人写的文章不能让人快速上手&#xff0c;接下来&#xff0c;一起看下Redisson分布式锁的快速实现 Redisson 是一个在 Redis 的基础上实现的 Java…

java导出excel思路

1、构建导出的数据模型&#xff0c; 这个模型可以自己画&#xff0c;也可以读取一个自己制作好的模板&#xff0c;根据模板填充数据&#xff0c;然后flush到一个新的excel文件。 1&#xff09;、自己画 GetMapping("/exportTemplate") public void exportTemp…

链表相关题目

一、反转单向链表 private static void reverseNode(Node head) {Node pre null;Node currentNode head;while (currentNode ! null) {Node next currentNode.next;currentNode.next pre;pre currentNode;currentNode next;}二、反转双向链表 private static void revers…

Live800:金牌客服常用的6大提问技巧

在客服行业&#xff0c;提问技巧是非常重要的一项技能。好的提问技巧不仅能够帮助客服人员更好地了解客户需求&#xff0c;还能够提高客户满意度和忠诚度。以下是金牌客服常用的6大提问技巧&#xff0c;希望能够对客服人员提升工作效率有所帮助。 1、开放性问题 开放性问题是指…

【Linux】Ubuntu16.04配置repo

Ubuntu16.04配置repo失败 在学习韦东山Linux嵌入式开发过程中&#xff0c;使用repo获取内核及工具链: git clone https://e.coding.net/codebug8/repo.gitmkdir -p 100ask_imx6ull-sdk && cd 100ask_imx6ull-sdk../repo/repo init -u https://gitee.com/weidongshan/…

腾讯云标准型S5服务器五年优惠价格表(4核8G和2核4G)

腾讯云服务器网整理五年云服务器优惠活动 txyfwq.com/go/txy 配置可选2核4G和4核8G&#xff0c;公网带宽可选1M、3M或5M&#xff0c;系统盘为50G高性能云硬盘&#xff0c;标准型S5实例CPU采用主频2.5GHz的Intel Xeon Cascade Lake或者Intel Xeon Cooper Lake处理器&#xff0c;…

3. 【自动驾驶和机器人中的SLAM技术】实现基于预积分和图优化的GNSS+IMU+Odom的融合定位系统

目录 1. 公式推导2. GNSSIMUOdom融合定位3. 利用数值求导工具&#xff0c;验证本书实验中的雅可比矩阵的正确性4. 也欢迎大家来我公众号读书--“过千帆” 1. 公式推导 2. GNSSIMUOdom融合定位 程序实现以及运行效果&#xff1a; ①首先是在预积分程序中记录了预积分积累的IMU数…

智安网络|探索语音识别技术:优势与挑战的全面解析

语音识别技术是人工智能领域的重要应用之一&#xff0c;它通过将语音信号转化为文本&#xff0c;实现了人机交互的一种新形式。随着科技的不断发展&#xff0c;语音识别技术在各个行业中得到了广泛的应用&#xff0c;但同时也存在着一些优势和劣势。 首先&#xff0c;语音识别…

环保气膜建筑的运维成本在哪几个方面

作为一种环保建筑&#xff0c;气膜结构在工业和文体领域得到了广泛认可。尽管气膜建筑在经济上具有明显的优势&#xff0c;但对于不了解它的人来说&#xff0c;他们可能会下意识地认为在运营和维护过程中会产生大量费用。今天&#xff0c;让我们一起了解一下气膜建筑在运营维护…

MHA实验

MHA: 什么是MHA masterhigh availabulity :基于主库的高可用环境下&#xff1a;主从复制&#xff0c;故障切换 主从的架构&#xff1a; MHA&#xff1a;最少要一主两从 mysql的单点故障问题&#xff0c;一旦主库崩溃&#xff0c;MHA可以在0-30秒内可以自动完成故障切换 M…

创作者焦点:Royal Flushed(第二章)

一起来看看「Dr. Bomkus 的试炼」幕后的创作故事吧&#xff5e; 「创作者焦点」系列报道将带来六篇关于「Dr. Bomkus 的试炼」游戏的创作过程&#xff0c;以及其独特的游戏玩法和功能。 屏住呼吸&#xff0c;潜入沉没区。穿过 Bomkus 设计的水下迷宫&#xff0c;回到地面上&…

为什么重写equals方法必须重写hashcode方法

在Java中&#xff0c;重写equals()方法的同时也应该重写hashCode()方法&#xff0c;这是因为这两个方法在 Java 中是有关联的&#xff0c;而且它们一起影响着集合类的行为。 Java中的hashCode()方法用于返回对象的哈希码&#xff0c;而equals()方法用于比较两个对象是否相等。…

Techgen ict 转 qrcTechFile问题整理

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 ERROR (EXTZTECH-157) : Density value need to increase monotonically . 根据提示定位到ict的以下内容: resistivity 0.231 106.5192 ... ... 1.9 81.3252 根据错误提示我…

中电金信:语言服务解决方案

​​ ​​ 点击或扫描下图二维码&#xff0c;查看更多相关内容 ​​ ​​ ​​ ​​ 01方案概述 我们以成熟的语言服务能力为核心&#xff0c;围绕出海企业的需求&#xff0c;构建覆盖企业出海全生命周期的语言服务。我们在全球31个城市设有交付中心&#xff0c;可以为出海…