单位 3 / 11

模型训练和评估:准确的指标,诚实的基准测试

收益:

  • 能够选择适合问题类型和业务环境的指标(不平衡数据中的 PR-AUC/召回率、回归中的 MAE/RMSE)并识别学习过度/不足
  • 能够根据基线解释每个指标并测量偏差,并通过交叉验证将噪音与进度分开
  • 能够通过使用验证集调整超参数并仅在最后使用测试集来报告不乐观的结果

模型训练(训练:从数据中学习模式的过程)是机器学习工程中最明显但最具误导性的步骤。之所以出现,是因为它产生了令人满意的数字,如“准确率 95%”。具有误导性,因为该数字通常是错误问题的正确答案。在本单元中,教育和评估与工程学科一起讨论;我们使用人工智能作为实验设计的合作伙伴,并根据测量做出决策。

训练周期的逻辑

模型通过最小化损失函数来学习数据中的模式:损失函数是一种以数字方式测量模型误差的函数。优化算法(例如梯度下降)通过逐步调整参数来减少损失。目的不是记住训练数据,而是将其推广到前所未有的数据。

两个主要危险:

  • 过度拟合:模型会记住训练数据,但在新数据上会失败。训练成功率高,验证成功率低。
  • 欠拟合:模型无法捕捉模式;训练和验证的成功率都很低。

找到平衡是教育的艺术。验证集用于监控这种平衡:如果验证成功率开始下降而训练成功率增加,则过度学习已经开始。

提示:将每一步的训练和验证损失绘制在一起。两条曲线开始发散的点就是过度学习的开始点,也是“提前停止”的正确时刻。

指标选择:最关键的决定

错误的指标会让好的模型看起来很糟糕,而坏的模型看起来却很好。问题决定了度量:

  • 不平衡的分类(一类非常罕见,例如欺诈):准确性具有误导性。一个说“一切都正常”的模型将获得 99% 的准确率,但不会发现任何欺诈行为。相反,使用精确度(我捕获的有多少实际上是正的)、召回率(我捕获的有多少是真正的正)及其平衡 F1 或 PR-AUC。
  • 平衡分类:准确度和 ROC-AUC 可能是合适的。
  • 回归(数字估计):MAE(平均绝对误差)、RMSE(惩罚大误差)、MAPE(百分比误差)。
  • 排名/推荐:NDCG、MRR、Recall@K。

准确率或召回率是否重要取决于业务环境。回忆(不遗漏任何患者)是癌症筛查的首要任务;垃圾邮件过滤器的精确度(不将重要的电子邮件发送到垃圾邮件)非常重要。这是一项商业决策,而不是技术决策,由工程师和业主共同做出。

弱提示/强提示

弱提示:“评估我的模型的性能,准确度 0.97。”

强有力的提示:“我有一个欺诈检测模型;阳性类别率为 1.5%。准确度报告为 0.97。解释为什么这个指标可能会产生误导,告诉我我应该更喜欢哪些指标(精确率、召回率、PR-AUC)以及原因。还要计算“将一切都视为负面”基线模型对此数据的准确度,以便我可以看到真正的附加值。”

差异性:强大的提示给出班级比例和业务背景;它还要求进行基线模型比较——这是衡量指标是否有意义的最重要的依据。

基线:没有比较的指标是没有意义的

指标本身并没有好坏之分;根据基本模型,它是好还是坏。基本模型是想到的最简单的解决方案:“总是告诉大多数班级”,“重复上周的值”,“猜测平均值”。如果你的模型不能清楚地通过这个简单的解决方案,那么所有的复杂性都是白费的。

注意:“我的模型准确率是 85%”这句话本身并没有说明什么。如果基础模型已经达到 84%,那么你的模型几乎毫无价值;如果基本模型达到 50%,那么您的模型就是完美的。始终以基本模型来说话。

交叉验证和信任

单一的训练/测试划分可能是出于偶然。交叉验证:将数据分成k个部分,依次测试每个部分,以显示性能的稳定性。在 5 折交叉验证中,您会得到五个不同的分数;它们的平均值和标准差很重要。如果平均值为 80%,但偏差为 ±12%,则您的模型不稳定 - 它在下一批数据中的表现可能会非常不同。

这对于“两模型比较”也至关重要。如果模型 A 得到 81%,模型 B 得到 82%,那么 B 真的更好吗?如果偏差为±3%,则该差异可能是噪声。在做出决定之前考虑差异是否显着。

