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

二分类模型:best_score_、accuracy_score_与AUROC指标的差异及选型指南

二分类任务中三个指标的通俗解释与选择指南

一、三个指标的核心差异

  • best_score_:这是模型在调参过程中,通过交叉验证在验证集上拿到的最优平均分数,相当于模型在「练习模拟考」里的最好成绩,用来判断哪个参数组合的模型在未见过的验证数据上表现最稳定,避免过度拟合训练集。
  • accuracy_score(准确率):模型在测试集上「直接猜对错」的比例,公式是「猜对的样本数÷总样本数」,直观反映模型在全新数据上整体的猜对概率。
  • AUROC(ROC曲线下面积):不看模型直接输出的分类结果,只看模型对正、负样本的区分能力。比如模型给每个样本打一个「是正类的概率分」,AUROC越高,说明模型越能把正样本和负样本的分数拉开——哪怕你调整判断阈值(比如原本0.5算正类,改成0.6),模型的区分能力依然靠谱。

二、适用场景

  • best_score_:仅用于调参阶段,用来筛选最优的模型参数组合,确保模型在验证环节的稳定性。
  • accuracy_score:适合样本分布均衡的场景(比如正负样本各占50%),且你只关心整体的预测正确率,比如普通邮件垃圾分类、普通商品类别识别这类任务。
  • AUROC:适合样本不平衡的场景(比如癌症检测,患病样本仅占1%),或者你更关注模型的区分能力而非直接对错比例的场景。比如医疗诊断中,哪怕准确率看起来不高,但AUROC高说明模型能有效区分患者和健康人群,调整阈值后可以大幅减少漏诊。

三、实际选择方法

  1. 调参阶段:重点看best_score_,选择分数最高的参数组合,保证模型在验证集上的表现稳定。
  2. 最终模型评估:
    • 若样本均衡,优先参考accuracy_score,它能直观反映模型的整体预测正确率;
    • 若样本不平衡或属于医疗、风控这类对区分能力要求高的场景,重点看AUROC;
    • 也可以两者结合判断:比如你给出的rf模型,准确率和AUROC都很高,说明它不管是直接猜对错还是区分样本的能力都很强,是表现最优的模型。

代码与结果展示

1. 查看各模型的best_score_

for name, model in fitted_models.items():
    print(name, model.best_score_)
  • l1: 0.8493863035326624
  • l2: 0.8493863035326624
  • rf: 0.9796513913558318
  • gb: 0.9752980461811722

2. 计算测试集上的accuracy_score

for name, model in fitted_models.items():
    pred = model.predict(X_test)
    print(name, accuracy_score(y_test, pred))
  • l1: 0.8603411513859275
  • l2: 0.8603411513859275
  • rf: 0.9790334044065387
  • gb: 0.9758351101634684

3. 计算测试集上的AUROC

for name, model in fitted_models.items():
    pred = model.predict_proba(X_test)
    pred = [p[1] for p in pred]
    print(name, roc_auc_score(y_test, pred))
  • l1: 0.9015388373737675
  • l2: 0.9015381433597084
  • rf: 0.9915194952019338
  • gb: 0.988678201643009

内容的提问来源于stack exchange,提问作者Ramsey A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:50:45