作者:Eric Le Fort

翻译:蒋雨畅

校对:卢苗苗

本文约3200字,建议阅读12分钟。

本文将通过介绍两个分布模型,并运用它们到合成数据过程中,来分析合成数据在不同机器学习技术下的表现。

想法

相比于数量有限的“有机”数据,我将分析、测评合成数据是否能实现改进。

动机

我对合成数据的有效性持怀疑态度——预测模型只能与用于训练数据的数据集一样好。这种怀疑论点燃了我内心的想法,即通过客观调查来研究这些直觉。

需具备的知识

本文的读者应该处于对机器学习相关理论理解的中间水平,并且应该已经熟悉以下主题以便充分理解本文:

  • 基本统计知识,例如“标准差”一词的含义

  • 熟悉神经网络,SVM和决策树(如果您只熟悉其中的一个或两个,那可能就行了)

  • 了解基本的机器学习术语,例如“训练/测试/验证集”的含义

合成数据的背景

生成合成数据的两种常用方法是:

  • 根据某些分布或分布集合绘制值

  • 个体为本模型的建模

在这项研究中,我们将检查第一类。为了巩固这个想法,让我们从一个例子开始吧!

想象一下,在只考虑大小和体重的情况下,你试图确定一只动物是老鼠,青蛙还是鸽子。但你只有一个数据集,每种动物只有两个数据。因此不幸的是,我们无法用如此小的数据集训练出好的模型!

这个问题的答案是通过估计这些特征的分布来合成更多数据。让我们从青蛙的例子开始

参考这篇维基百科的文章:

https://en.wikipedia.org/wiki/Common_frog ,只考虑成年青蛙。

第一个特征,即它们的平均长度(7.5cm±1.5cm),可以通过从正态分布中绘制平均值为7.5且标准偏差为1.5的值来生成。类似的技术可用于预测它们的重量。然而,我们所掌握的信息并不包括其体重的典型范围,只知道平均值为22.7克。一个想法是使用10%(2.27g)的任意标准偏差。不幸的是,这只是纯粹猜测的结果,因此很可能不准确。

鉴于与其特征相关信息的可获得性,和基于这些特征来区分物种的容易程度,这可能足以培养良好的模型。但是,当您迁移到具有更多特征和区别更细微的陌生系统时,合成有用的数据变得更加困难。

数据

该分析使用与上面讨论的类比相同的想法。我们将创建一些具有10个特征的数据集。这些数据集将包含两个不同的分类类别,每个类别的样本数相同。

“有机”数据

每个类别将遵循其中每个特征的某种正态分布。例如,对于第一种特征:第一个类别样本的平均值为1500,标准差为360;第二个类别样本的平均值为1300,标准差为290。其余特征的分布如下:

该表非常密集,但可以总结为:

  • 有四个特征在两类之间几乎无法区分,

  • 有四个特征具有明显的重叠,但在某些情况下应该可以区分,并且

  • 有两个特征只有一些重叠,通常是可区分的。

创建两个这样的数据集,一个1000样本的数据集将保留为验证集,另一个1000样本的数据集可用于训练/测试。

这会创建一个数据集,使分类变得足够强大。

合成数据

现在事情开始变得有趣了!合成数据将遵循两个自定义分布中的其中一个。第一个我称之为“ Spikes Distribution”。此分布仅允许合成特征采用少数具有每个值的特定概率的离散值。例如,如果原始分布的平均值为3且标准差为1,则尖峰(spike)可能出现在2(27%),3(46%)和4(27%)。

第二个自定义分布我称之为“ Plateaus Distribution”。这种分布只是分段均匀分布。使用平台中心的正态分布概率推导出平稳点的概率。您可以使用任意数量的尖峰或平台,当添加更多时,分布将更接近正态分布。

为了清楚说明这两个分布,可以参考下图:

(注:尖峰分布图不是概率密度函数)

在这个问题中,合成数据的过程将成为一个非常重要的假设,它有利于使合成数据更接近于“有机”数据。该假设是每个特征/类别对的真实平均值和标准差是已知的。实际上,如果合成数据与这些值相差太远,则会严重影响训练模型的准确性。

好的,但为什么要使用这些分布?他们如何反映现实?

我很高兴你问这个问题!在有限的数据集中,您可能会注意到,对于某个类别,某个特征只会占用少量值。想象一下这些值是:

(50,75,54,49,24,58,49,64,43,36)

或者如果我们可以对这列进行排序:

(24,36,43,49,49,50,54,58,64,75)

为了生成此特征的数据,您可以将其拆分为三个部分,其中第一部分将是最小的20%,中间的60%将是第二部分,第三部分将是最大的20%。然后使用这三个部分,您可以计算它们的平均值和标准差:分别为(30,6.0),(50.5,4.6)和(69.5,5.5)。如果标准差相当低,比如大约为相应均值的10%或更小,则可以将该均值视为该部分的尖峰值。否则,您可以将该部分视为一个平台,其宽度是该部分标准差的两倍,并以该部分的平均值作为中心。

