单一数字评估指标

无论是调整超参数,或者是尝试不同的学习算法,或者在搭建机器学习系统时尝试不同手段,会发现,如果有一个单实数评估指标,进展会快得多,它可以快速告诉,新尝试的手段比之前的手段好还是差。所以当团队开始进行机器学习项目时,经常推荐他们为问题设置一个单实数评估指标。

来看一个例子,之前听过说过,应用机器学习是一个非常经验性的过程,通常有一个想法,编程序,跑实验,看看效果如何,然后使用这些实验结果来改善的想法,然后继续走这个循环,不断改进的算法。

比如说对于的猫分类器,之前搭建了某个分类器\(A\),通过改变超参数,还有改变训练集等手段,现在训练出来了一个新的分类器B,所以评估的分类器的一个合理方式是观察它的查准率(precision)和查全率(recall)。

查准率和查全率的确切细节对于这个例子来说不太重要。但简而言之,查准率的定义是在的分类器标记为猫的例子中,有多少真的是猫。所以如果分类器\(A\)有95%的查准率,这意味着的分类器说这图有猫的时候,有95%的机会真的是猫。

查全率就是,对于所有真猫的图片,的分类器正确识别出了多少百分比。实际为猫的图片中,有多少被系统识别出来?如果分类器\(A\)查全率是90%,这意味着对于所有的图像,比如说的开发集都是真的猫图,分类器\(A\)准确地分辨出了其中的90%。

所以关于查准率和查全率的定义,不用想太多。事实证明,查准率和查全率之间往往需要折衷,两个指标都要顾及到。希望得到的效果是,当的分类器说某个东西是猫的时候,有很大的机会它真的是一只猫,但对于所有是猫的图片,也希望系统能够将大部分分类为猫,所以用查准率和查全率来评估分类器是比较合理的。

但使用查准率和查全率作为评估指标的时候,有个问题,如果分类器\(A\)在查全率上表现更好,分类器\(B\)在查准率上表现更好,就无法判断哪个分类器更好。如果尝试了很多不同想法,很多不同的超参数,希望能够快速试验不仅仅是两个分类器,也许是十几个分类器,快速选出“最好的”那个,这样可以从那里出发再迭代。如果有两个评估指标,就很难去快速地二中选一或者十中选一,所以并不推荐使用两个评估指标,查准率和查全率来选择一个分类器。只需要找到一个新的评估指标,能够结合查准率和查全率。

在机器学习文献中,结合查准率和查全率的标准方法是所谓的\(F_1\)分数,\(F_1\)分数的细节并不重要。但非正式的,可以认为这是查准率\(P\)和查全率\(R\)的平均值。正式来看,\(F_1\)分数的定义是这个公式:\(\frac{2}{\frac{1}{P} + \frac{1}{R}}\)

在数学中,这个函数叫做查准率\(P\)和查全率\(R\)的调和平均数。但非正式来说,可以将它看成是某种查准率和查全率的平均值,只不过算的不是直接的算术平均,而是用这个公式定义的调和平均。这个指标在权衡查准率和查全率时有一些优势。

但在这个例子中,可以马上看出,分类器\(A\)的\(F_1\)分数更高。假设\(F_1\)分数是结合查准率和查全率的合理方式,可以快速选出分类器\(A\),淘汰分类器\(B\)。

发现很多机器学习团队就是这样,有一个定义明确的开发集用来测量查准率和查全率,再加上这样一个单一数值评估指标,有时叫单实数评估指标,能让快速判断分类器\(A\)或者分类器\(B\)更好。所以有这样一个开发集,加上单实数评估指标,迭代速度肯定会很快,它可以加速改进您的机器学习算法的迭代过程。

来看另一个例子,假设在开发一个猫应用来服务四个地理大区的爱猫人士,美国、中国、印度还有世界其他地区。假设的两个分类器在来自四个地理大区的数据中得到了不同的错误率,比如算法\(A\)在美国用户上传的图片中达到了3%错误率,等等。

所以跟踪一下,的分类器在不同市场和地理大区中的表现应该是有用的,但是通过跟踪四个数字,很难扫一眼这些数值就快速判断算法\(A\)或算法\(B\)哪个更好。如果测试很多不同的分类器,那么看着那么多数字,然后快速选一个最优是很难的。所以在这个例子中,建议,除了跟踪分类器在四个不同的地理大区的表现,也要算算平均值。假设平均表现是一个合理的单实数评估指标,通过计算平均值,就可以快速判断。

看起来算法\(C\)的平均错误率最低,然后可以继续用那个算法。必须选择一个算法,然后不断迭代,所以的机器学习的工作流程往往是有一个想法,尝试实现它,看看这个想法好不好。

