如何计算多标签分类的 F1-Score?

2024-02-24

我尝试计算f1_score但当我使用 sklearn 时,我在某些情况下收到一些警告f1_score method.

我有一个多标签 5 类预测问题。

import numpy as np
from sklearn.metrics import f1_score

y_true = np.zeros((1,5))
y_true[0,0] = 1 # => label = [[1, 0, 0, 0, 0]]

y_pred = np.zeros((1,5))
y_pred[:] = 1 # => prediction = [[1, 1, 1, 1, 1]]

result_1 = f1_score(y_true=y_true, y_pred=y_pred, labels=None, average="weighted")

print(result_1) # prints 1.0

result_2 = f1_score(y_true=y_ture, y_pred=y_pred, labels=None, average="weighted")

print(result_2) # prints: (1.0, 1.0, 1.0, None) for precision/recall/fbeta_score/support

当我使用average="samples"代替"weighted"我得到(0.1,1.0,0.1818...,无)。是个"weighted"选项对于多标签问题没有用或者如何使用f1_score方法正确吗?

我在使用时也收到警告average="weighted":

“UndefinedMetricWarning:召回率和 F 分数定义不明确,在没有真实样本的标签中设置为 0.0。”


如果您稍微添加数据,它就会起作用:

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

recall_score(y_true=y_true, y_pred=y_pred, average='weighted')
>>> 1.0
precision_score(y_true=y_true, y_pred=y_pred, average='weighted')
>>> 0.9285714285714286

f1_score(y_true=y_true, y_pred=y_pred, average='weighted')
>>> 0.95238095238095244

数据表明我们没有错过任何真阳性,也没有预测到任何假阴性(recall_score等于 1)。然而,我们在第二次观察中预测了一个误报,导致precision_score等于~0.93。

As both precision_score and recall_score不为零weighted范围,f1_score,因此,存在。由于示例中缺乏信息,我认为您的案例无效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算多标签分类的 F1-Score? 的相关文章

