scikit加权f1分数计算及使用

2024-04-24

我有一个关于weightedsklearn.metrics.f1_score 中的平均值

sklearn.metrics.f1_score(y_true, y_pred, labels=None, pos_label=1, average='weighted', sample_weight=None)

Calculate metrics for each label, and find their average, weighted by support (the number of true instances for each label). This alters ‘macro’ to account for label imbalance; it can result in an F-score that is not between precision and recall.

首先,如果有任何参考证明使用加权 F1 是合理的,我只是好奇在哪些情况下应该使用加权 F1。

其次,我听说加权 F1 已被弃用,是真的吗?

第三,例如,​​实际加权 F1 是如何计算的

{
    "0": {
        "TP": 2,
        "FP": 1,
        "FN": 0,
        "F1": 0.8
    },
    "1": {
        "TP": 0,
        "FP": 2,
        "FN": 2,
        "F1": -1
    },
    "2": {
        "TP": 1,
        "FP": 1,
        "FN": 2,
        "F1": 0.4
    }
}

如何计算上例的加权F1。我认为它应该类似于 (0.8*2/3 + 0.4*1/3)/3,但我错了。


首先,如果有任何参考证明使用加权 F1 是合理的,我只是好奇在哪些情况下应该使用加权 F1。

我没有任何参考资料,但如果您对多标签分类感兴趣,并且关心精度/召回率all类,那么加权 f1 分数是合适的。如果您有只关心正样本的二元分类,那么它可能不合适。

其次,我听说加权 F1 已被弃用,是真的吗?

