怎么来的?

我们平时用的精度accuracy,也就是整体的正确率

acc = predict_right_num / predict_num

这个虽然常用,但不能满足所有任务的需求。比如,因为香蕉太多了,也不能拨开人工的一个一个的看它的好坏(我爱吃啊,想想就心疼),此时我们就需要有一种方法,代替拨开香蕉这种粗鲁的手段。这时我们需要通过一些测试,看看哪种方法能更加准确的预测。我们可以通过

“准”:预测的准确度,就是我预测的结果中真正好的香蕉要越多越好;

“全”:就是所有的好的香蕉预测出来的越多越好,虽然把有些坏的也预测是好的了,那也不管,“全”就行。

其实这两者都想要达到就好了,但是不行的:

比如"准",我就预测一个算了,好的香蕉肯定比坏的比例高,也就是我只预测一个,100%比例几率最大了,这时就不“全”了,海域好多好的不能都当成坏的扔了吧。。

再比如"全",我去全部预测成好的这真正好的都在我的预测里,也就是100%。可是这时的"准"就贼不准了。。

所以就必须来平衡这俩同志的关系了,怎么平衡呢?肯定是通过权重来的呀,此时,F值登上历史舞台!

啥意思捏?

实例化讲解吧。比如我们的香蕉中 1 表示好的,0表示坏的,有10个香蕉:

gold :     [ 1,1,1,1,1,0,0,0,0,0 ]

pred:   [ 1,0,1,1,1,1,1,0,0,0 ]

注释:gold是现实的好坏;pred是预测的好坏。

P(Precision) 查准率:就是上面说的"准"。字面意思好理解呀,就是在预测当中查找准确个数的比例。公式为:

P = 真正预测准确的数量 / 预测是准确的数量 = 4 / 6

R(Recall) 查全率:就是上面的"全"。根据字面理解,在预测中看看真正预测对的占全有对的比率。公式为:

R = 真正预测准确的数量 / 所有真正好的数量 = 4 / 5

F值是:

F(k) = ( 1 + k ) * P * R / ( ( k*k ) * P + R )

注释:k>0 度量了 查全率 对 查准率 的相对重要性。k>1查全率有更大影响;k<1查准率有更大影响。

在这个实例中可以表示为:k>1就是查全率有更大影响,就是好的香蕉最好都预测出来,因为你觉得不想把好的当成坏的扔点( 真可惜,我爱吃啊 ) ;k<1查准率有更大影响,就是一定要准确,省时间,省力更重要,不在乎好的香蕉当坏的扔点。

而我们常用的是F1,就是F(1)的意思,k=1,比如我们做一个分类任务,这几个类觉得都一样重要。此时:

F(1) = 2 * P * R / ( P + R )

代码实现:

背景:用evalList的长度是我需要求的P,R,F1的个数,比如我的实验是立场检测,分类为FAVOR(支持),AGAINST(反对),NONE(中立)。而NONE一般不考虑,只要求得FAVOR,AGAINST各自的P,R,F1,然后F1求个平均即可。比如这个论文的数据:

 
from Stance Detection with Bidirectional Conditional Encoding paper

这时我的evalList里有两个数据分别表示FAVOR,AGAINST各自的P,R,F1值。

这个P,R,F1的代码为:

 
code
 
print

就这样吧。应该讲的很详细了!

作者:zenRRan
链接:https://www.jianshu.com/p/6536d584d5fd
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

