机器学习策略 ML strategy

觉得有用的话,欢迎一起讨论相互学习~Follow Me

1.4 满足和优化指标

Stisficing and optimizing metrics

  • 有时候把你要考虑的所有事情组合成单实数评估指标,有时候并不容易,这时候使用满足和优化指标很重要.
  • 假设以下是一个猫分类器,在我们已经考虑准确度的情况下,我们还要考虑运行时间(即区分一张猫图片所用的时间)

  • 我们的做法是在满足运行时间的条件下,最大限度的提高准确度.例如我们这里选取运行时间必须满足小于100ms的条件,达到最大的准确度.即我们会选择满足条件的B分类器.
  • 此时我们就成 准确度 是一个优化指标, 运行时间 是一个 满足指标
  • 再举一个在 语音识别唤醒 中的例子, 优化指标是唤醒率(即输入语音后进行唤醒成功的概率,在用户说出唤醒词后,设备能够最大可能性的被唤醒) , 满足指标是"假阳性概率",即设备被用户意外唤醒的概率,这个只需要满足小于一天之内被唤醒一次就够了,即是一个(满足指标) .

1.5 训练/开发/测试集划分

  • dev集也叫做开发集(development set)有时也被称为保留交叉验证集(hold out cross validation set).
  • 在机器学习中的开发流程是:尝试很多思路,用训练集训练不同的模型,然后使用开发集来评估不同的思路,然后选择一个,然后不断迭代去改善模型在开发集上的性能直到你在开发集上的cost function的到的结果令你满意,然后再用测试集去评估这个模型.

dev set(开发集)和单实数评估指标就是机器学习团队开发的目标,这个目标必须足够准确,并且开发集和测试集一定得来自同一数据分布,应该将获得的所有数据随机的平均分布到开发集和测试集中,避免测试集测试模型时和开发集优化模型时的目标效果不统一.

1.6 开发集和测试集的大小

  • 在机器学习的早期时代,我们的数据集数量只有 几千个 或者 几万个 这时候我们划分数据集的方式一般为:

  • 但是现在数据集一般在100万的数据集及以上,我们不必使用大规模的数据去构成开发集和测试集.假如我们现在有100万条数据,我们只需要取出2%的数据来构成开发集和测试集.

经验法则

  • 如果你对最终投产的系统有一个很精确的指标,需要大量的数据.如果你的应用不需要很高的置信度,测试集不需要海量数据.
  • 测试集可以帮助评估最终分类器的性能,取决于总体的数据量.如果总体数据量很大,测试集会少于数据集的30%.
  • 开发集要足够大能够测试不同的模型.

1.7什么时候需要改变开发集/测试集和评价指标

cat dataset example

  • 假设你的产品是一个猫分类器,指定的指标是分类误差(classification error) .以下展示算法A和算法B的误差率.

  • 从评价指标和开发集的角度来看,我们应该选择A模型,但是某种原因,A算法会让更多的Pron图片通过识别.即是在这个指标中A算法看起来更好,但是在产品实际运用中,公司和用户更加青睐于B种方案.因为B方案没有Pron图片会通过. 在这个例子中我们发现,B算法其实优于A算法,而评价指标没有发挥应有的作用.
  • 因此,在这个例子中,我们需要更改评价指标,以及更新开发集和测试集.
  • 原有的误差率函数为:

这表示的是开发集上经过归一化后的误差率.

  • 原有评价指标的缺点在于:将Pron图片和非Pron图片平等对待,我们解决这个问题的方法可以是,将Pron图片加上更高的误差权重.

经验法则

  • 对于评价指标的选取和训练的过程实际上遵循正交化的原则,即先指定一个评价指标,然后使算法在开发集和测试集上的表现越来越好.在实际的运用中,如果出现适应性问题,再修改评价指标和适当的改变开发集和测试集.
  • 总体上说你当前的开发测试集和评价指标和你真正关心必须做好的事情关系不大,我们真正应该关注的是实际应用中你需要处理好的用户数据.通过实际中的表现调整开发测试集合评价指标,让他们更好的反应你真正需要处理好的数据.
  • 有一个评估指标和开发集让你可以更快的作出决策,判断算法A还是算法B更优,这真的可以加速你和你的团队迭代的速度.所以即使你当前无法定义一个很完美的评估指标和开发集,你可以直接快速设立出来,然后使用它们来驱动你们的团队的迭代速度.在这之后,如果你发现选的不好,你有更好的想法,那么完全可以马上修改.对于大多数团队建议不要在没有评估指标和开发集时跑太久.因为这样会减慢你的团队的迭代和改善算法的速度.