或者,换句话说,他们在模拟不完美的数据合成方面做得不错。

我将使用这些分布创建两个800样本数据集 - 一个使用尖峰,另一个使用平台。四个不同的数据集将用于训练模型,以便比较每个数据集的有用性:

  • 完整 (Full) - 完整的1000个样本有机数据集(用于了解上限)

  • 真实 (Real) - 只有20%的样本有机数据集(模拟情况而不添加合成数据)

  • 尖峰(Spike) - “真实”数据集与尖峰数据集相结合(1000个样本)

  • 平台(Plateaus) - “真实”数据集与平台数据集相结合(1000个样本)

现在开始令人兴奋的部分!

训练

为了测试每个数据集的强度,我将采用三种不同的机器学习技术:多层感知器(MLP),支持向量机(SVM)和决策树(Decision Trees)。为了帮助训练,由于某些特征的幅度比其他特征大得多,因此利用特征缩放来规范化数据。使用网格搜索调整各种模型的超参数,以最大化到达最好的超参数集的概率。

总之,我在8个不同的数据集上训练了24种不同的模型,以便了解合成数据对学习效果的影响。

相关代码在这里:https://github.com/EricLeFort/DataGen

结果

经过几个小时调整超参数并记录下精度测量结果后,出现了一些反直觉的结果!完整的结果集可以在下表中找到:

多层感知器(MLP)


 
支持向量机(SVM)


决策树(Decision Trees)

在这些表中,“Spike 9”或“Plateau 9”是指分布和使用的尖峰/平台的数量。单元格中的值是使用相应的训练/测试数据对模型进行训练/测试,并用验证集验证后的的最终精度。还要记住,“完整”(Full)类别应该是准确性的理论上限,“真实”(Rea;)类别是我们在没有合成数据的情况下可以实现的基线。

一个重要的注意事项是,(几乎)每次试验的训练/测试准确度都明显高于验证准确度。例如,尽管MLP在Spike-5上得分为97.7%,但在同一试验的训练/测试数据上分别得分为100%和99%。当在现实世界中使用时,这可能导致模型有效性的过高估计。

完整的这些测量可以在GitHub找到:

https://github.com/EricLeFort/DataGen

让我们仔细看看这些结果。

首先,让我们看一下模型间的趋势(即在所有机器学习技术类型中的合成数据集类型的影响)。似乎增加更多尖峰/平台并不一定有助于学习。你可以看到在3对 5时尖峰/平台之间的一般改善,但是当看到5对9时,则要么变平或稍微倾斜。

对我来说,这似乎是违反直觉的。随着更多尖峰/平台的增加,我预计会看到几乎持续的改善,因为这会导致分布更类似于用于合成数据的正态分布。

现在,让我们看一下模型内的趋势(即各种合成数据集对特定机器学习技术的影响)。对于MLP来说,尖峰或平台是否会带来更好的性能似乎缺少规律。对于SVM,尖峰和平台似乎表现得同样好。然而,对于决策树而言,平台是一个明显的赢家。

总的来说,在使用合成数据集时,始终能观察到明显的改进!

以后的工作

需要注意的一个重要因素是,本文的结果虽然在某些方面有用,但仍然具有相当的推测性。因此,仍需要多角度的分析以便安全地做出任何明确的结论。

这里所做的一个假设是每个类别只有一个“类型”,但在现实世界中并不总是如此。例如,杜宾犬和吉娃娃都是狗,但它们的重量分布看起来非常不同。

此外,这基本上只是一种类型的数据集。应该考虑的另一个方面是尝试类似的实验,除了具有不同维度的特征空间的数据集。这可能意味着有15个特征而不是10个或模拟图像的数据集。

我计划继续研究以扩大本研究的范围,敬请期待!

关于作者

Eric拥有软件工程学士学位和机器学习硕士学位。他目前在加拿大多伦多担任机器学习工程师。他曾使用LSTM,CNN,决策树集合,SVM等工作解决与NLP,计算机视觉和商业智能系统相关的问题!

如果您想了解更多关于他的信息,请浏览他的网站(http://ericlefort.ca/ )

原文标题:

My Thoughts on Synthetic Data

原文链接:

https://www.codementor.io/ericlefort/my-thoughts-on-synthetic-data-kq719a5ss

译者简介

蒋雨畅,香港理工大学大三在读,主修地理信息,辅修计算机科学,目前在研究学习通过数据科学等方法探索城市与人类活动的关系。希望能认识更多对数据科学感兴趣的朋友,了解更多前沿知识,开拓自己的眼界。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:datapi),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

