/knowledge/model-evaluation
模型评估与验证
一个得分 99% 的模型可能毫无价值,一个得分 70% 的模型可能极好。分清哪个是哪个——衡量一个模型是否真的管用——正是把一个真实的结果与一场自欺区分开来的那门学科。
- 学于
- 模型评估与验证基础 · 它真的管用吗?
- 时间
- 数据科学 · 墨尔本大学
- 应用于
- 信任一个模型的得分
- 阅读 / 复习
- 约 16 分钟阅读2026-06-26
搭一个模型,它会乐呵呵地给你一个数字,说它有多好。麻烦在于,那个显眼的数字——它拟合它所训练的 数据有多好——几乎毫无意义,而信任它,是分析自欺最常见的那一种方式。模型评估是衡量 一个模型是否真的管用的那门学科:它在从未见过的数据上会表现多好,而那才是唯一要紧的表现。
它是整个机器学习板块的连接组织——决定一个模型、 一个集成、或一个网络是否值得信任的东西。这一页讲它如何被正确地做: 如何诚实地测试,以及如何选择那个真正反映你所在意之物的指标——因为错的指标能让一个无用的模型看 起来出色。
01
为什么训练误差会撒谎
一个模型的训练误差——它拟合它从中学习的数据有多好——是一个会奉承的骗子。一个足够 灵活的模型,能把训练集完美地背下来、得分 100%,却没学到任何能泛化的东西。那就是过拟合,直接来自偏差-方差页,也是 为什么训练准确率不是真实表现的向导。
你真正在意的是泛化——在新的、未见过的数据上的表现,模型将在真实世界里面对的那些 数据。整套评估的机器,都是为了诚实地估计那个而存在,而它全都搁在一条铁律之上:在模型 训练期间从未见过的数据上测试。
02
神圣的测试集
基础性的一步,是把你的数据拆成永不相混的几部分:
- 训练集——模型从这个学习。
- 验证集——用来调整选择(哪个模型、哪些超参数)并比较选项。
- 测试集——只在最末尾碰一次,为真实世界表现给出一个最终的、诚实的估计。
03
交叉验证:每一行都轮到一次
单次的训练/验证拆分浪费数据,且任凭哪些行碰巧落在哪里摆布。k 折交叉验证把两者都 修好:把数据切成 k 个相等的折,然后训练 k 次,每次留出一个不同的折做验证、在其余的上训练。把 这 k 个分数求平均,得到一个稳定得多、可信得多的估计——而每一行都被用于训练和验证两者,只是从 不在同一时间。
对不平衡的类别,用分层 k 折,它让每一折的类别比例与整体相同——否则一个罕见的类别 可能从某些折里完全缺席。而对时间序列,绝不要 打乱:用前向链(在过去上训练、在未来上验证),这样你才不会把明天泄漏进今天。
04
给回归打分
对于预测一个数字,常见的指标衡量预测离真相有多远:
- MAE(平均绝对误差)——误差的平均大小,以原始单位计。容易解读,对离群值稳健。
- RMSE(均方根误差)——在求平均之前先把误差平方,所以它对大误差惩罚得更狠。当大失误尤其糟糕时用它。
- R²——被解释的方差的比例,从 0 到 1;一种无量纲的、比单纯预测均值好多少的感觉。
MAE 对 RMSE 不是一个细节——它编码了你对大误差的态度,而你优化哪一个,挑出的模型可能不同。
05
混淆矩阵:为什么准确率会撒谎
对于分类,诱惑是报告准确率——正确的比例。在不平衡的数据上,准确率危险地误导人:如果 99% 的个案是阴性,一个总是说「阴性」的模型得到 99% 的准确率、却一个也没逮到。同样的基础率陷阱,同样困扰着欺诈、疾病与异常检测。
诚实的起点是混淆矩阵,它把预测分成四个格子:真阳性、真阴性、假阳性(假警报)与假阴性(漏报)。几乎每一个有用的指标都是从这四个建起来的,而关键的 领悟是:一个假阳性与一个假阴性通常有非常不同的代价——所以你需要能把它们分开的指标。
06
精确率、召回率与 ROC 曲线
最要紧的两个指标朝不同的方向拉扯:
- 精确率——在所有被标为阳性的之中,有多少真的是?(惩罚假警报。)。
- 召回率——在所有真正是阳性的之中,你逮到了多少?(惩罚漏报。)。
它们之间有一场拔河:标记得更激进,召回率上升,但精确率下降,反之亦然。F1 分数—— 它们的调和平均——用一个数字概括这个平衡:
大多数分类器输出一个概率,而你把阈值设在哪里,决定了精确率/召回率的平衡。ROC 曲线在所有阈值上画出真阳性率对假阳性率,而 AUC(曲线下面积)用一个 无关阈值的数字概括模型的排序能力——0.5 是随机,1.0 是完美。对严重不平衡的问题,精确率- 召回率曲线往往比 ROC 更有信息量。贯穿始终的教训:选择那个匹配「弄错的真实代价」 的指标,而非随便哪个看起来最高的。
07
诚实的概率:校准
一个容易忘记的维度:一个模型可以把个案排序得完美(AUC 很棒),而它的概率却是不诚实的。校准问一个不同的问题——当模型说「70% 的可能」时,它真的大约 70% 的时候会发生吗?
每当概率本身驱动一个决策时——一个风险分数、一个期望成本、一个行动的阈值——这就极其要紧。一个 自信地校准错误的模型(说 95%、其实是 60%),即便它的排序没问题,也会导致糟糕的判断。它用一张 可靠性图来检查,用 Platt 缩放或保序回归这样的方法来修——而它是评估中人们最常跳过的那一部分。
08
它在我工作中的体现
09
60 秒回顾
神圣测试集的原则、分层交叉验证、不平衡上的准确率陷阱,以及那个常被跳过的校准步骤,反映了当前的 模型评估参考文献以及课程。