记录F1分数和召回率

内容

参考博文:

  1. F1分数以及micro、macro区别
    对于上面说的矩阵是不是挺懵的,它的真名叫混下矩阵,看下面

  2. 混淆矩阵
    所有正确的预测结果都在对角线上,所以从混淆矩阵中可以很方便直观的看出哪里有错误,因为他们呈现在对角线外面。
    它允许我们做出更多的分析,而不仅仅是局限在正确率。准确率对于分类器的性能分析来说,并不是一个很好地衡量指标,因为如果数据集不平衡(每一类的数据样本数量相差太大),很可能会出现误导性的结果。例如,如果在一个数据集中有95只猫,但是只有5条狗,那么某些分类器很可能偏向于将所有的样本预测成猫。整体准确率为95%,但是实际上该分类器对猫的识别率是100%,而对狗的识别率是0%。

  3. 怎么求F1分数呢? 代码实现?
    在Sklearn库中有现成的代码:
    输入: 必须是1-array的预测和GT
    输出: 得到相应的结果
    sklearn.metrics.f1_score 使用方法
    sklearn.metrics.f1_score中micro、macro、samples理解

  4. 适用什么场景?
    在这里插入图片描述
    也就是后者会注重所有分类效果都得好! 平均效果!
    而micro则是会带有权重的思想

代码

我的实现:

def evaluation_metric(pred, label):'''pred: Prediction results with whatever sizelabel: Label with whatever sizereturn: [Evaluation Metric]'''# average=None, get the P, R, and F1 value of a single classpred = numpy.asarray(pred)label = numpy.asarray(label)Precision = precision_score(y_true=label, y_pred=pred, average="macro")Recall = recall_score(y_true=label, y_pred=pred, average="macro")F1_score = f1_score(y_true=label, y_pred=pred, average="macro")F1_score_micro = f1_score(y_true=label, y_pred=pred, average="micro")return Precision, F1_score, Recall, F1_score_micro

其中average参数有下面的几个选项

y_true:1d数组,或标签指示符数组/稀疏矩阵基本事实(正确)目标值。y_pred:1d数组,或标签指示符数组/稀疏矩阵分类器返回的估计目标。labels:list,optional包括when的标签集,以及if的顺序。可以排除数据中存在的标签,例如,以忽略多数否定类别的方式计算多类平均值,而数据中不存在的标签将导致宏平均值中的0成分。对于多标签目标,标签是列索引。默认情况下,和 中的所有标签均按排序顺序使用。average != 'binary'average is Noney_truey_predpos_label:strint,默认值为1要报告是否average='binary'以及数据是否为二进制的类。如果数据是多类或多标签的,则将被忽略;设置,labels=[pos_label]并且只会报告该标签的得分。average != 'binary'average:string, [None, ‘binary’ (default), ‘micro’, ‘macro’, ‘samples’, ‘weighted’]对于多类/多标签目标,此参数是必需的。如果为None,则返回每个班级的分数。否则,这将确定对数据执行的平均类型:'binary':仅报告由指定的类的结果pos_label。仅在目标(y_{true,pred})为二进制时适用。'micro':通过计算正确,错误和否定的总数来全局计算指标。'macro':计算每个标签的指标,并找到其未加权平均值。这没有考虑数据数量的不平衡。而是平等地对待每一类'weighted':计算每个标签的指标,并找到其平均权重(受支持)(每个标签的真实实例数)。这改变了“宏观”以解决标签的不平衡。这可能导致F得分不在精确度和召回率之间。'samples':计算每个实例的指标,并找到其平均值(仅对不同于的多标签分类有意义 accuracy_score)。sample_weight:array-like of shape (n_samples,), default=None样品重量。zero_division:“warn”, 0 or 1, default=”warn”设置除法为零(即所有预测和标签均为负)时返回的值。如果设置为“ warn”,则该值为0,但也会发出警告。

返回值:

f1_score:float or array of float, shape = [n_unique_labels]二进制分类中的阳性类别的F1分数,或者对于多类别任务,每个类别的F1分数的加权平均值。