机器学习策略篇:详解单一数字评估指标(Single number evaluation metric)的更多相关文章

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

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

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

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

  3. PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明

    PHP函数篇详解十进制.二进制.八进制和十六进制转换函数说明 作者: 字体:[增加 减小] 类型:转载   中文字符编码研究系列第一期,PHP函数篇详解十进制.二进制.八进制和十六进制互相转换函数说明 ...

  4. 走向DBA[MSSQL篇] 详解游标

    原文:走向DBA[MSSQL篇] 详解游标 前篇回顾:上一篇虫子介绍了一些不常用的数据过滤方式,本篇详细介绍下游标. 概念 简单点说游标的作用就是存储一个结果集,并根据语法将这个结果集的数据逐条处理. ...

  5. Scala进阶之路-Scala函数篇详解

    Scala进阶之路-Scala函数篇详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传值调用和传名调用 /* @author :yinzhengjie Blog:http: ...

  6. java提高篇-----详解java的四舍五入与保留位

    转载:http://blog.csdn.net/chenssy/article/details/12719811 四舍五入是我们小学的数学问题,这个问题对于我们程序猿来说就类似于1到10的加减乘除那么 ...

  7. CentOS 7 下编译安装lnmp之PHP篇详解

    一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.PHP下载 官网 http ...

  8. CentOS 7 下编译安装lnmp之MySQL篇详解

    一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:centos-release-7-5.1804.el7.centos.x86_64 二.MySQL下载 MySQL ...

  9. CentOS 7 下编译安装lnmp之nginx篇详解

    一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:CentOS Linux release 7.5.1804 (Core),ip地址 192.168.1.168   ...

  10. JavaScript基础篇详解

    全部的数据类型: 基本数据类型: undefined Number Boolean null String 复杂数据类型: object ①Undefined: >>>声明但未初始化 ...

随机推荐

  1. 银河麒麟(Ubuntu)无法上网问题的解决方法

    最近部门借了几台银河麒麟的服务器. 因为有特殊用途, 不允许连接互联网,所以没办法只能搭建一个小的局域网进行处理. 但是发现在搭建过程中遇到了一些坑, 之前协助同事解决odoo问题时也遇到过, 当时本 ...

  2. 使用Grafana 监控 SQLSERVER数据库

    使用Grafana 监控 SQLSERVER数据库 1.获取镜像信息以及启动镜像 docker pull awaragi/prometheus-mssql-exporter docker run -e ...

  3. MySQL查询聚合函数与分组查询

    连接数据库 mysql -hlocalhost -uroot -proot 聚合函数 聚合函数:作用于某一列,对数据进行计算. ps: 所有的null值是不参与聚合函数的运算的. 06 常见的聚合函数 ...

  4. 快速上手NPM包管理

    NPM官网 前提 安装nodejs 检测安装成功的命令 node -v 显示版本号即为安装成功 快速上手教程 第一步注册NPM账号官网在上面 第二步骤随便找个地方新建一个文件夹 然后这个文件夹我们用C ...

  5. 使用TimeSpan 日期与时间拼接

    TimeSpan 含有以下四个构造函数: TimeSpan(Int64)将 TimeSpan结构的新实例初始化为指定的刻度数. (DateTime.Tick:是计算机的一个计时周期,单位是一百纳秒,即 ...

  6. vs版本与version(内部版本号)的关系表table

    为什么要查vs版本与内部verion的对应关系? 因为c++的项目需要对应的vs版本,给大型的c++项目升级vs版本是个耗时的工程,所以一般情况下开发者都会安装多个版本的vs. 对于sln文件,以文本 ...

  7. 心动了!iPhone 15 Pro超窄边框感受下:1.5mm破历史纪录 “跑马框”再见

    综合目前已知爆料来看,iPhone 15系列将有7大升级.其中一个比较明显的直观变化是,新款iPhone全系边框都会更窄.iPhone 15 Pro.Pro Max的边框宽度仅为1.55mm,破历史记 ...

  8. SpringBoot + LiteFlow:轻松应对复杂业务逻辑,简直不要太香!

    LiteFlow简介 LiteFlow是什么? LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑.通过支持热加载规则配置,开发者能够 ...

  9. MaxCompute(ODPS)和Hive的区别

    Hive概述 架构于Hadoop之上,可以将结构化的HDFS文件映射成一张表,并提供了类似于SQL语法的HQL查询功能. 核心本质:将HQL语句转换成MapReduce任务. Hive的优缺点 优点 ...

  10. [Java][并发编程]AQS以及其相关同步器的源码解析

    AQS以及其相关同步器的源码解析 概念 AQS(AbstractQueuedSynchronizer)抽象的队列同步器.是用来构建锁或者其他同步器组件的重量级基础框架以及整个JUC体系的基石.通过内置 ...