不,加权 F1 本身并未被弃用。在 v0.16 中,仅弃用了函数接口的某些方面,然后只是为了在以前不明确的情况下使其更加明确。 (历史讨论在 github 上 https://github.com/scikit-learn/scikit-learn/pull/2679或查看源代码 https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/metrics/classification.py并在页面中搜索“已弃用”以查找详细信息。)

第三,实际加权 F1 是如何计算的?

从文档f1_score:

``'weighted'``:
  Calculate metrics for each label, and find their average, weighted
  by support (the number of true instances for each label). This
  alters 'macro' to account for label imbalance; it can result in an
  F-score that is not between precision and recall.

所以平均值的加权是support,这是具有给定标签的样本数。由于您上面的示例数据不包含支持度,因此无法根据您列出的信息计算加权 f1 分数。

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

scikit加权f1分数计算及使用 的相关文章

随机推荐

  • 无法通过 Socket.IO 从 cookie 获取 Express 会话 ID

    我在 Node 中有一个典型的 Web 应用程序 它利用 Express 框架和会话中间件 我还将 Socket io 用于应用程序的某些动态部分 目前 这是一种聊天机制 但这是无关的 我已经能够成功地自行设置会话和socket io 但希
  • 将 Flex ByteArray 转换为 Java byte[]

    我正在尝试将使用 rtmp 协议从 Flex GUI 发送的文件上传到服务器上 我昨天问如何在服务器上发送文件数据 通过rtmps java上传文件到服务器 https stackoverflow com questions 2310855
  • Swift 中的拖放 - 注册拖动类型时出现问题?

    背景 我正在尝试在 Swift 中进行一些简单的拖放操作 类似于 Apple 的示例代码可可拖放 https developer apple com library mac samplecode CocoaDragAndDrop Intro
  • Drupal 8自定义块(模块)创建twig模板文件

    我有一个自定义模块 它创建一个具有字段元素的自定义块 这一切都很好 但我需要为这个块设置主题 我检查了这里的其他帖子并尝试过但没有成功 我已经启用了 twig 调试并获得了主题建议 还是没有运气 谁能指出我正确的方向 这是我到目前为止所拥有
  • 使用 apply 函数重写循环

    我有以下 3 个函数 我想使其更快 我认为应用函数是最好的方法 但我从未使用过应用函数 所以我不知道该怎么做 任何类型的提示 想法和代码片段将不胜感激 n T dt 是全局参数 par 是参数向量 函数 1 是创建 m 1 n 矩阵的函数
  • 如何将 Heroku PG 转储导入本地计算机

    我正在尝试将生产 Heroku 数据库导入到我的开发机器中 我的本地数据库是 PostgreSQL 首先 我将转储从 Heroku 导出到我的机器 curl o latest dump heroku pgbackups url 然后 我尝试
  • Java 中的事件顺序

    我有两个独立组件的两个事件 但有一个问题 JTabbedPane 的 stateChanged 事件在 JFormattedField 的 focusLost 事件之前触发 有没有办法使 stateChange 事件在 focusLost
  • Qt 中浮点数的强制点而不是逗号

    我有一个非常基本的问题 如何在 Qt 中强制使用浮点数中的点而不是逗号 我的操作系统有法语版本 其他问题 是否可以显示带有千位分隔符空格的数字 尝试这个 QLocale loc QLocale system current locale l
  • WP8:使用ApplicationBar截屏

    如何使用 ApplicationBar 截屏 我使用的例子来自这个分行 https stackoverflow com questions 5553429 wp7 take screenshot from application 但通过这种
  • 方法与类型 - 第 2 部分中的另一种方法具有相同的擦除

    我完全明白这个问题方法与类型中的另一个方法具有相同的擦除 https stackoverflow com questions 1998544 method has the same erasure as another method in
  • 如何在 MySQL 中声明变量以进行普通查询?

    如何为 MySQL 中的普通查询声明变量 e g declare myVar date set myVar something select from someTable where someColumn myVar 我尝试过 语法似乎是错
  • 如何在大型光栅图像上将 Leaflet FlyTo() 与 unproject() 和 GeoJSON 数据结合使用?

    我正在使用 Leaflet 构建故事地图 使用切片为图块的大图像而不是 真实世界 地图数据 我正在使用这个插件 https commenthol github io leaflet rastercoords https commenthol
  • 如何在 Visual Studio 2010 中设置 CUDA 编译器标志?

    经过坚持不懈的得到error identifier atomicAdd is undefined 我找到了编译的解决方案 arch sm 20旗帜 但是如何在 VS 2010 中传递这个编译器标志呢 我已经尝试过如下Project gt P
  • SQL Server:使用数字文字进行计算

    我用浮点计算做了一些测试 以尽量减少精度损失 我偶然发现了一个现象 我想在这里展示并希望得到解释 当我写作时 print 1 0 1 0 60 0 结果是 60 0024000960 当我编写相同的公式并进行显式转换时float print
  • 管理 2 个以上具有依赖关系的 Nodejs 包的开发

    我正在开发 2 个 node js 包 每个包都在自己的 git 存储库中管理 包裹B取决于套餐A 所以我的本地目录结构如下所示 A1 B node modules A2 如果我更改本地代码A1 我想测试一下B在将其推送到公共存储库之前 我
  • AddressBook:区分 kABSourceTypeExchangeGAL 类型的源

    我要问的问题已经在这个网站上被问过很多次了 到以前的线程的链接在我的问题下面 使用 iOS AddressBook 并尝试获取 Exchange GAL 地址簿时 类型名称返回 Nil 我使用的代码 并在之前的所有线程中建议 是 CFStr
  • OpenGL Z 偏置(多边形偏移)限制

    我有两个共面的多边形 我尝试做 glEnable GL POLYGON OFFSET FILL glPolygonOffset 0 1 并期望其中一个明显 位于 另一个之上 这种情况直到大约 70 75 个单位之外 近剪裁平面为 1 远剪裁
  • 后台无限 While True 循环 (Python)

    基本上 我有一些这样的代码 while True number int len oilrigs 49 number money time sleep 1 在此之前我有一个启动屏幕 然而 由于这个 while true 循环 它会阻止它运行实
  • 某些方法上的 WCF REST 基本身份验证

    我在 WCF 4 0 中实现了很多 RESTful GET 和 POST 方法 所有这些都通过 SSL 进行 一些方法的示例 OperationContract WebInvoke UriTemplate Login Method POST
  • scikit加权f1分数计算及使用

    我有一个关于weightedsklearn metrics f1 score 中的平均值 sklearn metrics f1 score y true y pred labels None pos label 1 average weig