例子:

 Examples-------->>> from sklearn.metrics import precision_score>>> y_true = [0, 1, 2, 0, 1, 2]>>> y_pred = [0, 2, 1, 0, 0, 1]>>> precision_score(y_true, y_pred, average='macro')0.22...>>> precision_score(y_true, y_pred, average='micro')0.33...>>> precision_score(y_true, y_pred, average='weighted')0.22...>>> precision_score(y_true, y_pred, average=None)array([0.66..., 0.        , 0.        ])>>> y_pred = [0, 0, 0, 0, 0, 0]>>> precision_score(y_true, y_pred, average=None)array([0.33..., 0.        , 0.        ])>>> precision_score(y_true, y_pred, average=None, zero_division=1)array([0.33..., 1.        , 1.        ])"""

其中micro是求的全部的准确率! 没有考虑数据的平衡性!

average = “micro” = average=NULL

precision_score
recall_score
f1_score

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

讯达机器人_科大讯飞新品频发完善场景布局“双11”斩获三大平台25项冠军

11月12日,科大讯飞发布”双11”战报,C端产品兑现AI红利实现可持续增长,一举斩获京东、天猫、苏宁易购三大平台25项冠军。11月1日至11月11日,销售额同比增长56% 。目前,科大讯飞消费者业务连续三年保持营收超过30%的增速…

常见报错原因

因为经常犯这个错,但是还不记住! 以此来告诫自己! 1. KeyError 表示当前Key就没有!!! 去检查一下,你出错的字典或者是列表(一般出这个错误肯定有个对照! )…

安装ssd后不识别网卡_100元体验纯正万兆网络:需要安装SSD的NAS服务器

万兆网络似乎离普通玩家一直很遥远,不过借着万能的闲鱼,小编100块搞到一张非常便宜的二手电口万兆网卡,配合安装固态硬盘的NAS网络存储服务器,万兆网络走起来~这张卡用的是BCM57710芯片,网上都说只能在Win 7或者同时期…

【KPGNN】运行错误与成功后的合集

出错合集 1. AssertionError 这句话的意思是: DGLGraph.readonly已经不可用了,而现在高版本的DGLGraph总是支持mutable! 记住是总是,一直!!! 所以现在由于版本问题,使用了高版本&a…

react获取id_解决React应用界面开发常见痛点(一)业务逻辑与UI分离

前言:本系列是针对于React在界面开发痛点的一些解决方案,只是React应用中偏向展示的一环构建一个业务与UI分离的react应用本篇是基于HOC方案并未使用Hooks业务逻辑与UI在编写一个react组件前,我们一定要弄清两件事。什么是UI?什么…

(二十六)【2021 WWW】Knowledge-Preserving Incremental Social Event Detection via Heterogeneous GNNs

题目: Knowledge-Preserving Incremental Social Event Detection via Heterogeneous GNNs 中文题目: 基于异构gnn的知识保持增量社会事件检测 学习目标 学习怎么知识增强的? 学习怎么处理时间等多个因素的? 学习怎么构建子图…

IL应用之——用IL分析接口的本质

IL反编译利器——Ildasm.exe和Reflector.exe:一:Ildasm.exe简介 这一微软VS自带工具,在上一篇博文《初识Ildasm.exe——IL反编译的实用工具》中已经做了详细介绍,这里不再鳌述;二:Reflector.exe简介 至此(1…

自定义_如何自定义协议

前言何为自定义协议,其实是相对标准协议来说的,这里主要针对的是应用层协议;常见的标准的应用层协议如http、ftp、smtp等,如果我们在网络通信的过程中不去使用这些标准协议,那就需要自定义协议,比如我们常用…

校验json格式_格式化展示,校验错误,编辑JSON,这几个JSON工具一定不能错过

今天给大家介绍几个常用JSON的工具,基本上能满足你工作中对JSON的所有需求google插件 JSONView安装好插件后,格式化接口返回的JSON,还能展开节点和关闭节点,超级方便格式化本地JSON,检验错误JSON Viewer网页版将杂乱的…

推荐系统常用评价指标和代码实现

评价指标 Recall 名称: 召回率(真阳性率) 意义:在推荐系统中,我们只关心正确推荐的有多少,也就是用户真实喜欢的,并不会关心推荐错的,所以我们用召回率,而不是准确率&a…

python timeit用法_十大Python开发技巧

Python开发指南, 超级实用足以让您震撼> Photo by Christina Morillo from StockSnap时不时地,当我了解Python的新功能时,或者我发现其他一些人不知道该功能时,我会记下它。在过去的几周中,我最近了解或实现了一些有趣的功能-S…

python编程中的经验(一直更新)

文章目录1. python基础语法1.1 怎么让两个list或者其它可以迭代的放到一起1.2 random.choice(x, n, replaceTrue) numpy中从某个数据集中选择1.3 如何根据key返回字典的value1.4 The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all…

Cairngorm初学者入门教程 第六节--Cairngorm中Command利用Delegate与Service连接

在上一节,我们利用FrontController 去映射 Event与Command 在这一节我们主要针对Command这部分动作做介紹。在RIA应用程序中,不可或缺的部份就是跟后台服务器连接进行数据传递。Command通过Delegate去做Services的部份(包含Remoting,WebServices,…等) C…

3d点击_3D打印服务加工在医疗器械行业的应用

3D打印技术如今已经很常见的出现在了我们日常的制造生产中。普通的3D打印机从最开始的几万块到如今的几千块,设备价格的降低也使得3D打印技术普及率的增加,而技术的普及也推动着技术的发展。3D打印开始应用到许多行业当中,下面悟空打印坊3D打…

所有算法库的使用(sklearn,scipy)

文章目录1. sklearn1.1 sklearn.preprocessing 之 fit 和 transform 以及 fit_transform1.2 算法之 fit 和 predict和predict_proba1.3 predict_proba1.4 各种评测指标1.4.1 R2R^2R21.4.2 准确度、精准率、召回率1.4.3 平均绝对误差(MAE)和均方误差(MSE)1.5 特征缩放 StandardS…

android aar保存图片文件异常_我去!合并AAR时踩坑了!

点击上方“刘望舒”,马上关注,早上8:42推送真爱,请置顶或星标作者: leeon7https://www.jianshu.com/p/8f7e32015836背景在输出Android模块时,有时会因为个别原因(比如来自业务的不可抗力),要求将模块打包成一个文件提供…

与kylin_Kylin 迁移到 HBase 实践在小米的实践

背景小米Kylin生产环境部署的是基于社区2.5.2修改的内部版本,所依赖HBase集群是一个公共集群,小米内部很多离线计算服务共享使用该HBase集群。由于Kylin已经产生超过6000张HBase表,给HBase的metadata管理造成了不小的压力,HBase m…

LeetCode 1227. 飞机座位分配概率(DP+数学归纳法)

1. 题目 有 n 位乘客即将登机,飞机正好有 n 个座位。第一位乘客的票丢了,他随便选了一个座位坐下。 剩下的乘客将会: 如果他们自己的座位还空着,就坐到自己的座位上, 当他们自己的座位被占用时,随机选择…

LeetCode 1025. 除数博弈(动态规划)

1. 题目 爱丽丝和鲍勃一起玩游戏&#xff0c;他们轮流行动。爱丽丝先手开局。 最初&#xff0c;黑板上有一个数字 N 。在每个玩家的回合&#xff0c;玩家需要执行以下操作&#xff1a; 选出任一 x&#xff0c;满足 0 < x < N 且 N % x 0 。用 N - x 替换黑板上的数字…

BN / LN / IN / GN /

链接 但是代码不敢苟同! 所以自己写了两种代码! 由于这只是测试, 并不是用来训练, 所以α和β参数就没有加! def BN(inputs):c inputs.shape[1]for i in range(c):channel inputs[:,i,:,:]mu np.mean(channel)var np.var(channel)channel_new ((channel - mu)/(np.sqrt(…