08 进阶评估指标与算法特定指标
Accuracy、Precision、Recall、F1、ROC-AUC 是分类任务中最常见的指标。
但是在真实项目中,还经常需要其他评估方法。
这一篇作为扩展篇,介绍:
text
PR Curve
PR-AUC
Log Loss
Top-k Accuracy
Calibration
Cost-sensitive Evaluation
Ranking Metrics
算法或任务特定指标
一、为什么还需要更多指标?
因为一个模型可能同时承担不同功能。
例如:
text
分类
概率估计
排序
风险评分
检索
推荐
异常检测
同一个模型:
text
Accuracy 很高
并不意味着:
text
概率估计准确
排序能力好
业务收益高
因此模型评估必须与模型用途匹配。
二、Precision-Recall Curve
PR Curve 的两个坐标轴是:
text
Precision
Recall
随着 threshold 改变:
text
Precision 和 Recall
也不断变化
将不同 threshold 对应的:
text
Recall, Precision
连接起来,就得到 PR Curve。
三、PR Curve 为什么适合类别不平衡?
在严重类别不平衡时:
text
Negative 数量非常大
ROC 中的 FPR 可能看起来很低。
但是 PR Curve 更直接关注:
text
预测出来的 Positive 有多可信
真正的 Positive 找到了多少
因此在:
text
欺诈检测
异常检测
稀有事件检测
中,PR Curve 往往非常有解释力。
四、PR-AUC
与 ROC-AUC 类似,可以计算 PR Curve 下的面积。
通常称为:
text
PR-AUC
或根据具体计算方式使用:
text
Average Precision
它综合衡量 Precision-Recall trade-off。
在正类极少的任务中,PR-AUC 往往是非常重要的补充指标。
五、Log Loss
如果模型输出概率:
text
P(y=1)
不仅可以评价分类是否正确,还可以评价:
模型给出的概率到底有多合理。
二分类 Log Loss 可以表示为:
LogLoss=−1N∑i=1Nyilog(pi)+(1−yi)log(1−pi)LogLoss=-\frac{1}{N}\sum_{i=1}^{N}y_i\\log(p_i)+(1-y_i)\\log(1-p_i)LogLoss=−N1i=1∑Nyilog(pi)+(1−yi)log(1−pi)
其中:
text
y_i
= 真实标签
p_i
= 模型预测为正类的概率
Log Loss 越小越好。
六、为什么 Log Loss 比 Accuracy 更严格?
假设两个模型都预测正确。
真实标签:
text
Positive
Model A:
text
P(Positive) = 0.51
Model B:
text
P(Positive) = 0.99
如果 threshold = 0.5:
text
两个模型都预测正确
Accuracy 完全一样
但是:
text
Model B 更有信心
Log Loss 会体现这种概率质量差异。
同样,如果模型:
text
P(Positive)=0.99
但实际上是 Negative,那么 Log Loss 会给予非常大的惩罚。
七、Probability Calibration
一个概率模型输出:
text
0.8
理想解释应该是:
所有被预测为 0.8 的样本中,大约 80% 真的是 Positive。
如果现实中只有:
text
50%
那么模型:
text
over-confident
过度自信
如果现实中有:
text
95%
那么模型可能:
text
under-confident
过于保守
这就是:
text
Calibration
概率校准
八、为什么 Calibration 很重要?
某些任务不仅需要:
text
谁更可能是 Positive
还需要:
text
风险到底是多少
例如:
text
金融风险
医疗风险
设备故障概率
保险定价
资源调度
此时:
text
AUC 高
并不代表:
text
概率一定校准良好
AUC 更关注排序。
Calibration 更关注概率本身是否可信。
九、Top-k Accuracy
对于类别很多的问题:
text
100 类
1000 类
甚至更多
Top-1 Accuracy 可能过于严格。
于是可以使用:
text
Top-k Accuracy
例如:
text
Top-5 Accuracy
表示:
真实类别是否出现在模型预测概率最高的 5 个类别中。
十、Cost-sensitive Metrics
在现实业务中:
text
FP
FN
通常并不是等价的。
可以直接定义成本函数:
Cost=CFP×FP+CFN×FNCost=C_{FP}\times FP+C_{FN}\times FNCost=CFP×FP+CFN×FN
其中:
text
C_FP
= False Positive 的成本
C_FN
= False Negative 的成本
然后选择使:
text
Expected Cost
最小的模型和 threshold。
这比盲目追求 Accuracy 更符合很多实际部署需求。
十一、Ranking Metrics
有些模型真正的任务不是最终分类,而是排序。
例如:
text
搜索
推荐系统
广告排序
候选风险排序
这时可以使用:
text
Precision@k
Recall@k
MAP
NDCG
MRR
这些指标关注:
text
高排名位置是否出现了真正相关的结果
而不是只看整体分类正确率。
十二、算法特定指标应该如何理解?
"Algorithm-specific metrics" 可以理解为:
某些算法、任务或输出形式拥有额外的评价方法。
例如:
text
聚类
→ Silhouette Score
→ Davies-Bouldin Index
回归
→ MAE
→ MSE
→ RMSE
→ R²
排序
→ NDCG
→ MAP
→ MRR
概率预测
→ Log Loss
→ Brier Score
→ Calibration Error
异常检测
→ Recall at low FPR
→ Precision at top-k
→ PR-AUC
因此严格来说:
指标通常更应该按"任务类型"选择,而不是简单按"算法名字"选择。
十三、不要只用一个指标决定模型
一个更可靠的模型评估报告可以同时包含:
text
Confusion Matrix
Accuracy
Precision
Recall
Specificity
F1
ROC-AUC
PR-AUC
Probability Calibration
Inference Cost
Business Cost
具体选择哪些,取决于任务。
十四、一个实用评估框架
可以按下面四个层次评估模型。
第一层:分类结果
text
Confusion Matrix
Accuracy
Precision
Recall
Specificity
F1
第二层:排序能力
text
ROC-AUC
PR-AUC
第三层:概率质量
text
Log Loss
Calibration
第四层:部署价值
text
Latency
Memory
Cost
FP Cost
FN Cost
Business KPI
这样得到的模型评价通常比单一 Accuracy 更完整。
十五、总结
模型评价没有一个永远最好的指标。
真正应该问的是:
text
模型最终输出什么?
模型被用于什么任务?
哪种错误更加昂贵?
类别是否不平衡?
需要分类、排序还是概率?
部署约束是什么?
只有先回答这些问题,才能选择真正合适的指标。
这也是整个 Model Evaluation and Selection 主题的核心。