[DeeplearningAI笔记]ML strategy_1_2开发测试集评价指标的更多相关文章

  1. [DeeplearningAI笔记]ML strategy_2_2训练和开发/测试数据集不匹配问题

    机器学习策略-不匹配的训练和开发/测试数据 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.4在不同分布上训练和测试数据 在深度学习时代,越来越多的团队使用和开发集/测试集不同分布的数据来 ...

  2. [DeeplearningAI笔记]ML strategy_1_1正交化/单一数字评估指标

    机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 什么是ML策略 机器学习策略简介 情景模拟 假设你正在训练一个分类器,你的系统已经达到了90%准确 ...

  3. [DeeplearningAI笔记]ML strategy_1_3可避免误差与改善模型方法

    机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.8 为什么是人的表现 今天,机器学习算法可以与人类水平的表现性能竞争,因为它们在很多应用程序中更有生产 ...

  4. [DeeplearningAI笔记]ML strategy_2_1误差分析

    机器学习策略-误差分析 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.1 误差分析 训练出来的模型往往没有达到人类水平的效果,为了得到人类水平的结果,我们对原因进行分析,这个过程称为误差 ...

  5. [DeeplearningAI笔记]ML strategy_2_3迁移学习/多任务学习

    机器学习策略-多任务学习 Learninig from multiple tasks 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.7 迁移学习 Transfer Learninig 神 ...

  6. [DeeplearningAI笔记]ML strategy_2_4端到端学习

    机器学习策略-端到端学习 End-to-end deeplearning 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.9 什么是端到端学习-What is End-to-end dee ...

  7. [DeeplearningAI笔记]改善深层神经网络1.1_1.3深度学习使用层面_偏差/方差/欠拟合/过拟合/训练集/验证集/测试集

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 训练/开发/测试集 对于一个数据集而言,可以将一个数据集分为三个部分,一部分作为训练集,一部分作为简单交叉验证集(dev)有时候也成为验 ...

  8. RGMII_PHY测试笔记1 基于开发板MiS603-X25

    RGMII_PHY测试笔记1 基于开发板MiS603-X25 作者:汤金元 日期:20150817 公司:南京米联电子科技有限公司 博客:http://blog.chinaaet.com/detail ...

  9. ML基础 : 训练集,验证集,测试集关系及划分 Relation and Devision among training set, validation set and testing set

    首先三个概念存在于 有监督学习的范畴 Training set: A set of examples used for learning, which is to fit the parameters ...

随机推荐

  1. 线程池内的异步线程创建UI控件,造成UI线程卡死无响应的问题分析

    winform应用在使用一段时间后,切换到其他系统或者打开word.excel文档,再切换回winform应用时,系统有时出现不响应的现象.有时在锁屏后恢复桌面及应用时也发生此问题. 经微软支持确认, ...

  2. cs231n spring 2017 lecture10 Recurrent Neural Networks 听课笔记

    (没太听明白,下次重新听一遍) 1. Recurrent Neural Networks

  3. List集合及新特性引用

    ArrayList就是动态数组,也是一个对象. 创建一个ArrayList对象,该对象存放在堆内存中,且是一个内存连续的内存区域. 1.ArrayList是用数组实现的,这个数组的内存是连续的,不存在 ...

  4. HDU-5340 Three Palindromes(字符串哈希)

    http://acm.hdu.edu.cn/showproblem.php?pid=5340 orz到了新的字符串hash姿势 #include<cstdio>#include<cs ...

  5. JFinal极速开发框架使用笔记(二) 两个问题,一个发现

    最近给新人出了一个小测试,我也用JFinal框架做了一下,记录一下使用过程中遇到的坑和新学到的知识点 首先是遇到的两个小问题, 一个是用最新版的eclipse运行JFinal的maven项目报错,经过 ...

  6. Servlet面试题归纳

    尊重原创:http://blog.csdn.net/caohaicheng/article/details/38116481 1.说一说Servlet生命周期 Servlet生命周期包括三部分: 初始 ...

  7. ASP.NET CORE MVC 2.0 项目中引用第三方DLL报错的解决办法 - InvalidOperationException: Cannot find compilation library location for package

    目前在学习ASP.NET CORE MVC中,今天看到微软在ASP.NET CORE MVC 2.0中又恢复了允许开发人员引用第三方DLL程序集的功能,感到甚是高兴!于是我急忙写了个Demo想试试,我 ...

  8. 图tp delDataById问题

  9. oc 快排算法

    直接复制粘贴就可以用了 - (void)viewDidLoad { [super viewDidLoad]; NSMutableArray *M_arr = [[NSMutableArray allo ...

  10. CSS用HTML中的style属性替换

    废话不多说上代码: 1.用CSS给文字添加背景色: <html> <head> <style type="text/css"> body {ba ...