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. Node.js学习之(第三章:简易小demo)

    前言 我们前面已经学习完了Node中一些核心模块还有如何正确配置响应头的Content-Type,今天我们来实现一个简单的demo,巩固下之前学习的内容. 需求 我们平时访问百度或者其他大的门户网站的 ...

  2. 增强学习--TRPO算法

    理论部分参考 推导 数学上的分析 代码

  3. Selenium文件上传

    转自:https://www.cnblogs.com/miaojjblog/p/9679915.html Web上本地上传图片,弹出的框Selenium是无法识别的,也就是说,selenium本身没有 ...

  4. Fortify漏洞之Insecure Randomness(不安全随机数)

    继续对Fortify的漏洞进行总结,本篇主要针对  Insecure Randomness  漏洞进行总结,如下: 1.Insecure Randomness(不安全随机数) 1.1.产生原因: 成弱 ...

  5. mac安装openjdk8-maven-mysql-git-docker

    1. openjdk8安装命令查看地址:https://github.com/AdoptOpenJDK/homebrew-openjdk#other-versions   感觉上面命令地址不靠谱,还是 ...

  6. JavaScript基础,Cookies,Sessions

    php和JavaScript,掌握JavaScript基础,自定义函数,流程控制语句,事件,调用JavaScript脚本,在PHP中使用JavaScript. JavaScript是网景公司开发的,是 ...

  7. [ipsec][strongswan] strongswan源码分析-- (二)rekey/reauth机制分析

    目录 strongwan sa分析(二) 名词约定 rekey/reauth 机制分析 1 概述 2 reauth 3 CHILD SA rekey 4 IKE SA rekey 5 其他 stron ...

  8. [S32K]FreeRTOS使用

    参考官方: Tutorial: FreeRTOS 10.0.1 with NXP S32 Design Studio 2018.R1 (官方component是V8.2.1,此文档介绍如何升级到V10 ...

  9. Random类产生随机数

    Random 类作为JAVA中用于产生的随机数 ,new  Random(10)  :10是种子数. 注意:Random 的一个特点是:相同种子数的Random对象,对应相同次数生成的随机数字是完全相 ...

  10. 用 Python 加密文件

    生活中,有时候我们需要对一些重要的文件进行加密,Python 提供了诸如 hashlib,base64 等便于使用的加密库. 但对于日常学习而言,我们可以借助异或操作,实现一个简单的文件加密程序,从而 ...