超参数调整:通过验证,而不是测试

超参数(训练前手动确定的设置——学习率、树深度等)是使用验证集设置的。测试集仅在最后使用一次。如果您通过查看测试集来选择超参数,则测试集将受到污染,并且您报告的性能将是乐观的,而现实情况并非如此。

人工智能是设计超参数搜索空间和编写搜索代码(网格搜索、随机搜索、贝叶斯优化)的好帮手。但您仍然决定“我们将优化哪个指标?”

三个迷你箱子

案例 1 - 准确性陷阱。一个医疗团队对能够检测出罕见疾病的模型感到自豪:准确率高达 98%。当进行基本模型比较时,真相就显现出来了:由于患病率为2%,所以说“叫大家健康”的模型也得到了98%。该模型的召回率仅为 11%——遗漏了大多数患者。一旦指标转换为 PR-AUC,就会测量实际性能并重新设计模型。

案例 2 - 将噪音误认为是进步。团队花了几个月的时间将模型从 86.2% 改进到 86.9%。交叉验证显示偏差为 ±1.4%,因此 0.7 个点的“改进”是统计噪声。该团队已经在虚幻的收入上浪费了三个星期的时间。教训:在没有验证改进是否大于偏差之前,不要宣布胜利。

案例 3 - 测试装置污染。工程师反复查看测试集以选择最佳的超参数。据报道,生产率从 91% 降至 83%。原因:他通过一遍又一遍地查看测试集(在测试集上过度学习),不知不觉地选择了相应的模型。当使用单独的验证集时,报告的性能和实际的性能重叠。

可复制模板

帮助我为这个分类问题选择正确的指标。问题:[预测什么]类别分布:[阳性率

评估以下两个模型的比较。模型 A 交叉验证:[分数列表]模型 B 交叉验证:[分数列表]计算平均值和标准差。差异在统计上是否显着,或者只是偏差中的噪音?您建议我选择哪一个,为什么?

检查此训练代码的以下内容:1) 是否使用测试集或验证集选择了超参数?2) 是否使用正确的集监控提前停止?3) 是否存在过度学习的迹象(训练/验证损失差异)?代码:[代码]

对于此回归问题,我应该报告 MAE、RMSE 和 MAPE 中的哪一个?目标变量的尺度:[范围]大误差是否不成比例地严重(RMSE),或者它们都相等(MAE)吗?是否有接近于零的值(它们是否扭曲 MAPE)?建议并附上简短的理由。

指标选择表

问题类型

适当的指标

应避免

为什么

分类不平衡

PR-AUC、F1、召回率

准确度

多数阶层夸大了指标

平衡分类

准确度、ROC-AUC

平衡数据可靠

回归(显着异常值)

均方根误差

MAPE(如果为零)

对重大错误进行处罚

回归(等权重)

MAE

易于解释

排名/推荐

NDCG,召回@K

准确度

顺序很重要

常见错误

  • 使用不平衡数据的准确性。最常见的度量误差。
  • 不进行基本模型比较。它使指标失去意义。
  • 查看超参数的测试集。乐观但不切实际的结果。
  • 依靠单个隔间。如果没有交叉验证,您将不会看到偏差。
  • 将噪音误认为进步。偏离的小“进步”大多是运气。
  • 忽略了业务背景。精确度/召回率平衡是一项业务决策。

综上所述

模型训练的真正技巧不是产生一个高数字,而是知道这个数字意味着什么。问题和业务背景决定了正确的衡量标准;根据基线模型解释每个指标;通过交叉验证来衡量偏差,不要将噪音误认为是进步;仅在最后使用测试集一次。人工智能是你在实验设计中的合作伙伴,但“足够好”的决定取决于你和你自己。

应用任务

对于分类模型:(1) 编写类别分布,(2) 构建适当的基础模型并测量其分数,(3) 使用 5 倍交叉验证评估模型并报告平均值和标准差,(4) 计算适合问题的指标(例如 PR-AUC)而不是准确性。写下您的模型是否在没有偏差的情况下大幅优于基准模型。

清单

  • [ ] 我根据问题类型和业务背景选择了指标。
  • [ ] 我建立了一个基本模型并与它进行比较。
  • [ ] 我通过交叉验证报告了平均值和偏差。
  • [ ] 我确认改进大于偏差。
  • [ ] 我选择了带有验证集的超参数。
  • [ ] 我只在最后使用了一次测试集。