【机器学习深度学习】模型微调时的4大基础评估指标(1)
目录
前言:基础评估指标(从 “对与错” 到 “准与全”)
一、基础评估4大指标
二、类比理解
2.1 准确率(Accuracy):整体对的比例
2.2 精确率(Precision):你说是垃圾的,有多少真的是?
2.3 召回率(Recall):所有垃圾邮件中,你抓住了多少?
2.4 F1 分数(F1 Score):“精确率”和“召回率”的平衡点
小结
三、一个简单的例子练练手
四、大典型业务场景指标侧重
前言:基础评估指标(从 “对与错” 到 “准与全”)
在自然语言处理(NLP)或计算机视觉(CV)等任务中,模型微调(Fine-tuning)已成为迁移学习不可或缺的步骤。我们常说“调模型”,可问题是,调到什么程度才算调得好?核心就在于:如何评估微调后的模型是否达标。
本文将系统梳理模型微调过程中的核心评估指标,帮助你科学判断模型性能,避免“调不准、评不清”的尴尬局面。
一、基础评估4大指标
微调模型后,第一步就是搞清楚“预测得准不准”。以下四类基础指标,是所有监督学习任务的评估基石:
指标 | 公式 | 适用场景 |
---|---|---|
准确率 Accuracy | (TP + TN) / (TP + TN + FP + FN) | 类别均衡时反映整体正确性 |
精确率 Precision | TP / (TP + FP) | 假正例代价高(如垃圾邮件) |
召回率 Recall | TP / (TP + FN) | 假负例代价高(如疾病漏诊) |
F1 分数 F1 Score | 2 × (P × R) / (P + R) | 平衡考虑“准”与“全”,适合类别不平衡场景 |
理解提示:
TP:预测为正且实际为正
FP:预测为正但实际为负
FN:预测为负但实际为正
TN:预测为负且实际为负
二、类比理解
📦 假设你在做一个“垃圾邮件识别器”
你的模型要判断每封邮件是否是垃圾邮件(正类),正常邮件是非垃圾邮件(负类)。
模型预测后你得到这样的结果:
实际 \ 预测 垃圾邮件(正类) 正常邮件(负类) 垃圾邮件(正类) ✅ 预测对了:TP ❌ 漏掉了:FN 正常邮件(负类) ❌ 误判了:FP ✅ 没判断是垃圾:TN
缩写 中文名称 含义(预测结果 vs 实际情况) 举例说明 TP 真正例 模型预测是垃圾邮件,实际也是垃圾邮件 你说它是垃圾,它也确实是垃圾(预测对了) FP 假正例 模型预测是垃圾邮件,但实际是正常邮件 你误把正常邮件当成垃圾邮件(误判) FN 假负例 模型预测是正常邮件,但实际是垃圾邮件 你没发现它是垃圾邮件(漏掉了) TN 真负例 模型预测是正常邮件,实际也是正常邮件 你说它是正常邮件,它也确实正常(预测对了)
🧠 四个指标通俗解释
2.1 准确率(Accuracy):整体对的比例
你总共判断了多少封邮件?你猜对了多少?
📌 公式:
Accuracy = (TP + TN) / 总邮件数
✅ 适合用在“垃圾邮件”和“正常邮件”数量差不多时。如果90%都是正常邮件,那模型哪怕啥都不做,只说“都是正常邮件”,准确率都能高达90% —— 所以不能总用它判断。
2.2 精确率(Precision):你说是垃圾的,有多少真的是?
你标了10封垃圾邮件,结果只有6封真的是,其它4封是误判的(误伤),那么你的精确率是 60%。
📌 公式:
Precision = TP / (TP + FP)
✅ 适合在“误伤很严重”的场景,比如:
-
正常邮件被误判为垃圾(你可能错过重要邮件)
-
把好人当坏人(治安系统)
2.3 召回率(Recall):所有垃圾邮件中,你抓住了多少?
10封真实垃圾邮件你只识别出6封,那召回率是60%。还有4封你没发现,被放进了收件箱(漏判)
📌 公式:
Recall = TP / (TP + FN)
✅ 适合在“漏掉很严重”的场景,比如:
-
癌症诊断(不能漏掉任何患者)
-
安检(不能漏掉任何违禁物品)
2.4 F1 分数(F1 Score):“精确率”和“召回率”的平衡点
当你想又“抓得准”又“抓得全”,F1就是这个中间值。
📌 公式:
F1 = 2 × (Precision × Recall) / (Precision + Recall)
✅ 适合 类别不平衡任务(比如只有1%的邮件是垃圾),因为准确率可能失真,而F1分数更真实反映模型在“正类”上的能力。
小结
🎯 一个表格总结四者:
指标 | 问的问题 | 更关注哪一类错误? | 举例适用场景 |
---|---|---|---|
Accuracy | 总体猜对了吗? | 不区分 | 分类均衡的数据 |
Precision | 说是“正”的,有多少是对的? | 少犯假正例(FP) | 垃圾邮件、司法错判 |
Recall | 真正的“正”,你找到了多少? | 少漏真正例(FN) | 癌症筛查、异常检测 |
F1 Score | 精确率 vs 召回率的折中 | 平衡两者 | 类别不平衡、重点关注正类 |
三、一个简单的例子练练手
假设我们有 100 封邮件:
实际有 20 封是垃圾(正类),80 封是正常(负类)
模型预测了 25 封为垃圾,其中:
真正是垃圾的有 15 封(TP)
误判的有 10 封(FP)
漏掉的垃圾邮件有 5 封(FN)
判断为正常的 75 封中有 70 封真的是正常(TN)
我们来算一下四个指标:
-
Accuracy = (TP + TN) / 所有邮件 = (15 + 70) / 100 = 85%
-
Precision = TP / (TP + FP) = 15 / (15 + 10) = 60%
-
Recall = TP / (TP + FN) = 15 / (15 + 5) = 75%
-
F1 = 2 × (0.6 × 0.75) / (0.6 + 0.75) ≈ 66.7%
四、大典型业务场景指标侧重
下面按 5 大典型业务场景 展开,说明为什么要偏重某一指标、具体怎么做权衡,并给出常见做法参考。读完你就知道:面对不同任务,该把“注意力”放在 Accuracy、Precision、Recall 还是 F1 上。
场景类型 | 错误成本特点 | 首选指标 | 为什么 | 常见做法 & Tips |
---|---|---|---|---|
1. 类别基本均衡(情感三分类、猫狗二分类等) | 正反例数量相近,FP 与 FN 代价也差不多 | 准确率 (Accuracy) | 既能直观反映整体正确率,又不会被类别失衡“稀释” | - 仍需同时监控 P/R,防止模型“懒惰”- 若类别稍不平衡,可补充 Macro‑F1 |
2. 假正例代价高(垃圾邮件、司法误判、广告点击扣费) | 把正常样本错判为正样本会直接伤害用户或带来损失 | 精确率 (Precision) | 希望“凡是你说是正类的,基本都靠谱” | - 通过升高阈值提高 Precision- 将 FP 加入损失函数权重- 提供手动复核流程来弥补召回下降 |
3. 假负例代价高(癌症筛查、金融欺诈预警、危险品检测) | 漏掉真实正样本可能造成巨大风险 | 召回率 (Recall) | 情愿多报几个可复查,也不能漏掉关键正例 | - 降低阈值提升 Recall- 采用级联模型:先高 Recall 粗筛→再高 Precision 精筛- 人工二审去除 FP |
4. 类别极度不平衡(罕见缺陷检测、少数客户流失预测) | 正类稀少,Accuracy 失真,FP/FN 代价往往都高 | F1(宏或加权) | 同时关注“抓得全”与“抓得准”,避免单边倾斜 | - 报告 Macro‑F1 + per‑class P/R- 采样或代价敏感学习处理失衡- PR‑Curve 找最佳阈值 |
5. 多标签 / 大规模分类(文本多标签、商品千分类) | 单条样本可属于多类,或类数特别多 | 微平均 F1 或 Micro P/R | 把所有 TP/FP/FN 汇总,更能体现全局覆盖 | - 业务看“能覆盖多少标签” → 看 Recall- 看“推荐列表质量” → 看 Precision@k- 别忘对长尾类别做 Macro‑分析 |
具体权衡与实践建议
1、先问业务:错哪一种更痛?
-
如果“错抓”比“漏掉”更痛 → 抓 Precision
-
如果“漏掉”后果更严重 → 抓 Recall
-
两者都痛且样本少 → 看 F1
2、多维监控不只单指标
-
报告里同时列出 P、R、F1、支持数 (support)
-
绘制 PR‑Curve / ROC‑Curve,方便运营或医学专家选阈值
3、阈值调优是最简单的杠杆
-
二分类 softmax / sigmoid 输出 → 调阈值直接移动 P、R
-
训练后根据验证集或业务线下实验(A/B)选点
4、代价敏感学习
-
在损失函数里加权,把 FP 或 FN 的损失系数调高
-
适用于极端不平衡或需定量衡量金钱/风险成本
5、把评估写进持续集成
-
每次微调都产出同一套指标 + 混淆矩阵 + 曲线
-
用 TensorBoard/wandb 做曲线对比,避免“局部最优”假象
快速记忆口诀
“均衡看准率,误伤看精确;漏检看召回,两难看 F1。”
只要先搞清“正类是谁、错误代价怎么量化”,再对号入座,你就能选对评估指标,给微调找准方向。