Ch05 评估与特征工程修订于 二〇二六年七月二日

5.2 分类问题的评估

混淆矩阵:一个 2x2 的表格。

               预测为"是"  预测为"否"
实际为"是"       TP          FN
实际为"否"       FP          TN
  • TP(真阳性):病人有病,AI 说有病 —— 正确
  • FP(假阳性):病人没病,AI 说有病 —— 误报
  • TN(真阴性):病人没病,AI 说没病 —— 正确
  • FN(假阴性):病人有病,AI 说没病 —— 漏报

准确率 = (TP + TN) / 总数 —— 看起来直观,但有陷阱。如果 1000 个人里只有 1 个病人,AI 全说”没病”,准确率 99.9%。但那个病人被漏掉了。所以准确率高不代表模型好。

精确率(Precision) = TP / (TP + FP) —— AI 说”有病”的人里,真正有病的比例。查出来的人里有几个是真的。

召回率(Recall) = TP / (TP + FN) —— 真正有病的人里,AI 发现了多少。实际的病人有没有被漏掉。

F1 分数 = 2 × (Precision × Recall) / (Precision + Recall) —— 精确率和召回率的平衡分数。一个指标高另一个低,F1 就低。两者都高,F1 才高。

5.2.1 实际例子:垃圾邮件检测

假设你做了一个垃圾邮件过滤器,测试了 1000 封邮件:

预测为垃圾邮件预测为正常邮件
实际是垃圾邮件TP = 80FN = 20
实际是正常邮件FP = 10TN = 890
  • 准确率 = (80 + 890) / 1000 = 97% —— 看起来很好
  • 精确率 = 80 / (80 + 10) = 88.9% —— AI 标记为垃圾的邮件里,88.9% 真的是垃圾。还有 11.1% 是误判(正常邮件进了垃圾箱,你可能会错过重要邮件)
  • 召回率 = 80 / (80 + 20) = 80% —— 100 封垃圾邮件里,AI 只抓住了 80 封,漏了 20 封(你的收件箱里还有垃圾邮件)
  • F1 分数 = 2 × (0.889 × 0.80) / (0.889 + 0.80) = 0.842

选精确率还是召回率? 取决于场景:

  • 垃圾邮件检测:宁可漏掉几封垃圾邮件(低召回率),也不能把重要邮件丢进垃圾箱(高精确率)。你更在意精确率。
  • 癌症筛查:宁可多叫几个人来复查(低精确率),也不能漏掉一个真正的病人(高召回率)。你更在意召回率。
  • 需要平衡:用 F1 分数。

AUC-ROC:画一条曲线——不同阈值下,真阳性率和假阳性率的关系。AUC 是曲线下的面积——0.5 是乱猜,1.0 是完美。AUC 只看排序能力,不受阈值选择影响。


← 上一节:5.1 过拟合 vs 欠拟合:模型的两大病症 | 下一节:5.4 评估指标的完整体系 →

关联5

知识图谱

局部图谱 · 点节点跳转