[白话解析] 通过实例来梳理概念 :准确率 (Accuracy)、精准率(Precision)、召回率(Recall)和F值(F-Measure)
[白话解析] 通过实例来梳理概念 :准确率 (Accuracy)、精准率(Precision)、召回率(Recall)和F值(F-Measure)
0x00 摘要
二分类评估是对二分类算法的预测结果进行效果评估。本文将构造出一个水泊梁山的具体实例带领大家梳理相关概念。
0x01 本文缘由
笔者最近在研究Alink源码,本来计划分析二分类评估,结果打开Alink相关文档发现里面给出不少概念和公式。于是本文先带领大家一起复习/熟悉其中部分概念和公式,为后续分析源码打下良好的基础。
以下是Alink中 “二分类评估” 的说明。
支持Roc曲线,LiftChart曲线,Recall-Precision曲线绘制。
流式的实验支持累计统计和窗口统计。
给出整体的评估指标包括:AUC、K-S、PRC, 不同阈值下的Precision、Recall、F-Measure、Sensitivity、Accuracy、Specificity和Kappa。
这些概念基本都是评价指标,这是针对模型性能优劣的一个定量指标。一种评价指标只能反映模型一部分性能,如果选择的评价指标不合理,那么可能会得出错误的结论,故而应该针对具体的数据、模型选取不同的的评价指标。
接下来就分析梳理其中部分概念。
0x02 例子构建
- 目标:因为在招安大计上,鲁智深提出了反对意见,所以宋公明希望在梁山内部查找和鲁智深有关联的人。
- 样本全体:林冲,武松,史进,杨志,张青,孙二娘,呼延灼,关胜,石秀,杨雄。
宋江对蒋敬说:贤弟你是神算子,快帮哥哥想想如何能够找出与大和尚有串联的人,
蒋敬说:哥哥这个要求是 “二分类问题”(例如预测患或未患心脏病、股票涨或跌等这种只有两类情况的问题),里面门道甚多,哥哥且听我慢慢道来。
0x03 混淆矩阵
蒋敬说:首先小弟介绍的概念是混淆矩阵,这是一个 2 维方阵,它主要用于评估二分类问题的好坏。
3.1 四种分类情况
针对一个二分类问题,即将实例分成正类(positive)或负类(negative),在实际分类中会出现以下四种情况:
TN (True Negative ):算法预测为负例(N),实际上也是负例(N)的个数,即算法预测对了(True)。
FP (False Positive ):算法预测为正例(P),实际上是负例(N)的个数,即算法预测错了(False)
这里指的是:实际为负例但被分类器划分为正例的实例数。
FN (False Negative ):算法预测为负例(N),实际上是正例(P)的个数,即算法预测错了(False)
这里指的是:即实际为正例但被分类器划分为负例的实例数。
TP (True Positive ):算法预测为正例(P),实际上也是正例(P)的个数,即算法预测对了(True)。
宋江道:如此说来,“与鲁智深有关联人” 就是 TP + FP了。
蒋敬说:哥哥误会了,实际为正例的样本数应该是 TP + FN。
这里有个记忆诀窍听小弟道来。
记忆诀窍是 :这 4 个定义由两个字母组成:
- 第 1 个字母表示算法预测正确或者错误,即 True、False 描述的是这个分类器是否判断正确。
- 第 2 个字母表示算法预测的结果,即 Positive、Negative 是这个分类器的分类结果。
所以再次澄清:
- TP :预测为正样本,实际也是正样本。
- FP :预测为正样本,实际是负样本。
- FN :预测为负样本,实际是正样本。
- TN:预测为负样本,实际也是负样本。
- P = TP + FN :所有 "实际为正例" 的样本数
- N = FP + TN :所有 "实际 为负例" 的样本数
- P~ = TP + FP :所有 "预测为正例" 的样本数
- N~ = TN + FN :所有 "预测为负例" 的样本数
3.2 混淆矩阵
混淆矩阵是把真实值和预测值相对应的样本数量列出来的一张交叉表。这样,所有正确的预测结果都在其对角线上,所以从混淆矩阵中可以很直观地看出哪里有错误。
矩阵的每一行是样本的预测分类,每一列是样本的真实分类(反过来也可以)。
| 预测值 0 (与鲁智深无关联) | 预测值 1 (与鲁智深有关联) | |
|---|---|---|
| 真实值 0 (与鲁智深无关联) | TN | FP |
| 真实值 1 (与鲁智深有关联) | FN | TP |
记忆方法:真实值更重要,所以真实值处在第一个维度,就是行。
0x04 准确率 Accuracy
蒋敬说:小弟介绍的第二个概念是准确率 Accuracy。这 Accuracy 指的是预测正确的样本数量占总量的百分比。
4.1 公式
\]
按照我们上文的定义:第 1 个字母表示算法预测正确或者错误,第 2 个字母表示算法预测的结果。
所以分母是全部四种数据;分子中第一个字母是 T 表示 "算法预测正确了"。
4.2 特点
准确率有一个缺点,就是数据的样本不均衡,这个指标是不能评价模型的性能优劣的。
假如一个测试集有正样本99个,负样本1个。我们设计的模型是个无脑模型,即把所有的样本都预测为正样本,那么模型的Accuracy为99%,看评价指标,模型的效果很好,但实际上模型没有任何预测能力。
0x05 精准率 Precision
蒋敬说:小弟介绍的第三个概念是精准率,又称为查准率,就是 “预测为正例" 的那些数据里 "预测正确" 的数据个数。即在模型预测为正样本的结果中,真正是正样本所占的百分比。或者说是 在预测为正样本的结果中,有多少是准确的。
5.1 公式
\]
按照我们上文的定义:第 1 个字母表示算法预测正确或者错误,第 2 个字母表示算法预测的结果。
所以分母中, TP表示 : 算法预测正确 & 预测的是正例,FP表示 : 算法预测错误 & 预测的是正例(实际是负例)
5.2 特点
这个指标比较谨慎,分类阈值较高。
5.3 应用场景
需要尽可能地把所需的类别检测准确,而不在乎这些类别是否都被检测出来。比如对于罪犯的预测,我们希望预测结果是非常准确的,即使放过了一些真正的罪犯,也不能错怪一个好人。
0x06 准确率 VS 精准率
宋江说,贤弟这两个中文词长得也太像太坑爹了,哥哥我很难区别。
蒋敬说:哥哥,这两个词是从英文翻译过来的,咱慢慢推敲。
让我们看看其英文原意。
- Accuracy在词典中的定义是:the quality or state of being correct or precise
- Precision在词典中的定义是:the quality, condition, or fact of being exact and accurate
Accuracy首先是correct(正确),而precision首先是exact(精确,或者说确切)。首先准确,然后才谈得上精确。一个结果必须要同时符合准确与精密这两个条件,才可算是精准。
这两个词也 有点类似 偏差(bias)与方差(variance)
- 偏差(bias)反映了模型在样本上的期望输出与真实标记之间的差距,即模型本身的精准度,反映的是模型本身的拟合能力。这就很像 Precision。
- 方差(variance)反映了模型在不同训练数据集下学得的函数的输出与期望输出之间的误差,即模型的稳定性,反应的是模型的波动情况。这有点像 Accuracy。
宋江说,贤弟你这偏差,方差的,哥哥也听着像天书。
蒋敬说:待小弟给哥哥找一个合适的例子。
比如大概可以类比成咱射箭,准确率要看你射中靶心的概率;精准率要看你射中的是靶心区域的哪个位置。
0x07 召回率 Recall
这是针对原始样本而言的一个评价指标。召回率又称为查全率,就是在实际为正样本中,被预测为正样本所占的百分比。 即所有正例中,有多少被正确地判定为正。
7.1 公式
[白话解析] 通过实例来梳理概念 :准确率 (Accuracy)、精准率(Precision)、召回率(Recall)和F值(F-Measure)的更多相关文章
- 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure
yu Code 15 Comments 机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accu ...
- 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)
首先我们可以计算准确率(accuracy),其定义是: 对于给定的测试数据集,分类器正确分类的样本数与总样本数之比.也就是损失函数是0-1损失时测试数据集上的准确率. 下面在介绍时使用一下例子: 一个 ...
- 目标检测评价标准(mAP, 精准度(Precision), 召回率(Recall), 准确率(Accuracy),交除并(IoU))
1. TP , FP , TN , FN定义 TP(True Positive)是正样本预测为正样本的数量,即与Ground truth区域的IoU>=threshold的预测框 FP(Fals ...
- [白话解析] 带你一起梳理Word2vec相关概念
[白话解析] 带你一起梳理Word2vec相关概念 0x00 摘要 本文将尽量使用易懂的方式,尽可能不涉及数学公式,而是从整体的思路上来说,运用感性直觉的思考来帮大家梳理Word2vec相关概念. 0 ...
- 一文让你彻底理解准确率,精准率,召回率,真正率,假正率,ROC/AUC
参考资料:https://zhuanlan.zhihu.com/p/46714763 ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到).其实,理解它并不是非常难 ...
- 二分类算法的评价指标:准确率、精准率、召回率、混淆矩阵、AUC
评价指标是针对同样的数据,输入不同的算法,或者输入相同的算法但参数不同而给出这个算法或者参数好坏的定量指标. 以下为了方便讲解,都以二分类问题为前提进行介绍,其实多分类问题下这些概念都可以得到推广. ...
- 准确率、精确率、召回率、F1
在搭建一个AI模型或者是机器学习模型的时候怎么去评估模型,比如我们前期讲的利用朴素贝叶斯算法做的垃圾邮件分类算法,我们如何取评估它.我们需要一套完整的评估方法对我们的模型进行正确的评估,如果模型效果比 ...
- 【AI】基本概念-准确率、精准率、召回率的理解
样本全集:TP+FP+FN+TN TP:样本为正,预测结果为正 FP:样本为负,预测结果为正 TN:样本为负,预测结果为负 FN:样本为正,预测结果为负 准确率(accuracy):(TP+TN)/ ...
- 准确率(Precision),召回率(Recall)以及综合评价指标(F1-Measure)
准确率和召回率是数据挖掘中预测,互联网中得搜索引擎等经常涉及的两个概念和指标. 准确率:又称“精度”,“正确率” 召回率:又称“查全率” 以检索为例,可以把搜索情况用下图表示: 相关 不相关 检索 ...
随机推荐
- mantis2.22.1中添加管理员密码修改框
1.修改文件 mantis/manage_user_edit_page.php 找到<!-- Email -->位置,将以下代码粘贴到下面即可:<tr <?php echo h ...
- 《Head First 设计模式》:策略模式
正文 一.定义 策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户. 要点: 策略模式把系统中会变化的部分抽出来封装. 二.实现步骤 1.创建策略接口 ...
- [批处理教程之MySQL]001.MySQL 常用命令大全
连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MySQL 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p ...
- Java中的集合类型体系(一)
Java中的集合类型体系(一) 提问:为什么需要集合? 通常情况下,程序需要根据运行时才知道创建了多少对象.若非程序运行时,而在开发阶段,我们并不知道创建了多少对象,甚至不知道对象的准确类型,为了满足 ...
- C#线程 基本同步
第二部分: 基本同步 同步要点 到目前为止,我们已经描述了如何在线程上启动任务,配置线程以及双向传递数据.我们还描述了局部变量如何专用于线程,以及如何在线程之间共享引用,从而允许它们通过公共字段进行 ...
- SpringBoot获取配置文件,就这么简单。
在讲SpringBoot 获取配置文件之前我们需要对SpringBoot 的项目有一个整体的了解,如何创建SpringBoot 项目,项目结构等等知识点,我在这里就不一一讲述了,没有学过的小伙伴可以自 ...
- JAVASE(十八) 反射: Class的获取、ClassLoader、反射的应用、动态代理
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.反射(JAVA Reflection)的理解 1.1 什么是反射(JAVA Reflection) ...
- Spring Boot笔记(三) springboot 集成 Quartz 定时任务
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1. 在 pom.xml 中 添加 Quartz 所需要 的 依赖 <!--定时器 quartz- ...
- Java实现 LeetCode 27 移除元素
27. 移除元素 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额 ...
- java代码(2)---Java8 Stream
stream Java8新特性Stream流,那Stream表达式到底是什么呢,为什么可以使你的代码更加整洁而且对集合的操作效率也会大大提高? 一.概述 1.什么是Stream Stream是一种可供 ...