You need to enable JavaScript to run this app. 使用F2分数评估多分类器:二分类任务下指标计算的代码咨询
优惠活动
大模型
产品
解决方案
定价
更多

使用F2分数评估多分类器:二分类任务下指标计算的代码咨询

二分类模型批量计算F2分数的实现代码

核心调整逻辑

你现有的循环流程不需要做结构性改动,只需要补充F2分数的计算环节即可。F2分数可以通过scikit-learn提供的通用F-beta指标接口计算,不需要额外手写实现逻辑,注意二分类场景下要匹配对应的参数配置。

第一步:导入对应计算函数

F2是β值为2的F-beta分数,需要从sklearn的metrics模块导入计算接口:

from sklearn.metrics import fbeta_score

第二步:修改原有循环代码

在原循环逻辑中补充模型测试集预测、F2值计算的步骤,修改后完整可运行的代码如下:

scores = []  # 原有存储基础得分的列表
f2_scores = []  # 新增:存储所有模型的F2分数
for name, clf in zip(models, classifiers):
    clf.fit(X_train, y_train)
    # 原有逻辑:计算模型测试集基础准确率得分
    score = clf.score(X_test, y_test)
    scores.append(score)
    # 新增逻辑:计算F2分数
    y_pred = clf.predict(X_test)  # 获取模型在测试集上的预测结果
    # 计算F2值,beta=2对应F2分数定义
    # 二分类场景下average='binary'表示以正类为计算对象
    f2_score = fbeta_score(y_test, y_pred, beta=2, average='binary')
    f2_scores.append(f2_score)

关键配置说明

  • beta=2是F2分数的核心定义,代表召回率的权重是精确率的4倍,不要误用f1_score(对应β=1)计算F2指标
  • 如果你的二分类正类标签不是默认的1,可以在fbeta_score函数中补充pos_label=你的正类实际值参数,避免指标计算错配
  • 如果需要对二分类的两个类别做聚合计算全局F2值,可以把average参数替换为'macro'(宏平均)或'weighted'(按样本量加权平均)
  • 计算完成后,你可以把模型名、基础得分、F2分数绑定为性能列表:model_performance = list(zip(models, scores, f2_scores)),后续直接基于这两个维度做排序即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 00:54:06