课程导览:模型评估三指标与堆叠图
说实话,做模型评估这件事,很多人一开始会掉进一个坑:只看准确率。我在项目中见过不少团队,模型在测试集上准确率 95%,上线后却频繁误报,用户投诉一堆。后来一查,原来是样本极度不平衡——正例只占 1%。这时候光看准确率,跟看笑话差不多。
所以,我们需要更精细的指标。我个人习惯用三指标组合:精确率、召回率、F1 分数。再加上堆叠图把三者的变化直观展示出来,评估就清晰多了。
精准率(Precision)——你猜对了多少?
精确率衡量的是:模型预测为“正类”的样本中,有多少是真正例。说白了,就是「别瞎报」。公式很简单:
Precision = TP / (TP + FP)
TP 是真阳性,FP 是假阳性。值越高,说明模型越「谨慎」——宁可不报,也不错报。
召回率(Recall)——该找的你都找出来了吗?
召回率关心反面:所有真正的正样本中,模型找出了多少。公式:
Recall = TP / (TP + FN)
FN 是假阴性。召回率高,意味着模型「几乎不漏」——但代价可能是虚警变多。嗯,这里要注意:精确率和召回率往往是跷跷板,你压一头,另一头就翘起来。
F1 分数——调和平均,两边都照顾
精确率和召回率打架时,F1 出来和稀泥。它是两者的调和平均数:
F1 = 2 * (Precision * Recall) / (Precision + Recall)
只有两者都高,F1 才高。我曾经在一个医疗影像项目里只用准确率评估,结果错失了很多阳性病例。后来改用 F1 搭配阈值调优,效果好多了。
| 指标 | 关注点 | 适用场景 |
|---|---|---|
| 精确率 | 预测为正的样本里有多少是真的正 | 垃圾邮件过滤(误判正常邮件代价高) |
| 召回率 | 真正的正样本里找出了多少 | 疾病筛查(漏诊后果严重) |
| F1 分数 | 精确率和召回率的平衡 | 类别不平衡、需要综合评估 |
堆叠图——把三个指标叠在一起看
单个指标有局限,那能不能同时看三个?堆叠图就是干这个的。它把精确率、召回率、F1 分数画在同一张图上,通常横轴是某个参数(比如阈值,或者模型复杂度),纵轴是值,三个指标堆叠或重叠显示。一眼就能看出:
- 哪里精确率跳水了?
- 召回率什么时候追上精确率?
- F1 的峰值出现在哪个阈值附近?
你想想看:光看一个 F1 的数值,你不知道它是不是因为精确率过低、召回率过高而凑出来的。堆叠图能暴露这些「虚假繁荣」。我在做信贷风控模型时,就靠堆叠图找到了最佳阈值——既控制了坏账率(精确率),又没漏掉太多优质客户(召回率)。
适用场景
- 阈值选择:比如分类模型输出概率,你需要决定 0.5 还是 0.3 作为阈值。堆叠图帮你看到不同阈值下三个指标的变化。
- 模型对比:两个模型堆叠图放在一起,哪个更稳定、哪个更激进,一目了然。
- 调参分析:调整超参数时,堆叠图可以显示三个指标的联动效应。
这一章其实只是开胃菜。后面我们会用真实的 python 代码和数据集,一步步画出漂亮的堆叠图,并分析出模型真正的弱项。记住一句话:模型好不好,不能光看一个数字,把精确率、召回率、F1 叠在一起看,才是真正的「开卷考试」。