train/dev/test的划分

我们在前面的博文中已经提到了train/dev/test的相关做法。比如不能将dev和test混为一谈。同时要保证数据集的同分布等。

现在在train/dev/test的划分中,我们依然要旧事重提关于same distribution即同分布的概念。

假设我们现在有一种商品来自8个国家,如果我们将四个国家作为train和dev,将另外四个国家作为test,这种做法显然是错的。

因为我们建立的模型的靶点是为了逼近前四个国家的结果,但是在真正测试的时候我们移动了靶点,所以结果肯定是不好的。(当然这其实引入了火热的transfer learning的目标,但显然的我们不能直接这么做)

更好的方法是将这8个国家的样本全部进行组合,然后随机抽取一部分作为开发集,另一部分作为测试集,这就保证了同分布,也保证了目标的一致性。

开发集和测试集的大小

在ML的早期:train set 70% + test set 30% 或者 train set 60% + dev set 20% + test set 20%

这种划分方式在早期的机器学习中是合理的,因为早期的数据是小规模的比如100、1000、10000条数据的时候

在DL的时代:train set 98% + dev set 1% + test set 1%

因为在深度网络的大数据时代,当我们有了几十万条、一百万条甚至更多的数据的时候,利用其中1%作为测试已经是很大的数据了。

开发集的更新和评价指标的更新:

在上面的猫图片分类例子中,如果一个error小的算法看起来比较好,但是它会提供比如porn图等不可接受的服务时,我们就要更改评价指标,比如图中的加权公式,让其在将特定的porn图分类为猫时扩大错误权重,这样最终的error就会变大。

其次有关于train set的更新,比如图片分类如果我们在开发阶段引入了高质量、专业精美的图片,但是在测试时用户上传了手机的低分辨率,表情怪异,光线过度等图片时,其模型的准确率并不高,此时就要更新开发阶段使用的集合。这仍旧是一种同分布的问题。

最新文章

  1. Effective java笔记(九),并发
  2. HDU 1532 最大流模板题
  3. C语言 线性表 双向链式结构 实现
  4. ASP.net MVC自定义错误处理页面的方法
  5. G面经Prepare: Valid Preorder traversal serialized String
  6. MongoDB 启动mongo不带DB
  7. 基于HTML5 Canvas的网页画板实现教程
  8. LPC2478的外部中断使用
  9. 关于php的一些安全知识
  10. Spring框架Controller层(表现层)针对方法参数是Bean时HttpServletRequest绑定参数值问题解释
  11. 【官方文档】Nginx模块Nginx-Rtmp-Module学习笔记(三)流式播放Live HLS视频
  12. Flash Builder4.7安装破解
  13. python面试题之Python支持什么数据类型?
  14. 使用maxwell实时同步mysql数据到kafka
  15. HDU 1542 Atlantis(扫描线)题解
  16. Python 利用Python操作excel表格之openyxl介绍Part2
  17. centos7下安装docker(17.4docker监控----prometheus)
  18. DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流。
  19. 20181013xlVba据成绩条生成图片文件
  20. css grid 网格布局

热门文章

  1. 一分钟读懂低功耗蓝牙(BLE)连接数据包
  2. HashMap简介以及hashCode写法的建议
  3. WebSocketServer
  4. python---Numpy模块中创建数组的常用方式代码示例
  5. 用 Python 加密文件
  6. Nginx页面图片错误 ERR_CONTENT_LENGTH_MISMATCH
  7. Java设计模式的6大原则
  8. [Flutter] Custom a Slider with SliderTheme
  9. Ural1297 最长回文子串(后缀数组+RMQ)
  10. 2017.10.1 国庆清北 D1T2 两个逗比捉迷藏