分类模型的F1分值、Precision和Recall 计算过程

引入

通常,我们在评价classifier的性能时使用的是accuracy

考虑在多类分类的背景下

accuracy = (分类正确的样本个数) / (分类的所有样本个数)

这样做其实看上去也挺不错的,不过可能会出现一个很严重的问题:例如某一个不透明的袋子里面装了1000台手机,其中有600台iphone6, 300台galaxy s6, 50台华为mate7,50台mx4(当然,这些信息分类器是不知道的。。。)。如果分类器只是简单的把所有的手机都预测为iphone6, 那么通过上面的公式计算的准确率accuracy为0.6,看起来还不错;可是三星,华为和小米的全部预测错了。如果再给一个袋子,里面装着600台galaxy s6, 300台mx4, 50台华为mate7,50台iphone,那这个分类器立马就爆炸了,连回家带孩子的要求都达不到

所以,仅仅用accuracy来衡量一个分类器的性能是很不科学的。因此要引入其他的衡量标准。

二分类

是不是经常看见如下类似的图?这是二分类的图,假设只有正类和负类,True和False分别表示对和错;Positive和Negative分别表示预测为正类和负类。

那么

TP:预测为Positive并且对了(样本为正类且预测为正类)

TN:预测为Negative并且对了(样本为负类且预测为负类)

FP:预测为Positive但错了(样本为负类但预测为正类)

FN:预测为Negative但错了(样本为正类但预测为负类)

TP+FP:预测为Positive并且对了+预测为Positive但错了=预测为Positive的样本总数

TP+FN:预测为Positive并且对了+预测为Negative但错了=实际为Positive的样本总数

所以precision就表示:被正确预测的Positive样本 / 被预测为Positive的样本总数

同理,recall就表示:被正确预测的Positive样本 / 实际为Positive的样本总数

F1是调和平均值,精准率和召回率只要有一个比较小的话,F1的值也会被拉下来:

多分类情况

其实和二分类情况很类似,例子如下 这个是Micro , 和二分类类似 (将例子中的precision和recall代入到F1公式中,得到的就是Micro下的F1值)

而Macro情况下计算F1需要先计算出每个类别的F1值,然后求平均值。如下

Macro情况下上述例子的计算

sklearn计算程序(macro)

下面是使用sklearn直接计算多类别F1/P/R的程序,将接口中的average参数配置为’macro’即可。

from sklearn.metrics import f1_score, precision_score, recall_score

y_true=[1,2,3]

y_pred=[1,1,3]

f1 = f1_score( y_true, y_pred, average='macro' )

p = precision_score(y_true, y_pred, average='macro')

r = recall_score(y_true, y_pred, average='macro')

print(f1, p, r)

# output: 0.555555555556 0.5 0.666666666667

参考链接:

机器学习:评价分类结果(F1 Score)

一.基础 疑问1:具体使用算法时,怎么通过精准率和召回率判断算法优劣? 根据具体使用场景而定: 例1:股票预测,未来该股票是升还是降?业务要求更精准的找到能够上升的股票:此情况下,模型精准率越高越优. ...

【tf.keras】实现 F1 score、precision、recall 等 metric

tf.keras.metric 里面竟然没有实现 F1 score.recall.precision 等指标,一开始觉得真不可思议.但这是有原因的,这些指标在 batch-wise 上计算都没有意义, ...

机器学习中的 precision、recall、accuracy、F1 Score

1. 四个概念定义:TP.FP.TN.FN 先看四个概念定义: - TP,True Positive - FP,False Positive - TN,True Negative - FN,False ...

利用sklearn对MNIST手写数据集开始一个简单的二分类判别器项目(在这个过程中学习关于模型性能的评价指标,如accuracy,precision,recall,混淆矩阵)

.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

