单一数字评估指标

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

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

比如说对于的猫分类器,之前搭建了某个分类器\(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. [转帖]第七篇:双管齐下,JVM内部优化与JVM性能调优

    文章目录 一.前言 二.编译时优化 2.1 Javac编译器 2.2 Java语法糖 2.2.1 泛型和泛型擦除 2.2.2 自动装箱.自动拆箱.遍历循环 2.2.3 条件编译 三.运行时优化(核心: ...

  2. Docker 运行 Redis Rabbitmq seata-server ftp 的简单办法

    公司里面用到了很多组件, 发现安装二进制太麻烦了, 所以想用Docker 进行安装. 这里面简单给总结一下就不在折腾了.. 1. redis docker run -d -p 6379:6379 -- ...

  3. React中useEffect、useCallBack、useLayoutEffect

    在函数中使用定时器 import { useEffect, useState } from "react"; export default function Funcom() { ...

  4. 插件时间格式处理moment如何使用

    第1步下载插件 cnpm i moment -S 第2步 在main.js中去使用 在main.js中 注册全局过滤器 fmtdata是等会你用的 可以自定义 fmtdata直接可以调用.是一个过滤器 ...

  5. Gin 框架介绍与快速入门

    Gin 框架介绍与快速入门 目录 Gin 框架介绍与快速入门 一.Gin框架介绍 1. 快速和轻量级 2. 路由和中间件 3. JSON解析 4. 支持插件 5. Gin相关文档 二.基本使用 1.安 ...

  6. 小白学k8s(11)-k8s中Secret理解

    理解Secret 什么是Secret Secret的类型 Opaque Secret Opaque Secret的使用 将Secret挂载到Volume中 挂载的Secret会被自动更新 将Secre ...

  7. 深度学习应用篇-计算机视觉-语义分割综述[5]:FCN、SegNet、Deeplab等分割算法、常用二维三维半立体数据集汇总、前景展望等

    深度学习应用篇-计算机视觉-语义分割综述[5]:FCN.SegNet.Deeplab等分割算法.常用二维三维半立体数据集汇总.前景展望等 语义分割综述(semantic segmentation) 1 ...

  8. ASP.NET Core分布式项目实战(oauth2 + oidc 实现 client部分)--学习笔记

    任务16:oauth2 + oidc 实现 client部分 实现 client 之前启动一下上一节的 server,启动之前需要清除一些代码 注释 Program 的 MigrateDbContex ...

  9. 从零开始的react入门教程(九),react context上下文详解,可能有点啰嗦,但很想让你懂

    壹 ❀ 引 我在从零开始的react入门教程(八),redux起源与基础用法一文中,介绍了redux的前辈Flux,以及redux关于单项数据更新的基本用法.我们在前文提到,相对Flux支持多个sto ...

  10. NC20477 [ZJOI2008]树的统计COUNT

    题目链接 题目 题目描述 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w. 我们将以下面的形式来要求你对这棵树完成 一些操作: I. CHANGE u t : 把结点u的权值改为t II ...