首页 > 其他分享 >sklearn之average_precision_score计算返回NaN

sklearn之average_precision_score计算返回NaN

时间:2024-04-09 18:29:43浏览次数:30  
标签:0.1 average NaN precision score np sklearn

问题描述

使用sklearn计算AP时,当label全是负标签时会返回NaN,例如:

>>> import numpy as np
>>> from sklearn.metrics import average_precision_score
>>> average_precision_score(np.array([0, 0, 0, 0, 0]), np.array([0.1, 0.1, 0.1, 0.1, 0.1]))

xxx/lib/python3.7/site-packages/sklearn/metrics/_ranking.py:864: RuntimeWarning: invalid value encountered in true_divide
  recall = tps / tps[-1]
nan

问题解决

参考average_precision_score does not return correct AP when all negative ground truth labels,这个Bug在scikit-learn==1.1.0之后的版本被修复,因此升级sklearn的版本即可。
具体方法:在Python (>= 3.8)下执行命令,安装新的版本

pip install scikit-learn==1.1.0

效果如下:

>>> import numpy as np
>>> from sklearn.metrics import average_precision_score
>>> average_precision_score(np.array([0, 0, 0, 0, 0]), np.array([0.1, 0.1, 0.1, 0.1, 0.1]))

xxx/lib/python3.8/site-packages/sklearn/metrics/_ranking.py:874: UserWarning: No positive class found in y_true, recall is set to one for all thresholds.
  warnings.warn(
-0.0

参考

1、average_precision_score does not return correct AP when all negative ground truth labels
2、FIX Fix recall in multilabel classification when true labels are all negative
3、scikit-learn 1.1.0

标签:0.1,average,NaN,precision,score,np,sklearn
From: https://blog.csdn.net/qq_43558894/article/details/137558478

相关文章

  • @行业应用:德国ARIS Nano S-DC 10-03电动执行器
    @行业应用:德国ARISNanoS-DC10-03电动执行器@行业应用:德国ARISNanoS-DC10-03电动执行器@行业应用:德国ARISNanoS-DC10-03电动执行器LinearisN+机电阻尼器执行器LinearisN+将zuixianjin的和用户友好的线性技术与当代设计中的经典驱动技术相结合。带有dryspin......
  • 状压dp——Disease Manangement 疾病管理
    题目描述Alas!AsetofD(1<=D<=15)diseases(numbered1..D)isrunningthroughthefarm.FarmerJohnwouldliketomilkasmanyofhisN(1<=N<=1,000)cowsaspossible.IfthemilkedcowscarrymorethanK(1<=K<=D)differentd......
  • MPAndroidChart setLabelRotationAngle bug
    MPAndroidChartsetLabelRotationAnglebug(应该包括其他关于修改x/ylabel的bug)库是好库,但就是不更新了。。bug描述:修改labelRotationAngle(setLabelRotationAngle()),手势缩放一下视图,才触发自动调整视图,会导致图表大小发生变化。用起来就是,第一次显示,label被截断,必须手动缩放一......
  • 【MATLAB 仿真】Model Predictive Control (1)、简单建模 【新加坡南洋理工大学 Nanyang
    一、1个简单的连续时间模型ASimpleContinuous-timeModel:1个简单的连续时间系统,使用状态空间模型进行表示:和标准型进行对比,得到模型参数二、MATLAB仿真代码MatlabSimulationCode:Ac=[010;301;010];Bc=[1;1;3];Cc=[010];Dc=zeros(1,1);......
  • nand2tetris_hack汇编语言
    计算机我接触的第一台电脑是winXP系统,我拥有的第一台电脑是win7,也就说一开始我理解的计算机就有着好看的界面,灵活的操作性方式,拥有许多软件,可以做很多事情。我们可曾想过,大部分机器都有其专属用途,比如榨汁机只能用来榨汁、削皮刀只能用来削皮,而计算机,他可以播放视频、浏览网页等......
  • Notes-02年Fan-2002-Analysis of guided resonances in photonic crystal slabs-BIC的
    Notes-02年Fan-2002-Analysisofguidedresonancesinphotoniccrystalslabs目录Notes-02年Fan-2002-Analysisofguidedresonancesinphotoniccrystalslabs共振的含义就是:在光锥内,发光、辐射。引言guidedmodeguidedmoderesonance--Similartotheguidedmode,a......
  • 74LV00A四路2输入NAND门
    这份文件是Nexperia74LV00A四路2输入NAND门的产品数据手册。以下是文件的核心内容概要:概述:74LV00A是一款由Nexperia生产的四路2输入NAND门集成电路。以下是对该产品的详细概述:1.**基本功能**:-74LV00A提供了四个独立的2输入NAND逻辑门,这些门可以实现基本的逻辑......
  • The 2023 ICPC Asia Jinan Regional Contest (The 2nd Universal Cup. Stage 17: Jina
    The2023ICPCAsiaJinanRegionalContest(The2ndUniversalCup.Stage17:Jinan)D.LargestDigit题意:给定两个范围la,ra,lb,rb,求在两个范围内选任意两个数相加,求最大的数位思路:暴力枚举即可,遇到9跳出循环voidsolve(){llla,ra,lb,rb;cin>>la>>r......
  • 22HuNan服务器
    检材链接链接:https://pan.baidu.com/s/1WD4M4u4gYOrwejX-oWz6rQ提取码:huri--来自百度网盘超级会员V4的分享案情介绍基本案情:某地警方接到报案称某网站疑似传销平台,经调查,获取到网站服务器镜像,请分析镜像,回答以下问题。题目解析前期工作(相信大佬都轻轻松松,这里不再过多介绍)......
  • nand2tetris_ALU
    这一节,我们将尝试构建CPU中的ALU单元。明明上一节才开始学习基本逻辑门,这一节就实现ALU,当时的我是吃惊的,但确实仅用逻辑门就可以完成。在开始逐步实现之前,先补充一些前置知识前置知识HDL上一节构建选择器时,得到了一个较长的函数式,那么如何验证函数表达式呢。课程老师提供了用......