随机推荐

  • 无法让 git 与 iconv 和 utf-16 很好地配合

    我试图让 git 将 UTF 16 识别为文本 以允许我本地比较和修补文本 但我无法获取textconv参数来工作 我可以手动调用 iconv f utf 16 t utf 8 some utf 16 file rc 一切都很好 但是如果我
  • 如何获取 CodenameOne TextField 中每次更改的事件

    我正在使用 CodenameOne 构建一个应用程序 并希望使用 TextField 来过滤一长串项目 我尝试使用 DataChangedListener 如建议的那样https www codenameone com javadoc co
  • 如何获取 QTreeWidget 的项目数

    我创建了一个 QTreeWidget 我正在尝试列出所有显示的项目 如果该项目有子项但未扩展 我不想进入该项目 它确实获取了我在树中可以看到的项目数量 我努力了 for int i 0 i lt MyTreeWidget gt topLev
  • iOS客户端服务器方法

    我熟悉其他平台上用于点对点或客户端 服务器消息传递的 SOAP 和 Web 服务 苹果的消息传递功能是什么 我正在尝试组装一个应用程序服务器来管理协作工作环境 LAN 上平均有 200 个 最多 1000 个移动客户端 例如 一台 Mac
  • Android 从自己的服务器自动更新

    我一直在寻找一个很好的例子 如何更新我自己开发的应用程序 因此 我的设备上安装了一个 apk 当我启动它时 我想检查我的服务器上是否存在任何更新 如果是 则从网络服务器下载并安装 首先我必须检查我的服务器是否有任何更新 如果是 则下载并安装
  • 在Android(使用Java)中,如何设置铃声音量(指定的数字)?

    因此 在我的应用程序中 我有一个搜索栏 允许用户设置铃声音量 0 100 我似乎找不到将铃声音量设置为指定数字的方法 我浏览了音频管理器 http d android com reference android media AudioMan
  • 如何使用 MapKit 绘制两个位置之间的路线并绘制要点?

    我正在使用 MapKit api 获取地图上的当前位置 并绘制由落针指向的两个位置之间的路线 我还想获取其路线之间的所有主要看台 我正在使用下面的函数来获取两个位置之间的路线 NSArray getRoutePointFrom MyLoca
  • 如何使用 Rust SDK 在 Aptos 上执行 Move 脚本?

    我想执行这个 Move 脚本 例如在sources top up move script use std signer use aptos framework aptos account use aptos framework aptos
  • 用C语言创建进程树

    我将如何创建一个看起来像深度为 N 的平衡三元树的流程层次结构 意味着每个进程有 3 个子进程 因此深度 N 的树中将有 3 N 1 2 个进程 要创建新进程 我只想使用 fork 这是我到目前为止所拥有的 但我认为它不起作用 因为我不处理
  • 如果缓冲区大小超过 256,第二个 MPI_Send 将挂起

    int n j i i2 i3 rank size rowChunk cells cellChunk MPI Status status MPI Init argc argv MPI Comm rank MPI COMM WORLD ran
  • SetForegroundWindow:ForegroundLockTimeout 注册表值和 SPI_GETFOREGROUNDLOCKTIMEOUT WinAPI 参数之间的关系

    Context 这个问题是关于如何通过配置控制是否允许编程跨进程窗口激活 使窗口成为具有输入焦点的前台窗口 通过SetForegroundWindow https learn microsoft com en us windows win3
  • 如何获取本地计算机上所有 MS SQL Server 实例的列表?

    这似乎是一个相当常见的问题 但我见过的答案都不是特别令人满意 我想要获取本地计算机上安装的 MS SQL Server 实例的名称列表 无论它们是否已启动 出于本次讨论的目的 我可以只查找 SQL 2005 及更新版本的实例 我可以使用 传
  • 自动完成 (jQuery UI) 和本地存储

    我在使用这两个工具时遇到了一个奇怪的错误 我正在对 API 进行 AJAX 查询 然后检索存储在 localStorage 中并显示在自动完成面板中的 JSON 数据 问题是 根据自动完成源的来源 面板会有不同的反应 这是 AJAX 成功时
  • Google 跟踪代码管理器:跟踪“选择”下拉菜单“选项”标签值

    我无法跟踪 选择 标签中 选项 标签的值 我目前有一个 Google Translator Widget 的下拉菜单 用户可以单击它并选择语言 当您单击 选择语言 下拉菜单时 您将能够看到德语选项 请参阅随附的屏幕截图 我在 Google
  • 显示个人用户评级(letrate gem)

    我目前正在使用 Letsrate gem https github com muratguzel https github com muratguzel 在我的应用程序中 评级显示正确 但是 我想显示单个用户提交的评分 而不仅仅是显示平均值
  • preg_match错误未知修饰符“{”[重复]

    这个问题在这里已经有答案了 这有什么问题吗 if preg match a zA Z 1 7 POST naam and preg match lt gt a zA Z0 9 POST password 第一个正则表达式我想要一个 1 7
  • Github 操作:npm install -> 错误:进程已完成,退出代码 1

    我的这个 GitHub 操作工作流程已经运行了一年多了 当我到达运行 npm install 的步骤时 突然出现错误 我真的不知道为什么会触发错误 非常感谢有人帮助或至少为我指明正确的方向 如果您需要更多数据 请告诉我 我将编辑问题 我尝试
  • 使用 OS X 的情节提要初始化另一个窗口

    我在 Xcode6 中创建了一个使用故事板的 Cocoa 应用程序 作为模板 Xcode 为应用程序提供了一个窗口 我想添加第二个窗口来显示程序首次加载的时间 所以基本上 会出现两个窗口 我在 Main storyboard 上放置了一个窗
  • 使用 ASIO 的线程池 - 线程退出,任务未执行

    我正在使用 Boost ASIO 用 C 编写一个 ThreadPool 类 以下是我迄今为止编写的代码 线程池类 using namespace std using namespace boost class ThreadPoolClas
  • 如何计算多标签分类的 F1-Score?

    我尝试计算f1 score但当我使用 sklearn 时 我在某些情况下收到一些警告f1 score method 我有一个多标签 5 类预测问题 import numpy as np from sklearn metrics import