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

ubuntu之路——day10.3 train/dev/test的划分、大小和指标更新的更多相关文章

  1. ubuntu之路——day10.1 ML的整体策略——正交化

    orthogonalization 正交化的概念就是指,将你可以调整的参数设置在不同的正交的维度上,调整其中一个参数,不会或几乎不会影响其他维度上的参数变化,这样在机器学习项目中,可以让你更容易更快速 ...

  2. ubuntu之路——day10.7 提高模型的表现

    总结一下就是在提升偏差的方面(即贝叶斯最优误差和训练误差的差距) 1.尝试更大更深的网络 2.加入优化算法比如前面提过的momentum.RMSprop.Adam等 3.使用别的神经网络架构比如RNN ...

  3. ubuntu之路——day10.6 如何理解人类表现和超过人类表现

    从某种角度来说,已知的人类最佳表现其实可以被当做贝叶斯最优错误,对于医学图像分类可以参见下图中的例子. 那么如何理解超过人类表现,在哪些领域机器已经做到了超越人类呢?

  4. ubuntu之路——day10.5 可避免偏差

    可避免偏差: 总结一下就是当贝叶斯最优误差接近于训练误差的时候,比如下面的例子B,我们不会说我们的训练误差是8%,我们会说我可避免偏差是0.5%.

  5. ubuntu之路——day10.4 什么是人的表现

    结合吴恩达老师前面的讲解,可以得出一个结论: 在机器学习的早期阶段,传统的机器学习算法在没有赶超人类能力的时候,很难比较这些经典算法的好坏.也许在不同的数据场景下,不同的ML算法有着不同的表现. 但是 ...

  6. ubuntu之路——day10.2单一数字评估指标与满足和优化的评估指标

    单一数字评估指标: 我们在平时常用到的模型评估指标是精度(accuracy)和错误率(error rate),错误率是:分类错误的样本数站样本总数的比例,即E=n/m(如果在m个样本中有n个样本分类错 ...

  7. 【深度学习的实用层面】(一)训练,验证,测试集(Train/Dev/Test sets)

    在配置训练.验证.和测试数据集的过程中做出正确的决策会更好地创建高效的神经网络,所以需要对这三个名词有一个清晰的认识. 训练集:用来训练模型 验证集:用于调整模型的超参数,验证不同算法,检验哪种算法更 ...

  8. anaconda2下面安装opencv2.4.13.4完成----解决默认安装的问题----Thefunction is not implemented. Rebuild the library with Windows, GTK+ 2.x orCarbon support. If you are on Ubuntu or Debian, install libgtk2.0‑dev and pkg

    转载自:http://blog.csdn.net/qingyanyichen/article/details/73550924 本人下载编译安装了opencv2.4.9,oppencv2.4.10,o ...

  9. ubuntu之路——day11.3 不匹配数据划分的偏差和方差

    在11.2中,我们提到了一种数据划分的方法,那么怎么衡量这种数据划分方法中的误差呢? 来看一个例子:有20w条各种领域的语音识别数据,2w条汽车语音定位数据 train+dev+test,其中trai ...

随机推荐

  1. js把文字中的空格替换为横线

    问题描述 把一个字符串里的所有空格转换为横线 var str = "hello word"; var params=str.replace(/\ /g, "-" ...

  2. mysql 的使用

    1. 安装 https://dev.mysql.com/downloads/mysql/ 2. 配置 $ vim ~/.bash_profile $ export PATH=$PATH:/usr/lo ...

  3. MySQL Backup--Xtrabackup备份异常(MySQL Server has gone away)

    错误场景MySQL 版本:5.7.24XtraBackup 版本:2.4.8CentOS 版本:6.5 MySQL需要新增一个从库,为避免XtraBackup备份影响生产,选择在从库上进行备份,备份脚 ...

  4. pod健康检查(liveness probe存活探针&&readiness probe 可读性探针)

    在Kubernetes集群当中,我们可以通过配置liveness probe(存活探针)和readiness probe(可读性探针)来影响容器的生存周期.参考文档:https://kubernete ...

  5. Linux cat命令使用方法

    今天小编为大家带来cat的使用方法命令:catcat 命令用于连接文件并打印到标准输出设备上.使用权限所有使用者 语法格式cat [-AbeEnstTuv] [–help] [–version] fi ...

  6. zabbix Server 4.0 报警(Action)篇

    zabbix Server 4.0 报警(Action)篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看zabbix默认的Actions 1>.点击默认的Actio ...

  7. 数据库事务和锁(三)——INNODB_LOCKS, INNODB_LOCK_WAITS, INNODB_TRX表的简单介绍

    INNODB_LOCKS, INNODB_LOCK_WAITS, INNODB_TRX是MYSQL中事务和锁相关的表.通常我们遇到事务超时或锁相关问题时,直接运行下面SQL语句即可进行简单检查: -- ...

  8. JVM中对象是否已死

  9. Caused by: java.lang.IllegalArgumentException: DefaultSerializer requires a Serializable payload but received an object of type [VCodeModel]

    2019-08-20 17:53:24,054 [ERROR] [http-nio-8047-exec-1] [HttpResult.java : 143] 系统异常 org.springframew ...

  10. mock工具:mock.js 和vscode faker,moco

    参考:https://www.jianshu.com/p/8453b045544f mock.js主要用于模仿接口返回,可与原生ajax一起使用. 参考:https://www.jianshu.com ...