出错描述

  使用sklearn.metrics.precision_score计算精确率时,出现报错:UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in samples with no predicted labels.

问题原理分析

  精确率计算的是所有样本的平均精确率。而对于每个样本来说,精确率就是预测正确的标签数在整个预测为正确的标签数中的占比。其计算公式为:

  例如对于某个样本来说,其真实标签为[0, 1, 0, 1],预测标签为[0, 0, 0, 0]。那么该样本对应的精确率就应该为:(0 + 1 + 0 + 0) / (0 + 0 + 0 + 0),这时就会报错

情况一

  假设有数据:样本数batch_size = 5,标签数label_num = 4y_true为真实标签,y_pred为预测标签值。

y_true = np.array([[0, 1, 0, 1],[0, 1, 1, 0],[0, 0, 1, 0],[1, 1, 1, 0],[1, 0, 1, 1]])y_pred = np.array([[0, 1, 1, 0],[0, 1, 1, 0],[0, 0, 1, 0],[0, 1, 1, 0],[0, 1, 0, 1]])

  对照上面给的数据y_truey_pred。那么该样本对应的准确率就应该为:
15∗(12+22+11+22+12)=0.8\frac{1}{5} * (\frac{1}{2} + \frac{2}{2} + \frac{1}{1} + \frac{2}{2} + \frac{1}{2})= 0.851​∗(21​+22​+11​+22​+21​)=0.8

情况二

  假设数把y_pred的某一行改为全0,数据如下。

y_true = np.array([[0, 1, 0, 1],[0, 1, 1, 0],[0, 0, 1, 0],[1, 1, 1, 0],[1, 0, 1, 1]])y_pred = np.array([[0, 1, 1, 0],[0, 1, 1, 0],[0, 0, 1, 0],[0, 1, 1, 0],[0, 0, 0, 0]])

  对照上面给的数据y_truey_pred。那么该样本对应的准确率就应该为:
15∗(12+22+11+22+0)=0.7\frac{1}{5} * (\frac{1}{2} + \frac{2}{2} + \frac{1}{1} + \frac{2}{2} + 0)= 0.751​∗(21​+22​+11​+22​+0)=0.7

情况三

  假设数把y_pred改为全0,数据如下。

y_true = np.array([[0, 1, 0, 1],[0, 1, 1, 0],[0, 0, 1, 0],[1, 1, 1, 0],[1, 0, 1, 1]])y_pred = np.array([[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0],[0, 0, 0, 0]])

  对照上面给的数据y_truey_pred。那么该样本对应的准确率就应该为:
15∗(0+0+0+0+0)=0.0\frac{1}{5} * (0 + 0 + 0 + 0 + 0 )= 0.051​∗(0+0+0+0+0)=0.0

【注】所以如果有除数为0,sklearn中会默认把数值置为0来计算。

解决办法

  直接忽略警告即可。

import warnings
warnings.filterwarnings("ignore")

【注】一般一个batch_size都会在32-128,所以有个别样本的精确率为0,最后取平均也还能接收,直接忽略警告就行。

【sklearn报错解决方案】UndefinedMetricWarning: Precision is ill-defined and being set to 0.0相关推荐

  1. 报错分析:Precision and F-score are ill-defined for being 0.0 in labels with no predicted samples

    NLP情感分析任务报错如下 UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in ...

  2. 安装 sklearn 报错 ImportError: cannot import name Type

    1. 安装 sklearn sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple sklearn 会默认安装 joblib , s ...

  3. TFS 报错解决方案:tf400324

    TFS 报错解决方案:tf400324 参考文章: (1)TFS 报错解决方案:tf400324 (2)https://www.cnblogs.com/xiaz/p/7443805.html 备忘一下 ...

  4. vue-cli打包构建时常见的报错解决方案

    vue-cli打包构建时常见的报错解决方案 参考文章: (1)vue-cli打包构建时常见的报错解决方案 (2)https://www.cnblogs.com/bester-ace/articles/ ...

  5. kali linux 安装 Mysql Can‘t read from messagefile 报错解决方案

    kali linux 安装 Mysql Can't read from messagefile 报错解决方案 参考文章: (1)kali linux 安装 Mysql Can't read from ...

  6. CentOS 6安装Oracle报错解决方案

    CentOS 6安装Oracle报错解决方案 参考文章: (1)CentOS 6安装Oracle报错解决方案 (2)https://www.cnblogs.com/lonecloud/p/689568 ...

  7. IDEA配置maven报错解决方案

    IDEA配置maven报错解决方案 参考文章: (1)IDEA配置maven报错解决方案 (2)https://www.cnblogs.com/7758521gorden/p/8778496.html ...

  8. yum安装出现Error: Package: glibc-headers-2.17-157.el7.x86_64 (centos7.3)类似报错解决方案

    yum安装出现Error: Package: glibc-headers-2.17-157.el7.x86_64 (centos7.3)类似报错解决方案 参考文章: (1)yum安装出现Error: ...

  9. 项目pom.xml第一行报错解决方案

    项目pom.xml第一行报错解决方案 参考文章: (1)项目pom.xml第一行报错解决方案 (2)https://www.cnblogs.com/wantfly/p/9307476.html 备忘一 ...

最新文章

  1. sdut 2136 数据结构实验之二叉树的建立与遍历
  2. BootStrapStudio文档阅读笔记-Getting Started Guide解析
  3. 解决Windows下运行出现ModuleNotFoundError: No module named xxx问题
  4. 智课雅思短语---二、exert positive/ negative effects on…
  5. git detached head
  6. 编写一个程序,从10亿个数字的数组中找出100个最大的数字
  7. 携程第二场预赛 1003:位图像素的颜色(水题,判断点是否在矩形内)
  8. Vue如何通过代理解决跨域问题
  9. 理解 this.initialize.apply ( this, arguments )
  10. iOS内购-防越狱破解刷单
  11. Windows10 笔记本从睡眠状态唤醒时取消输入密码的方法
  12. 前端上传图片并修改名字(数据库的图片名字,并非原图片名字)
  13. 如何禁止计算机自动安装驱动,win10系统禁止自动安装驱动的详细技巧
  14. 编写各种outofmemory/stackoverflow程序
  15. Final Cut Pro如何安装自定义lut?final cut pro的lut安装在哪个文件夹?
  16. Ubuntu 22.04 LTS root登录、修改当前用户名和主机名
  17. 什么是云服务器ECS?云服务器ECS详解
  18. 布林通道 Bollinger Bands——非炒股向个人学习笔记
  19. 基于国产 ARM + FPGA+Codesys运动控制平台的智能人机交互系统设计
  20. 面向对象编程---上

热门文章

  1. 这款颜值爆表的数据可视化神器,我可以用到2030年
  2. HTC VIVE Tracker的二次开发(实际操作篇)附软件
  3. 【a101】高精度实数加法
  4. Linux命令行补全工具github,命令行提示工具 navi
  5. 用python3实现简单的语音识别转化成文字
  6. 公安摧毁6款淫秽漫画APP,查冻涉案资金5100余万元
  7. 温度传感器php,温度传感器基础知识介绍
  8. 创建oracle视图的权限不足,Oracle创建视图view权限不足问题剖析
  9. e1载波的数据速率是_电力公司常用抄表方案 电力载波抄表系统
  10. z370 raid linux,华硕Z370A主板RAID怎么设置?用的是两个...-卓优商学院问答