当前位置: 首页 > ai >正文

Micro-F1分数(多选)

Micro-F1 分数是用于多标签(multi-label)或多类(multi-class)分类评估的重要指标,特别适用于样本不均衡时评估整体性能。它在**多选任务(multi-label classification)**中尤为常用。


🧠 一、Micro-F1 的定义

Micro-F1 是基于所有标签的 全局预测统计量计算出的 F1 值:

Micro-F1 = 2 ⋅ TP total 2 ⋅ TP total + FP total + FN total \text{Micro-F1} = \frac{2 \cdot \text{TP}_{\text{total}}}{2 \cdot \text{TP}_{\text{total}} + \text{FP}_{\text{total}} + \text{FN}_{\text{total}}} Micro-F1=2TPtotal+FPtotal+FNtotal2TPtotal

  • 它先将所有标签的 TP(True Positive)、FP(False Positive)、FN(False Negative)加总,
  • 再计算 F1 分数。

✅ 二、应用场景(多选)

多选任务通常表现为多标签分类问题,例如:

y_true = [[1, 0, 1, 0],  # 样本1:标签0和2是正例[0, 1, 1, 1],  # 样本2:标签1、2、3是正例
]y_pred = [[1, 0, 1, 1],  # 样本1:预测对了0和2,多选了3[0, 0, 1, 1],  # 样本2:预测对了2、3,漏了1
]

🛠 三、如何计算 Micro-F1(Python 示例)

使用 sklearn.metrics.f1_score 设置 average='micro'

from sklearn.metrics import f1_scorey_true = [[1, 0, 1, 0],[0, 1, 1, 1],
]y_pred = [[1, 0, 1, 1],[0, 0, 1, 1],
]# 计算 micro-F1
micro_f1 = f1_score(y_true, y_pred, average='micro')
print(f"Micro-F1 分数: {micro_f1:.4f}")

📊 四、Micro vs Macro vs Weighted F1

评估方式含义适用场景
Micro-F1全局统计 TP/FP/FN 后求 F1标签不平衡时最稳定
Macro-F1每个标签分别计算 F1,再平均看每个类是否表现一致
Weighted-F1Macro-F1 加权平均(按样本数)类别不均衡但关心主类

📘 五、注意事项

  • Micro-F1 与 Accuracy 的数值在多标签任务中差异较大,因为 Accuracy 需要 标签完全匹配,而 Micro-F1 允许部分匹配。
  • 如果你用的模型返回了 logits 或概率(如 [0.8, 0.1, 0.9, 0.3]),要先进行阈值处理(如 0.5)再转成 0/1 标签才能评估:
import numpy as np# 假设模型输出为概率
y_prob = np.array([[0.8, 0.1, 0.9, 0.3],[0.2, 0.7, 0.95, 0.6],
])
y_pred = (y_prob >= 0.5).astype(int)

如果你可以提供模型的预测结果(多标签格式)和真实标签,我可以帮你计算 Micro-F1、Macro-F1、准确率等指标。是否需要我帮你计算一下?

http://www.xdnf.cn/news/14301.html

相关文章:

  • 基于Python爬虫的房价可视化
  • android为什么不用sqlite数据库,而要用Realm
  • Python使用requests调用接口
  • SQL Server从入门到项目实践(超值版)读书笔记 17
  • 目标分割数据集大全「包含分割数据标注+训练脚本」 (持续原地更新)
  • Level1.8for循环
  • 【Create my OS】5 内核线程
  • 分割数据集 - 航拍水域分割数据集下载
  • SylixOS armv7 任务切换
  • 【C判断a*a+b*b=c*c且a>=b>0且输出最小的】2022-6-26
  • 包含30个APP客户端UI界面的psd适用于旅游酒店项目
  • 基于ssm智慧乡村旅游服务平台微信小程序源码数据库文档
  • 青少年编程与数学 01-011 系统软件简介 21 杀毒软件及安全软件
  • C++ 网络编程(12)利用单例逻辑实现逻辑类
  • 初探 Pytest:编写并运行你的第一个测试用例
  • .net6接口多个实现类使用特性标记并解析
  • React-router实现原理剖析
  • 基于SVD的推荐系统:详尽的原理与实践解析
  • 网络安全相关概念与技术详解
  • 高速 PCB 设计的材料选择,第 2 部分
  • ubuntu 22.04 安装部署kibana 7.10.0详细教程
  • Linux——libevent库
  • Python实例题:Python计算曲线曲面积分
  • 网页后端开发(基础2--maven单元测试)
  • useMemo vs useCallback:React 性能优化的两大利器
  • 如何通过 noindex 阻止网页被搜索引擎编入索引?
  • 哈希函数结构:从MD到海绵的进化之路
  • AudioLab安卓版:音频处理,一应俱全
  • Redis中的zset的底层实现
  • SeaTunnel与Hive集成