机器学习入门 · 模型评估

模型说「好瓜」——
到底准不准

准确率 85% 听起来还行,但若坏瓜不多,瞎猜「全是好瓜」也能刷到 80%。
要看清模型的真实本事,得打开混淆矩阵。

向下滑动
第一步 · 为何评估

先立一个场景:100 个西瓜

1 模型训完了,怎么知道它行不行?

分类模型给出的是「预测标签」。要评判好坏,必须把预测真实答案对照起来——这就是模型评估。下面用经典的「挑西瓜」例子贯穿全文。

2 数据长这样

项目数量说明
总样本100全部西瓜
实际好瓜80正例(Positive)
实际坏瓜20负例(Negative)
模型预测为好瓜75它喊「好」的次数
模型预测为坏瓜25它喊「坏」的次数
注意类别不平衡:好瓜占 80%,坏瓜只占 20%。若模型偷懒全部猜「好瓜」,准确率也能到 80%——只比正经模型低一点,但完全没学会认坏瓜。

核心洞察

只看一个「准确率」往往不够。我们需要一张表,把「猜对了什么、错成了什么」摊开——这张表就是混淆矩阵(Confusion Matrix)

第二步 · 四个格子

混淆矩阵:把对错拆成 4 种情况

1 以「好瓜」为正例

约定:好瓜 = 正例(Positive),坏瓜 = 负例(Negative)。预测与真实交叉,正好落进四个格子。上面「预测好瓜 75」= 猜对 70 + 误报 5:

实际好瓜 实际坏瓜
预测好瓜 TP = 70
真正例 · 猜对了
FP = 5
假正例 · 误报
预测坏瓜 FN = 10
假负例 · 漏报
TN = 15
真负例 · 猜对了

2 四个名字怎么记

TP 真正例

预测好,实际也好。True Positive —— 真的抓对了。

FP 假正例

预测好,实际是坏。False Positive —— 误报(狼来了)。

FN 假负例

预测坏,实际是好。False Negative —— 漏报(好瓜被扔掉)。

TN 真负例

预测坏,实际也坏。True Negative —— 坏瓜被正确拦下。

记法口诀:先看「Positive / Negative」——说的是你预测成什么;再看「True / False」——说的是这个预测对不对

3 核对一下数量

关系计算
实际好瓜TP + FN = 70 + 10 = 80
实际坏瓜FP + TN = 5 + 15 = 20
预测好瓜TP + FP = 70 + 5 = 75
预测坏瓜FN + TN = 10 + 15 = 25
总样本TP + FP + FN + TN = 100
第三步 · 四大指标

从混淆矩阵算出四个常用分数

1 精确率 Precision ——「预测准不准」

在你喊「好瓜」的那些里,真正是好瓜的比例。关心:别把坏的当好的

Precision = TP / (TP + FP)
西瓜例:70 / (70 + 5) = 70 / 75 ≈ 93.3%

2 召回率 Recall ——「找得全不全」

实际所有好瓜里,被你成功找出来的比例。关心:别漏掉真正的好瓜

Recall = TP / (TP + FN)
西瓜例:70 / (70 + 10) = 70 / 80 = 87.5%

3 准确率 Accuracy ——「整体对不对」

所有预测里,猜对的占比。直观,但在类别极不平衡时容易「看起来很高、其实没用」。

Accuracy = (TP + TN) / 总样本
西瓜例:(70 + 15) / 100 = 85%

4 F1 分数 ——「又准又全吗」

精确率与召回率的调和平均。两者都高,F1 才高;一个很高另一个很低时,F1 会被拉下来。

F1 = 2 × (Precision × Recall) / (Precision + Recall)
西瓜例:2 × (0.933 × 0.875) / (0.933 + 0.875) ≈ 90.3%

更在乎精确率

你说「好」的时候很靠谱,误报少。适合:推荐商品、垃圾邮件拦截(别误伤正常邮件)。

更在乎召回率

真正该抓的很少漏。适合:疾病筛查、欺诈检测(宁可多查,别漏掉)。

第四步 · 动手演示

互动:拖动四个格子,看指标怎么变

你可以试试:切换下方场景预设,或拖动 TP / FP / FN / TN 滑块,观察精确率、召回率、准确率与 F1 的实时变化。

场景:挑西瓜。正例 = 好瓜。看看误报与漏报如何影响四个指标。

预测 \\ 实际
实际正例
(好瓜)
实际负例
(坏瓜)
预测正例
TP
真正例
70
FP
假正例 · 误报
5
预测负例
FN
假负例 · 漏报
10
TN
真负例
15

精确率 Precision

93.3%
TP / (TP+FP)

召回率 Recall

87.5%
TP / (TP+FN)

准确率 Accuracy

85.0%
(TP+TN) / N

F1 分数

90.3%
调和平均
第五步 · 怎么选指标

精确率与召回率,该盯哪一个?

1 没有「永远最好」的指标

提高召回率,往往要更「敢猜正例」——FP(误报)可能上升,精确率下降。反过来亦然。选哪个,取决于哪种错误更贵

更在乎精确率

垃圾邮件过滤:误把重要邮件当垃圾(FP)代价大。宁可漏拦几封垃圾,也不要误伤。

更在乎召回率

癌症初筛:漏掉真患者(FN)代价极大。宁可多做几次复查(多一点 FP)。

两者都要 · 看 F1

业务上「又准又全」都重要、且两类错误代价接近时,常用 F1 做综合比较。

类别不平衡时:别只报 Accuracy。西瓜例里正经模型 85%、偷懒全猜好瓜也有 80%,分差不大,但矩阵完全不同——务必结合混淆矩阵一起看。
调参(如 网格搜索)时,交叉验证里用的评分指标,就应该选你真正关心的那一个(F1、召回率等),而不是默认准确率。
第六步 · 多分类

不止好坏瓜:多分类也是一张表

1 鸢尾花三分类示例

类别多于两个时,混淆矩阵变成 N×N。本页统一约定:行 = 预测,列 = 实际(与上面二分类表一致)。对角线上是分对的数量。

预测 \\ 实际 山鸢尾 变色鸢尾 维吉尼亚 合计(预测)
山鸢尾 50 1 0 51
变色鸢尾 2 47 2 51
维吉尼亚 0 3 45 48
合计(实际) 52 51 47 150

说明:不少教材 / scikit-learn 会写成「行 = 实际,列 = 预测」,只是行列对调,数字含义不变。读表时先看清轴标签。

2 怎么读这张表

对角线

分类正确:50+47+45 = 142

非对角线

错分位置一目了然,例如实际山鸢尾被预测成变色鸢尾:2 个

%

准确率

142 / 150 ≈ 94.7%

每个类别仍可单独算精确率/召回率(把「该类 vs 其他」看成二分类),再做宏平均或加权平均。

总结

带走这几条

返回首页