分类问题的几个评价指标(Precision、Recall、F1-Score、Micro-F1、Macro-F1

轉自 https://blog.csdn.net/sinat_28576553/article/details/80258619 四个基本概念TP.True Positive   真阳性:预测为正,实 ...

ROC,AUC,Precision,Recall,F1的介绍与计算(转)

1. 基本概念 1.1 ROC与AUC ROC曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,ROC曲线称为受试者工作特征曲线 (receiver operatin ...

ROC,AUC,Precision,Recall,F1的介绍与计算

1. 基本概念 1.1 ROC与AUC ROC曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,ROC曲线称为受试者工作特征曲线 (receiver operatin ...

机器学习常用性能度量中的Accuracy、Precision、Recall、ROC、F score等都是些什么东西?

一篇文章就搞懂啦,这个必须收藏! 我们以图片分类来举例,当然换成文本.语音等也是一样的. Positive 正样本.比如你要识别一组图片是不是猫,那么你预测某张图片是猫,这张图片就被预测成了正样本. ...

分类问题(三)混淆矩阵,Precision与Recall

混淆矩阵 衡量一个分类器性能的更好的办法是混淆矩阵.它基于的思想是:计算类别A被分类为类别B的次数.例如在查看分类器将图片5分类成图片3时,我们会看混淆矩阵的第5行以及第3列. 为了计算一个混淆矩阵, ...

随机推荐

小小收获for python

包导入问题: 包之外导入:还是按照sys.path的搜索路径进行模块的导入 包内的导入:python3.0+     完全区分绝对导入和相对导入 from . import string     #在 ...

高通Android平台硬件调试之Camera篇

之前一段时间有幸在高通android平台上调试2款camera sensor,一款是OV的5M YUV sensor,支持jpeg out,同时也支持AF,调试比较比较简单,因为别的项目已经在使用了, ...

drupal 2016-11-3

我随意定义了一个hook menu发现里面的内容很快就加入到了navigation menu里面.

【图像算法】图像特征:GLCM灰度共生矩阵,纹理特征

[图像算法]图像特征:GLCM SkySeraph Aug 27th 2011  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modifie ...

linux下MySQL 5.6源码安装

linux下MySQL 5.6源码安装 1.下载:当前mysql版本到了5.6.20 http://dev.mysql.com/downloads/mysql 选择Source Code 2.必要软件 ...

最近纠结致死的一个java报错java.net.SocketException: Connection reset 终于得到解决

自从SEOTcs系统11月份24日更新了一下SEO得分算法以来,一直困扰我的一个问题出现了,java的数据job任务,在执行过程中会经常报以下的错误: “2011-12-03 18:00:32 Def ...

如何使用MOQ进行单元测试

使用MOQ来伪装和隔离被依赖对象,从而提高被测对象的测试效果. 安装 通过http://code.google.com/p/moq可以下载MOQ的最新版本.在SSL项目中,我们使用的是MOQ 3.1. ...

Aps.net中基于bootstrapt图片上传插件的应用

Aps.net中基于bootstrapt图片上传插件的应用 在最近的项目中需要使用一个图片上传的功能,而且是多张图片同时上传到服务器的文件夹中,将图片路径存放在数据库中.为了外观好看使用了bootst ...

SpringMvc返回报文形式的控制-验证方法: JSON or HTML or XML

首先,请求通过accept请求头声明了支持的返回格式 然后,框架根据该请求头和代码实现(注解)选择了对应的MessageConverter处理返回! 一.验证过程 1.返回html 1.1.请求组装 ...

【原创】分布式之elk日志架构的演进

引言 好久没写分布式系列的文章了,最近刚好有个朋友给我留言,想看这方面的知识.其实这方面的知识,网上各种技术峰会的资料一抓一大把.博主也是凑合着写写.感觉自己也写不出什么新意,大家也凑合看看. 日志系 ...

多分类f1分数_分类模型的F1-score、Precision和Recall 计算过程相关推荐

  1. 多分类f1分数_机器学习之分类模型评估总结

    一.概述 在机器学习模型搭建好之后,需要对模型进行评估,针对不同的算法模型有不同的评估方法,比如:分类算法.回归算法.聚类算法等,本文主要是针对分类算法的模型评估方法进行总结整理,便于自己对评估方法的 ...

  2. 多分类f1分数_如何计算多标签分类中的F1测度?

    我正在研究句子类别检测问题.其中每个句子可以属于多个类别,例如:"It has great sushi and even better service." True Label: ...

  3. 逻辑回归是分类还是回归_分类和回归:它们是否相同?

    逻辑回归是分类还是回归 You might have come across the terms Regression and Classification, and might as well th ...

  4. 详解多分类模型的Macro-F1/Precision/Recall计算过程

    引入 关于准确率(accuracy).精度(precision).查全率(recall).F1的计算过程,之前写过一篇文章[1]. 根据文章[1]中的公式,我们可以知道,精度(precision).查 ...

  5. 多分类f1分数_多分类的评价指标PRF(Macro-F1/MicroF1/weighted)详解

    也许是由于上学的时候一直搞序列标注任务,多分类任务又可以简化为简单的二分类任务,所以一直认为PRF值很简单,没啥好看的.然鹅,细看下来竟有点晦涩难懂,马篇博留个念咯~ 前言 PRF值分别表示准确率(P ...

  6. 多分类f1分数_所以多分类情况下sklearn的f1值到底是怎么计算的

    已经很久没有更新新的文章啦,最近在弄GCN,很多东西的理解都还没有很透彻,所以也不太好发,不过就在今天"南归"的时候刷知乎,刷到了这么一个朋友( @苏小胖与喵 )的疑问: 这... ...

  7. 决策树分类python代码_分类算法-决策树 Decision Tree

    决策树(Decision Tree)是一个非参数的监督式学习方法,决策树又称为判定树,是运用于分类的一种树结构,其中的每个内部节点代表对某一属性的一次测试,每条边代表一个测试结果,叶节点代表某个类或类 ...

  8. sql 分类汇总 列_分类汇总哪家强?R、Python、SAS、SQL?

    Excel数据透视表(Pivot Table)可以快速汇总大量数据,能够分类汇总和聚合数值数据,按类别和子类别汇总数据,功能十分强大,并且提供了展开.折叠.行列交换等交互式方法,对使用者来说十分的友好 ...

  9. 机器学习分类模型评价指标之Accuracy、Precision、Recall、F-Score、P-R Curve、AUC、AP 和 mAP

    前文:https://www.cnblogs.com/odesey/p/16902836.html 介绍了混淆矩阵.本文旨在说明其他机器学习模型的评价指标. 1. 准确率(Accuracy-Acc) ...

最新文章

  1. 本来想用“{{”秀一波,结果却导致了内存溢出!
  2. 打开IT运维外包的“黑盒”
  3. Swift 十进制二进制转换 (How to convert a decimal number to binary in Swift)
  4. Explain:解决MUI 软键盘弹起挤压页面问题
  5. 111. 二叉树的最小深度 golang
  6. 对于公司,也是我对软件行业,软件项目的五想法
  7. 7-8 最长连续递增子序列 (15 分)
  8. AspxTreeList获取选中项的值
  9. 用python实现分段函数_在Python中绘制分段函数
  10. Docker:设置容器自动启动
  11. Linux静态库与动态库详解
  12. imnoise3.m
  13. Win7激活工具的原理是什么?
  14. html5适合安卓的字体,在安卓中切换h5页面中的字体
  15. 判断四张扑克牌能否凑成24点游戏算法
  16. win10安装visio2010出错_四种解决安装Office 2010时出现错误1907的提示方法介绍
  17. Windows10实用技巧-固定快捷方式到磁贴菜单方式
  18. 纯css写滚动的弹幕特效
  19. 【HTML总复习】一文带你查漏补缺,暖你一整天
  20. 中国建造了世界上最大的超级计算机,中国超级计算机创造出世界最大虚拟宇宙...

热门文章

  1. AI会P图:你来描述,我来P
  2. Dashboard的安装及其配置
  3. 计算机网络时有时无,电脑WiFi时有时无不稳定的解决方法 | 我爱分享网
  4. 跟我一步一步使用VMware安装ubuntu20.04及优化
  5. Hudson 持续集成服务器的安装配置与使用
  6. 手工删除Windows桌面搜索的方法
  7. Flutter - flutter_bloc状态管理
  8. TORCH.TRIU
  9. c++ 提取傅里叶描述子_SQL 子查询的优化
  10. ORACLE子查询的多种用法