文章

分类模型效果评估

分类模型效果评估

分类模型效果评估

本文集中梳理二分类/多分类任务中的常用评估指标(Accuracy、Precision、Recall、F1、ROC/AUC)、各指标的适用场景与局限,以及 K 折交叉验证的使用;帮助快速选对指标、避免被虚高准确率误导。


目录


1. Accuracy:易虚高,参考价值有限

定义:正确预测数 / 总样本数

1
Accuracy = (TP + TN) / (TP + TN + FP + FN)

问题:类别不平衡时,Accuracy 容易虚高。例如正样本仅 2.6%、负样本 97.4%,若模型全部预测为负类,准确率也有约 97.4%,但召回率为 0,模型实际上完全未识别正类。

结论:在严重不平衡(如欺诈检测、疾病筛查)时,Accuracy 参考价值有限,应优先看 Precision、Recall、F1、AUC。


2. Precision / Recall / F1:依赖阈值

指标含义公式
精确率(Precision)预测为正的样本中,真正为正的比例TP / (TP + FP)
召回率(Recall)真实为正的样本中,被正确预测的比例TP / (TP + FN)
F1精确率与召回率的调和平均2 × P × R / (P + R)

依赖阈值:模型输出的是概率(如 0.72),需要设定分类阈值(如 0.5)才能得到类别。阈值不同,P/R/F1 都会变化:

  • 阈值高 → 预测为正更少 → 精确率通常升、召回率通常降
  • 阈值低 → 预测为正更多 → 召回率通常升、精确率通常降

适用:需要权衡误报与漏报时,P/R/F1 很重要;但需结合业务选定合适阈值。


3. F score 家族(F_beta)

公式:F_β = (1 + β²) × (P × R) / (β² × P + R)

  • β = 1:F1,精确率与召回率同等重要
  • β < 1(如 F0.5):更看重精确率,适合误报成本高
  • β > 1(如 F2):更看重召回率,适合漏报成本高

选型:误报代价高(如垃圾邮件误杀正常邮件)→ 用 F0.5;漏报代价高(如疾病筛查漏诊)→ 用 F2。


4. ROC / AUC:不依赖阈值

ROC 曲线:横轴为假阳性率(FPR),纵轴为真阳性率(TPR),遍历不同阈值得到曲线。

AUC:ROC 曲线下面积,取值 0~1。

图表怎么读(ROC)

  • 坐标轴:从左到右,FPR 增大(把更多负样本错判为正);从下到上,TPR 增大(抓住更多真实正样本)。曲线上每一点对应某一个阈值下的 (FPR, TPR)。
  • 参考线:左下角 (0,0) 到右上角 (1,1) 的对角线表示「随机猜」——正负样本分数无区分能力时,ROC 会落在这条线附近。
  • 线「高」与「低」:在相同 FPR(同样容忍的误报比例)下,曲线越靠上(TPR 越高)越好,说明同样误报成本下能检出更多正类。
  • 线的走向:理想情况是曲线尽快向左上角 (0,1) 拱起——即在 FPR 还很低时 TPR 已经很高,表示正类分数整体高于负类、排序质量好。若曲线紧贴对角线,说明模型几乎不会排序。
  • 面积(AUC)大与小
    • AUC 接近 1:曲线下方面积大,正类与负类分数可分性好。
    • AUC 接近 0.5:面积约为对角线下方的 0.5,接近随机。
    • AUC 明显小于 0.5:可能标签反了或模型系统性反向,可检查正负类定义与预测符号。

文字箭头图样例(示意,非精确绘图):

1)坐标系与轴向

1
2
3
4
5
6
7
8
9
10
TPR(真阳性率)
  ^
1 |                    (0,1) 理想点:无误报且全抓住正类
  |                      *
  |                    /
  |                  /
  |                /
0 +------------------------> FPR(假阳性率)
  0                        1
       TPR↑ = 检出正类更多    FPR→ = 误把负类当正类更多

2)随机分类(对角线)

1
2
3
4
5
6
7
8
TPR
  ^     随机猜:ROC 沿对角线 /
1 |                    /
  |                  /
  |                /   ← 线与「面积」都贴近随机
  |              /
0 +--------------------> FPR
  0                    1

3)较好模型(向左上拱、AUC 大)

1
2
3
4
5
6
7
8
9
TPR
  ^   模型ROC~~~----.
1 |              ,'     ← 先抬高 TPR、FPR 仍小 → 排序好
  |           ,-'
  |        ,-'
  |     ,-'
  |  ,-'................... 对角线(随机)
0 +--------------------> FPR
  阴影区:曲线下方面积 ≈ AUC(越大越好)

4)同一 FPR 下比「谁更高」(两条 ROC)

1
2
3
4
5
6
7
8
TPR
  ^        模型A ●
  |           ,'|
  |  模型B ,'   |  ← 竖线:固定 FPR,A 的 TPR 更高 → 同误报下检出更多正类
  |      ,'     |
  |    ,'       |
  +-------------+------> FPR
              固定FPR
  • 含义:随机取一个正样本和一个负样本,模型对正样本的预测分数高于负样本的概率
  • 特点:不依赖具体阈值,专门看「正类(少数类)是否被排得更靠前」
  • 适用
    • 类别不平衡时,评估模型区分正负的能力
    • 判断「有没有调阈值的空间」:AUC 高说明存在阈值区间,可平衡 P/R;AUC 接近 0.5 则难以通过调阈值改善

与 F1 的区别

维度F1AUC
依赖阈值是,需指定阈值否,综合所有阈值
关注点某一阈值下的 P/R 平衡整体排序能力
典型用途选好阈值后的业务指标模型比较、判断调参空间

5. K 折交叉验证

目的:单次划分训练/测试集可能不稳定,K 折交叉验证通过多次划分取平均,得到更稳定的性能估计。

流程

  1. 将数据分为 K 份
  2. 轮流以 1 份为验证集、其余 K-1 份为训练集
  3. 每轮训练并评估(如 F1、AUC)
  4. 取 K 次结果的平均值(及标准差)

经验值

  • 小数据集(< 500 样本):3~5 折
  • 中等数据集(500~5000):5~10 折
  • 类别不平衡:使用分层 K 折(Stratified K-Fold),保持每折内正负比例
  • 时间序列:不能随机打乱,需用时间序列交叉验证

6. 指标选择速查

场景建议指标
类别平衡的二分类Accuracy 可用
类别不平衡慎用 Accuracy;优先 F1、AUC
误报代价高Precision、F0.5
漏报代价高Recall、F2
需平衡 P/RF1
关注排序能力、不依赖阈值AUC
评估稳定性K 折交叉验证(分层/时间序列按需选用)

小结:Accuracy 易虚高;P/R/F1 重要但依赖阈值;AUC 不依赖阈值,适合评估不平衡下的模型好坏与调阈值空间;F_beta 可按业务侧重 P 或 R;K 折交叉验证用于得到更稳健的性能估计。

本文由作者按照 CC BY 4.0 进行授权