详谈P(查准率),R(查全率),F1值的更多相关文章

  1. 混淆矩阵、准确率、精确率/查准率、召回率/查全率、F1值、ROC曲线的AUC值

    准确率.精确率(查准率).召回率(查全率).F1值.ROC曲线的AUC值,都可以作为评价一个机器学习模型好坏的指标(evaluation metrics),而这些评价指标直接或间接都与混淆矩阵有关,前 ...

  2. 机器学习性能度量指标:ROC曲线、查准率、查全率、F1

    错误率 在常见的具体机器学习算法模型中,一般都使用错误率来优化loss function来保证模型达到最优. \[错误率=\frac{分类错误的样本}{样本总数}\] \[error=\frac{1} ...

  3. 【分类问题中模型的性能度量(一)】错误率、精度、查准率、查全率、F1详细讲解

    文章目录 1.错误率与精度 2.查准率.查全率与F1 2.1 查准率.查全率 2.2 P-R曲线(P.R到F1的思维过渡) 2.3 F1度量 2.4 扩展 性能度量是用来衡量模型泛化能力的评价标准,错 ...

  4. 吴恩达机器学习笔记40-用调和平均数F来进行查准率和查全率之间的权衡(Trading Off Precision and Recall by F sore)

    在很多应用中,我们希望能够保证查准率和查全率的相对平衡. 我们可以将不同阀值情况下,查全率与查准率的关系绘制成图表,曲线的形状根据数据的不同而不同: 我们希望有一个帮助我们选择这个阀值的方法.一种方法 ...

  5. 精确率、准确率、召回率和F1值

    当我们训练一个分类模型,总要有一些指标来衡量这个模型的优劣.一般可以用如题的指标来对预测数据做评估,同时对模型进行评估. 首先先理解一下混淆矩阵,混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用 ...

  6. 机器学习性能指标精确率、召回率、F1值、ROC、PRC与AUC--周振洋

    机器学习性能指标精确率.召回率.F1值.ROC.PRC与AUC 精确率.召回率.F1.AUC和ROC曲线都是评价模型好坏的指标,那么它们之间有什么不同,又有什么联系呢.下面让我们分别来看一下这几个指标 ...

  7. 机器学习笔记--classification_report&精确度/召回率/F1值

    https://blog.csdn.net/akadiao/article/details/78788864 准确率=正确数/预测正确数=P 召回率=正确数/真实正确数=R F1 F1值是精确度和召回 ...

  8. BERT模型在多类别文本分类时的precision, recall, f1值的计算

    BERT预训练模型在诸多NLP任务中都取得最优的结果.在处理文本分类问题时,即可以直接用BERT模型作为文本分类的模型,也可以将BERT模型的最后层输出的结果作为word embedding导入到我们 ...

  9. D. Powerful array 离线+莫队算法 给定n个数,m次查询;每次查询[l,r]的权值; 权值计算方法:区间某个数x的个数cnt,那么贡献为cnt*cnt*x; 所有贡献和即为该区间的值;

    D. Powerful array time limit per test seconds memory limit per test megabytes input standard input o ...

随机推荐

  1. 【题解】洛谷P1002过河卒

    首先,一道入门DP 然而对于蒟蒻的我已经难到爆了好吗 第一点:动态转移方程 用DP的关键! 这题我们可以发现每一步的方案数由上面的那步加上左边的那步得到 所以自然而然的方程就出来了: f[i][k]= ...

  2. wordpress建设的企业网站

    wordpress企业站 http://ahlajd.demo.phpfangzhan.com 后台焦点图实现:

  3. C#基础 一(方法详解)

    需要知道:类和方法的关系 方法和参数修饰符 自定义方法可以有或没有参数,也可以有或没有返回值.可以被各种关键字(static.virtual.public.new等)修饰以限制其行为. C#参数修饰符 ...

  4. 菜鸟笔记 -- Chapter 6.4.3 多态

    6.4.3  多态 多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方 ...

  5. NSString+JSON - iOS

    日常开发中常用的一个相互转换的方法; 直接创建对应的类,引用如下方法即可实现; 具体 code 如下: 声明: #import <Foundation/Foundation.h> @int ...

  6. Django模板简介

    在settings.py中有个TEMPLATES的设置,其中BACKEND用来配置Django模板引擎, DIRS 定义了一个目录列表,模板引擎按列表顺序搜索这些目录以查找模板源文件 一般我们都会把模 ...

  7. Linux的开山篇

    一.Linux的学习方向 1.2Linux运维工程师 1.2.2Linux嵌入式开发工程师 1.2.3在Linux下做各种程序开发    javaEE   大数据    Python  PHP  C/ ...

  8. php xml转数组 自定义xml_to_array

    <?php header("Content-type: text/xml; charset=utf-8"); $con = file_get_contents('xml路径' ...

  9. 微信小程序中无刷新修改

    1.点击事件无刷新修改 原理:onload事件中是把这个分类和品牌的列表全部拿出来,拼接成数组的格式,在小程序中遍历的时候就要把小标(index)给绑定到左侧的品牌上,然后js中获取index的值,就 ...

  10. ecshop 漏洞如何修复 补丁升级与安全修复详情

    目前ecshop漏洞大面积爆发,包括最新版的ecshop 3.0,ecshop 4.0,ecshop2.7.3全系列版本都存在着高危网站漏洞,导致网站被黑,被篡改,被挂马,许多商城系统深受其漏洞的攻击 ...