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

如何基于Transformers AdapterTrainer计算分类报告及F1分数?

解决方法

你的代码里F1分数计算出错了,问题出在f1_score的传参逻辑上——你传的是preds == eval_pred.label_ids这个布尔数组,这不是正确用法,f1_score需要直接传入预测标签和真实标签。另外要生成完整分类报告,需要导入sklearn的相关指标工具。

修正步骤:

  1. 先导入需要的评估指标模块:
from sklearn.metrics import f1_score, classification_report
  1. 重写compute_metrics函数,正确计算准确率、F1分数,同时生成完整分类报告:
def compute_metrics(eval_pred):
    preds = np.argmax(eval_pred.predictions, axis=1)
    labels = eval_pred.label_ids
    
    # 计算准确率
    accuracy = (preds == labels).mean()
    # 计算F1分数:二分类任务用"binary",多分类按需选"macro"/"weighted"
    f1 = f1_score(labels, preds, average="binary")
    
    # 生成完整分类报告,转为字符串方便查看
    report = classification_report(labels, preds)
    
    # 返回指标字典,分类报告单独存入键值对
    return {
        "acc": accuracy,
        "f1": f1,
        "classification_report": report
    }
  1. 保持AdapterTrainer的调用不变,运行后在评估阶段就能看到包含准确率、F1分数和完整分类报告的结果。

关键说明:

  • average参数:如果是二分类任务(比如你的亚马逊情感极性任务)用"binary";如果是多分类,根据需求选择"macro"(各类别F1算术平均)或"weighted"(按样本量加权平均)。
  • 分类报告里会包含精确率、召回率、F1分数、支持样本数等详细信息,可全面评估模型性能。

内容的提问来源于stack exchange,提问作者Shorouk Adel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:35:54