详谈P(查准率),R(查全率),F1值

怎么来的?

    我们平时用的精度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
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

转载于:https://www.cnblogs.com/yourcool/p/9609538.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站系统分布式架构

写这篇文章之前&#xff0c;需要有些论点和论据&#xff0c;以表明网络系统在极端情况下的情况&#xff0c;先来看看世界上排名靠前的网站。 1、 FaceBook 2、 Google 从这两个站可以看出&#xff0c;当下比较极限的日均访问量在2~3亿&#xff0c;PV值…

linux文件系统学习,linux文件系统之tmpfs学习

关于文件系统&#xff0c;我们在下面的博文中已有做简单的介绍&#xff0c;外链网址已屏蔽本篇博文我们学习的是文件系统中的tmpfs。tmpfs是一种伪文件系统&#xff0c;它是从DRAM中创建出来的&#xff0c;相比于磁盘而言&#xff0c;其具有更高的访问效率。如何创建一个tmpfs&…

python 数据科学 包_什么时候应该使用哪个Python数据科学软件包?

python 数据科学 包Python is the most popular language for data science. Unfortunately, it can be tricky to know which of the many data science libraries to use when. ☹️Python是数据科学中最流行的语言。 不幸的是&#xff0c;要知道何时使用许多数据科学库中的哪…

Go语言开发环境配置

http://blog.csdn.net/hil2000/article/details/41261267/ 一.我为什么要学习go语言 当今已经是移动和云计算时代&#xff0c;Go出现在了工业向云计算转型的时刻&#xff0c;简单、高效、内 置并发原语和现代的标准库让Go语言尤其适合云端软件开发&#xff08;毕竟它就是为此而…

微软研发致胜策略

第一章奠定基础 1&#xff0e;千万不要把程序设计师的时间浪费在改善产品以外的工作上。 2&#xff0e;保护程序设计师不受任何阻碍和干扰。 3&#xff0e;永远记得自己真正的目标&#xff0c;然后让团队用最有将效又最愉快的方法把它完成。 4&#xff0e;理清详细的项目目…

熊猫tv新功能介绍_您应该知道的4种熊猫绘图功能

熊猫tv新功能介绍Pandas is a powerful package for data scientists. There are many reasons we use Pandas, e.g. Data wrangling, Data cleaning, and Data manipulation. Although, there is a method that rarely talks about regarding Pandas package and that is the …

CPP_封装_继承_多态

类的三方法&#xff1a;封装&#xff0c;继承&#xff0c;多态。封装&#xff1a;使用一整套方法去创建一个新的类型&#xff0c;这叫类的封装。继承&#xff1a;从一个现有的类型基础上&#xff0c;稍作改动&#xff0c;得到一个新的类型的方法&#xff0c;叫类的继承。多态&a…

win与linux渊源,微软与Linux从对立走向合作,WSL是如何诞生的

原标题&#xff1a;微软与Linux从对立走向合作&#xff0c;WSL是如何诞生的正文Windows Subsystem for Linux(WSL)的开发&#xff0c;让微软从Linux的对立面走向合作&#xff0c;并且不断加大对开源社区的支持力度。而作为微软历史上的重要转折点&#xff0c;外界对WSL技术在Pr…

文件编辑器 vi

1、关于文本编辑器&#xff1b; 文本编辑器有很多&#xff0c;比如图形模式的gedit、kwrite、OpenOffice ... ... &#xff0c;文本模式下的编辑器有vi、vim&#xff08;vi的增强版本&#xff09;和nano ... ... vi和vim是我们在Linux中最常用的编辑器。我们有必要介绍一下vi&a…

MFC80.DLL复制到程序目录中,也有的说复制到安装目录中

在用VS2005学习C调试程序的时候&#xff0c;按F5键&#xff0c;总提示这个问题&#xff0c; 不晓得什么原因&#xff0c;网上有的说找到MFC80.DLL复制到程序目录中&#xff0c;也有的说复制到安装目录中&#xff0c;可结果很失望&#xff0c;也有的VS2005安装有问题&#xff0…

