开发集和测试集

让我们回到之前关于猫咪图片的例子: 你开发了一个移动APP, 用户可以上传许多不同的图片到你的APP上,你想识别出用户上传的图片中所有包含猫咪的图片。 你的团队下载了很多图片数据集,包含猫咪图片(正样本,positive example)和非猫咪图片(负样本, negative example)。他们将这些数据划分为70%的训练集,30%的测试集。当使用这些进行算法训练时,效果非常不错。 但是将算法(分类器)部署到APP的时候,发现效果却非常的糟糕!

发生了什么?

你发现用户上传的图片和你团队下载作为训练集的图片不同。用户使用收集拍摄的图片分辨率更低,模糊,而且照明效果较差。由于你的训练/测试集来源于网站上的图片,你的算法没有很好的把智能手机图片一般化。 大数据时代之前,在机器学习中人们对数据集的一个常见划分规则为:将数据集划分为70%/30%的训练集和测试集。但是在越来越多的应用(比如上面的例子)中,收集的数据与训练数据不同,这个时候该规则就不适用了。

我们通常定义:

• 训练集(Training set) — 运行在算法上的数据集. • 开发集(Dev/development set) — 这部分数据通常用来调参,选择特征,以及对学习算法进行改进。有时也被用于交叉验证。 • 测试集(Test set) — 这部分数据通常用于评估算法的性能,但不要依靠这个数据对你的算法进行调参和修改。 一旦你定义了一个开发集和测试集,你的团队就可以进行模型的建立,通过调整参数,特征选择等。从而制定最有效的机器学习算法。开发集和测试集可以很快的告诉你算法的运行情况。

换句话说,开发集和测试集的目的是为了让你对算法进行改进,使算法效果变得更好

所以你应该:

• 选择开发集和测试集时,主要选择可以反映未来需要获取的数据

换句话说,你的测试集不应该只是可用数据的30%这么简单,尤其是你得到的数据(移动app的图像)和你训练数据(网站图像)不一样的时候。 如果你还没有运行你的移动应用,也就意味着还没有用户,可能你就无法获取到一些比较好的数据,但是你可以尝试去获取这些数据。比如:让你的朋友拍一些手机照片发给你,一旦你的应用启动后,你可以使用实际的数据来更新你的开发/测试集。 如果你实在没有办法获取到你期望的数据,那么你可以从网站图片开始,不过这种做法可能会导致你的系统不能一般化(generalize)的很好。 有时,可能需要花费一些资金去获取比较好的数据集。切记不要认为你的训练集和测试集分布必须是一样的。尽量去选择那些可以反映真实情况的数据作为测试样本。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

如何通过深度学习轻松实现自动化监控?

【导读】这是一篇关于使用基于深度学习的目标检测来实现监控系统的快速教程。在教程中通过使用 GPU 多处理器来比较不同目标检测模型在行人检测上的性能。

1155
来自专栏MelonTeam专栏

老司机用神经网络带您安全驾驶

0 概述 随着今年深度学习的热潮的来临,神经网络已经被应用在越来越多的应用中。而在印象中对于神经网络进行训练的往往需要借助大量的计算资源与数据。其实通过一定的...

2625
来自专栏玉树芝兰

如何用Python和深度神经网络识别图像?

(由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开。如有需要,请点击文末的“阅读原文”按钮,访问可以正常显示外链的版本。)

1992
来自专栏AI科技大本营的专栏

资源 | 深度学习图像标注工具汇总

对于监督学习算法而言,数据决定了任务的上限,而算法只是在不断逼近这个上限。世界上最遥远的距离就是我们用同一个模型,但是却有不同的任务。但是数据标注是个耗时耗力的...

2263
来自专栏人工智能头条

10行代码实现目标检测,请收下这份教程

1181
来自专栏数据小魔方

excel数据分析库系列|抽样设计

今天开始跟大家分享excel数据分析库系列——抽样设计! 作为微软excel中一直以来隐藏的最深最上档次的功能组件,excel数据分析工具库需要用户手动调用并开...

3707
来自专栏IT派

资源 | 深度学习图像标注工具汇总

对于监督学习算法而言,数据决定了任务的上限,而算法只是在不断逼近这个上限。世界上最遥远的距离就是我们用同一个模型,但是却有不同的任务。但是数据标注是个耗时耗力的...

1312
来自专栏量子位

自动给神经网络找bug,Google发布TensorFuzz

能不能把炼丹师们从无休止无希望的debug工作中拯救出来?两位谷歌大脑研究员Augustus Odena和Ian Goodfellow说,好像能。

1610
来自专栏AI研习社

MXNet 宣布支持 Keras 2,可更加方便快捷地实现 CNN 及 RNN 分布式训练

AI 研习社按,近期,AWS 表示 MXNet 支持 Keras 2,开发者可以使用 Keras-MXNet 更加方便快捷地实现 CNN 及 RNN 分布式训练...

1307
来自专栏人工智能头条

资源 | 深度学习图像标注工具汇总

1891

扫码关注云+社区

领取腾讯云代金券