独家|一文解读合成数据在机器学习技术下的表现相关推荐

  1. 使用合成数据改善机器学习中的极度不平衡数据集

    这是我的推广信息,以激励自己更好的分享自己的知识和经验!也希望看到的你能够多多支持,谢谢! 1. 滴滴云AI大师: 目前滴滴云正在大力推广自己的云计算服务,需要购买的朋友们用我的AI大师码 「2049 ...

  2. 应用大数据和机器学习技术实现车险全流程智能化的方案(上)

    应用大数据和机器学习技术实现车险全流程智能化的方案(上) -承保流程智能化改造 一.简要说明 以技术替代人力的思路对车险全业务流程改造,即应用车险大数据和机器学习技术全部或部分替代承保理赔管理相关业务 ...

  3. 独家 | 一文读懂数据质量和验证检查(附代码)

    作者:Vinod Kumar 翻译:季洋 校对:王雨桐 本文约1600字,建议阅读8分钟. 本文主要讲述关于数据质量和验证检查的实例,以及运用Apache Spark和Scala采用编码来确保数据质量 ...

  4. 独家 | 一文读懂Corda分布式记账技术

    作者:Dan Newton 翻译:申利彬 校对:丁楠雅 本文约2600字,建议阅读10分钟. 本文为你介绍借鉴了区块链的部分特性的分布式记账技术,并分析其背后的原因. 什么是Corda? 最近我开始了 ...

  5. 独家 | 一文带你盘点最新热门技术话题,技术圈潮人必读!

    作者:Lindsay Smith 翻译:王雨桐 校对:丁楠雅 本文约2500字,建议阅读5分钟. 本文对比2018第四季度和2019第一季度中DZone上不同技术话题的热门程度,分析哪些是当前的流行话 ...

  6. 运动合成——机器学习技术

    参考文献:<人体运动合成中的机器学习技术合成综述> 根据机器学习的用途分类,在图形学中使用到的大致如下: 1>    回归和函数逼近.回归是一种插值技术,分析已知数据点来合成新的数据 ...

  7. 【大数据】华为内部狂转好文,大数据,看这一篇就够了!

    来源:华为IT产品解决方案 导读 科技的进步在很多的时候总会超出我们的想象,试想如果未来我们一个人拥有的电脑设备超过现在全球现在计算能力的总和,一个人产生的数据量超过现在全球数据量的总和,甚至你的宠物 ...

  8. 运用“大数据”与“人工智能”技术引领多模态大学英语写作能力评价体系的研究(非原创)

    <大学英语课程教学要求 (试行) >明确指出的教学目标之一是"充分利用现代信息技术, 特别是以网络技术为支撑, 使英语的教和学可以在一定程度上不受时间和地点的限制, 朝着个性化和 ...

  9. 独家 | 一文读懂机器学习中的贝叶斯统计学

    作者:Matthew Stewart, PhD Researcher 翻译:吴金笛 校对:丁楠雅 本文约4300字,建议阅读15分钟. 本文主要是向新手介绍贝叶斯方法并将其与频率方法进行比较. 你有没 ...

最新文章

  1. 深度学习数据集定义与加载
  2. C++编程中的头文件包含问题
  3. Java、Javascript、Javaweb三者的区别
  4. 解决jQgrid 设置列宽度自动调整时, 出现滚动条问题.
  5. 使用glob()查找文件
  6. 190611每日一句
  7. 将华为路由器做成ftp服务器(实现上传下载功能)
  8. wps vba宏插件_wps下载_wps下载免费完整版客户端[办公软件]
  9. 极域电子书包课堂管理系统_朝阳群众说小康 | 从黑板课本到VR互动课堂、电子书包,朝阳的课堂如此有趣!...
  10. 基于SpringBoot实现二手交易商城
  11. php wps 读取word内容,PHP中读取,写入和导出WORD文档的代码总结
  12. Centos7下安装svnadmin
  13. Unity3D卡牌手游《X三国》源码前后端完整下载安卓+IOS双端
  14. Cache的Insert 和Add 方法引发的血案
  15. NOIP 提高组 飞扬的小鸟
  16. mooc 恋爱 人格 职场学习笔记
  17. 云大计算机初试最高分,【经验谈】初试总分360+,专业排名前五!云大社会工作专......
  18. 证明:hitting set是NP完全问题
  19. ip_forward 权限不够
  20. html中submit和button的区别(总结)

热门文章

  1. 个推数据统计产品(个数)iOS集成实践
  2. 配置告警系统主脚本main.sh mon.sh load.sh 502.sh disk.sh
  3. HAproxy指南之haproxy编译安装(安装篇)
  4. 搭建Jasig CAS中央认证服务实现单点登录——搭建Tomcat并实现SSL安全连接
  5. Emacs Org-mode学习笔记
  6. [delphi]参数带有默认值的函数
  7. Jquery真的很棒
  8. 机器学习 二分类分类阈值_分类指标和阈值介绍
  9. eclipse安装springtoolsuite-4-4.8.1失败,是eclipse版本不匹配吗
  10. JAVA Future