vs显示堆栈数据分析_什么是“数据分析堆栈”?

vs显示堆栈数据分析A poor craftsman blames his tools. But if all you have is a hammer, everything looks like a nail.一个可怜的工匠责怪他的工具。 但是&#xff0c;如果您只有一把锤子&#xff0c;那么一切看起来都像钉子。 It’s common for web developers or databa…

服务器

服务器主流品牌&#xff1a;华为、浪潮、戴尔、惠普华为服务器&#xff1a;华为FusionServer RH2288 V3 华为FusionServer RH5885 V3 浪潮服务器&#xff1a; 浪潮英信NP3020M4 浪潮英信NF5280M4 戴尔服务器&#xff1a; 戴尔PowerEdge R730 机架式服务器 戴尔PowerEdge R740 机…

树莓派 zero linux,树莓派 zero基本调试

回家之前就从网上购买了一堆设备&#xff0c;回去也不能闲着&#xff0c;可以利用家里相对齐全的准备安装调试。结果人还没回来&#xff0c;东西先到了。购买的核心装备是树莓派zero w&#xff0c;虽然已经知道它比家族大哥树莓派小不少&#xff0c;但拿到手里还是惊奇它的小巧…

error C2440 “static_cast” 无法从“void (__thiscall CPppView )(void)”转换为“LRESULT (__thiscall

error C2440 “static_cast” 无法从“void (__thiscall CPppView )(void)”转换为“LRESULT (__thiscall CWnd )(WPARAM,LPARAM)” 不能转换void (_thiscall CMainFrame::*)(void)to LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)开发平台由VC6.0升级至VS2005&#xff0c;需要…

简单的编译流程

简易编译器流程图: 一个典型的编译器&#xff0c;可以包含为一个前端&#xff0c;一个后端。前端接收源程序产生一个中间表示&#xff0c;后端接收中间表示继续生成一个目标程序。所以&#xff0c;前端处理的是跟源语言有关的属性&#xff0c;后端处理跟目标机器有关的属性。 复…

广告投手_测量投手隐藏自己的音高的程度

广告投手As the baseball community has recently seen with the Astros 2017 cheating scandal, knowing what pitch is being thrown gives batters a game-breaking advantage. However, unless you have an intricate system of cameras and trash cans set up, knowing wh…

linux事务隔离级别,事务的隔离级别(Transaction isolation levels)2

READ COMMITTEDREAD COMMITTED这是数据库默认的隔离级别。它能保证你不能读取那张表格数据&#xff0c;只要有其它事务还在改变这张表格数据。可是&#xff0c;因为sql server在select操作的时&#xff0c;锁表格时间就那么一小会儿&#xff0c;如果一个事务在READ COMMITTED级…

Asp导出到Excel之二

response.contentType "application/vnd.ms-excel" response.addheader "Content-Disposition", "attachment; filename引出文件.xls" 一、适用于动态和表态表。 二、页面最好只存放数据表&#xff0c;不要有其它内容。 三、对于分页的情…

warning C4996: “strcpy”被声明为否决的解决办法

VC2005中&#xff0c;使用了很多标准的C函数&#xff0c;比如fopen&#xff0c;strcpy之类的。编译时会出现警告&#xff0c;比如这个&#xff1a; d:\xxxx.c(1893) : warning C4996: “strcpy”被声明为否决的 紧接着IDE有提示说:“This function or variable…

验证部分表单是否重复

1. 效果 图片中的名称、机构编码需要进行重复验证2. 思路及实现 表单验证在获取数据将需要验证的表单数据进行保存this.nameChangeTemp response.data.orgName;this.codeChangeTemp response.data.orgCode; 通过rule对表单进行验证 以名字的验证为例rules: {orgName: [// 设置…