[DeeplearningAI笔记]ML strategy_1_2开发测试集评价指标
机器学习策略 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开发测试集评价指标的更多相关文章
- [DeeplearningAI笔记]ML strategy_2_2训练和开发/测试数据集不匹配问题
机器学习策略-不匹配的训练和开发/测试数据 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.4在不同分布上训练和测试数据 在深度学习时代,越来越多的团队使用和开发集/测试集不同分布的数据来 ...
- [DeeplearningAI笔记]ML strategy_1_1正交化/单一数字评估指标
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 什么是ML策略 机器学习策略简介 情景模拟 假设你正在训练一个分类器,你的系统已经达到了90%准确 ...
- [DeeplearningAI笔记]ML strategy_1_3可避免误差与改善模型方法
机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.8 为什么是人的表现 今天,机器学习算法可以与人类水平的表现性能竞争,因为它们在很多应用程序中更有生产 ...
- [DeeplearningAI笔记]ML strategy_2_1误差分析
机器学习策略-误差分析 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.1 误差分析 训练出来的模型往往没有达到人类水平的效果,为了得到人类水平的结果,我们对原因进行分析,这个过程称为误差 ...
- [DeeplearningAI笔记]ML strategy_2_3迁移学习/多任务学习
机器学习策略-多任务学习 Learninig from multiple tasks 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.7 迁移学习 Transfer Learninig 神 ...
- [DeeplearningAI笔记]ML strategy_2_4端到端学习
机器学习策略-端到端学习 End-to-end deeplearning 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.9 什么是端到端学习-What is End-to-end dee ...
- [DeeplearningAI笔记]改善深层神经网络1.1_1.3深度学习使用层面_偏差/方差/欠拟合/过拟合/训练集/验证集/测试集
觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 训练/开发/测试集 对于一个数据集而言,可以将一个数据集分为三个部分,一部分作为训练集,一部分作为简单交叉验证集(dev)有时候也成为验 ...
- RGMII_PHY测试笔记1 基于开发板MiS603-X25
RGMII_PHY测试笔记1 基于开发板MiS603-X25 作者:汤金元 日期:20150817 公司:南京米联电子科技有限公司 博客:http://blog.chinaaet.com/detail ...
- 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 ...
随机推荐
- datalist标签小结
在Web设计中,经常会用到如输入框的自动下拉提示,这将大大方便用户的输入.在以前,如果要实现这样的功能,必须要求开发者使用一些Javascript的技巧或相关的框架进行ajax调用,需要一定的编程工作 ...
- 在什么情况下使用@ResponseBody 注解?
@Controller @RequestMapping("/") public class HelloController { @RequestMapping(value = &q ...
- 《SpringMVC从入门到放肆》二、SpringMVC的执行流程及默认配置
上一篇博文我们做了一个hello world的程序,并且已经成功的跑起来了.这一篇我们来深入的了解一下SpringMVC的执行流程以及一些其它的配置. 一.执行流程 来解释一下上图中的各个名词1.Di ...
- “玲珑杯”ACM比赛 Round #19题解&源码【A,规律,B,二分,C,牛顿迭代法,D,平衡树,E,概率dp】
A -- simple math problem Time Limit:2s Memory Limit:128MByte Submissions:1599Solved:270 SAMPLE INPUT ...
- [51nod1254]最大子段和 V2
N个整数组成的序列a[1],a[2],a[3],-,a[n],你可以对数组中的一对元素进行交换,并且交换后求a[1]至a[n]的最大子段和,所能得到的结果是所有交换中最大的.当所给的整数均为负数时和为 ...
- POJ3258-River Hopscotch-二分
这个题就是排排坐,二分就可以了... River Hopscotch Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 1325 ...
- 二维字符数组利用gets输入
char a[10][81];for(int i=0;i<10;i++)gets(a[i]); a是二维数组的数组名,相当于一维数组的指针,所以a[i]就相当于指向第i个数组的指针,类型就相当于 ...
- [国嵌攻略][060][LCD工作原理解析]
LCD硬件体系 1.LCD液晶屏 液晶属于一种有机化合物,分子形状为长棒状,在不同的电流作用下,分子会有规律旋转,这样对光线产生一定的控制形成一个像素,而很多像素右可以构成完整的图像. LCD是Liq ...
- POJ 1797 Heavy Transportation(Dijkstra变形——最长路径最小权值)
题目链接: http://poj.org/problem?id=1797 Background Hugo Heavy is happy. After the breakdown of the Carg ...
- Android 社区App 《窝吧》开源分享
一整个社区模式App的整套代码,包括发布动态,添加.删除好友,添加黑名单,聊天,用户反馈等功能. 相关技术 1 底层使用Bmob后端云,官网: https://www.bmob.cn/ 2 友盟插件, ...