训练集验证集_怎么为⼩数据集划分训练集和测试集下载app做任务赚钱
oracle专业dba认证前⾔
要想训练⼀个好的深度学习模型需要⼤量的数据,只有当你收集到⾜够多的数据构成训练集时,算法的效果最好。
有时候我们很难收集到⾜够多的数据,为了解决数据量的问题,其实我们可以爬⾍或购买数据等⼿段来获取⼤量的数据。这样会导致训练集和测试集存在差异,所以在划分数据集的时候需要掌握⼀些技巧。本篇⽂章的主要内容来⾃deeplearning.ai。
⽰例说明
问题描述
cdata不能用你想开发⼀个APP,当⽤户上传图⽚的时候,系统能够⾃动判断图⽚是不是猫的照⽚。⽽你实际能收集到⽤户使⽤APP上传的照⽚只有10000张,为了解决数据量的问题,你通过爬⾍从⽹上下载了200000张照⽚。爬虫软件 app
通过观察发现,通过爬⾍下载的照⽚和⽤户上传的照⽚之间还是存在很⼤差异的。通过爬⾍获取的照⽚相对会⽐较清晰,⽽⽤户上的照⽚会⽐较模糊。
那么我究竟应该如何利⽤这些数据来组合成数据集训练模型呢?
媒体查询的关键字是什么常规的划分数据集⽅式
c程序设计语言难吗
我们将200000张爬⾍所获取到的数据与10000张⽤户使⽤APP所获取到的数据进⾏混合打乱,然后随机分配给训练集205000张、开发集2500张、测试集2500张。
这种分配⽅式是我们常⽤的⼀种划分数据集的⽅式。
这样划分数据集的好处在于,可以保证训练集、开发集和测试集中的数据处于同⼀分布下。
同时也有坏处,仔细观察我们不难发现,210k张图⽚中,其中有⼤量的图⽚都来⾃于爬⾍所获取到的数据,只有很⼩⼀部分是来⾃⽤户上传的图⽚。通过计算可以发现,2500张图⽚中,⼤约有2381张图⽚来⾃于爬⾍所获取到的照⽚,只有119张来⾃于⽤户上传的图⽚,这样就会导致模型过多的关注爬⾍所获取到的数据。
⽽我们想训练的是⼀个能够分辨APP上传照⽚,⽽不是爬⾍所获取的照⽚。所以,我们需要采⽤另外⼀种划分⽅式。
数据不同分布的划分
之前在介绍训练集、开发集以及测试集划分的时候需要训练集与开发集在同⼀分布上,不然可能会带来⼤的⽅差。
现在为了使得我们的系统能够分辨APP上传的照⽚,⽽不是爬⾍所获取的照⽚,我们需要改变之前数据集的划分⽅式。
在划分数据的时候,我们不将爬⾍所获取的照⽚和APP上传的照⽚进⾏混合,⽽是将APP上传照⽚的⼀部分(5000张照⽚)划分到训练集中将爬⾍所获取的照⽚全部(200000张)划分到训练集中,这样训练
集中就有205000张照⽚,再将剩下的5000张分别划分到开发集和训练集中,这样就能让我们的⽬标瞄准APP上传的照⽚,⽽不是爬⾍所获取的照⽚。
这样划分数据所带来的缺点就是,训练集与开发集和测试集不在同⼀分布,但事实证明这样划分数据能够为你的系统带来长期良好的性能,下⼀篇我会介绍如何处理训练集和开发集数据分布不⼀致的情况。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。