You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多分类任务中如何基于F1分数筛选并保留表现优异的类别?

从分类报告中筛选高F1分数类别的方法

核心思路

将分类报告转换为结构化字典格式,遍历每个类别提取F1分数,筛选出分数≥0.7的类别。以下是基于Python scikit-learn库的实现步骤:

具体实现代码

from sklearn.metrics import classification_report
import numpy as np

# 替换为你实际的真实标签、预测标签和类别名称
y_true = np.array([...])  # 真实标签数组
y_pred = np.array([...])  # 模型预测标签数组
class_names = [...]       # 对应50个类别的名称列表(如['class_0', 'class_1', ...])

# 生成结构化分类报告(字典格式)
report_dict = classification_report(y_true, y_pred, target_names=class_names, output_dict=True)

# 筛选F1分数≥0.7的类别
high_perf_classes = []
for cls in class_names:
    # 提取当前类别的F1分数
    f1 = report_dict[cls]['f1-score']
    if f1 >= 0.7:
        high_perf_classes.append(cls)

# 输出结果
print("表现优异的类别:", high_perf_classes)

关键细节说明

  • 结构化报告转换:通过output_dict=True参数,将默认的字符串格式分类报告转为字典,方便直接提取各类别的指标值。
  • 排除汇总行:遍历过程仅针对class_names中的类别,自动跳过分类报告中的macro avg、weighted avg、accuracy等汇总统计行。
  • 类别匹配:确保class_names的顺序和标签编码完全对应,避免提取错误的类别指标。

拿到筛选后的high_perf_classes后,你可以从原始数据集中过滤出仅属于这些类别的样本,重新构建数据集并训练针对性模型。

内容的提问来源于stack exchange,提问作者Ruth Bonet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:40:17