0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用于模型评估和选择的常见方法

深度学习自然语言处理 来源:深度学习自然语言处理 作者:深度学习自然语言 2022-10-25 10:45 次阅读

摘要:模型评估、模型选择和算法选择技术的正确使用在学术性机器学习研究和诸多产业环境中异常关键。本文回顾了用于解决以上三项任务中任何一个的不同技术,并参考理论和实证研究讨论了每一项技术的主要优势和劣势。进而,给出建议以促进机器学习研究与应用方面的最佳实践。本文涵盖了用于模型评估和选择的常见方法,比如留出方法,但是不推荐用于小数据集。不同风格的 bootstrap 技术也被介绍,以评估性能的不确定性,以作为通过正态空间的置信区间的替代,如果 bootstrapping 在计算上是可行的。在讨论偏差-方差权衡时,把 leave-one-out 交叉验证和 k 折交叉验证进行对比,并基于实证证据给出 k 的最优选择的实际提示。论文展示了用于算法对比的不同统计测试,以及处理多种对比的策略(比如综合测试、多对比纠正)。最后,当数据集很小时,本文推荐替代方法(比如 5×2cv 交叉验证和嵌套交叉验证)以对比机器学习算法。


1 简介:基本的模型评估项和技术

机器学习已经成为我们生活的中心,无论是作为消费者、客户、研究者还是从业人员。无论将预测建模技术应用到研究还是商业问题,我认为其共同点是:做出足够好的预测。用模型拟合训练数据是一回事,但我们如何了解模型的泛化能力?我们如何确定模型是否只是简单地记忆训练数据,无法对未见过的样本做出好的预测?还有,我们如何选择好的模型呢?也许还有更好的算法可以处理眼前的问题呢?

模型评估当然不是机器学习工作流程的终点。在处理数据之前,我们希望事先计划并使用合适的技术。本文将概述这类技术和选择方法,并介绍如何将其应用到更大的工程中,即典型的机器学习工作流。

1.1 性能评估:泛化性能 vs. 模型选择

让我们考虑这个问题:「如何评估机器学习模型的性能?」典型的回答可能是:「首先,将训练数据馈送给学习算法以学习一个模型。第二,预测测试集的标签。第三,计算模型对测试集的预测准确率。」然而,评估模型性能并非那么简单。也许我们应该从不同的角度解决之前的问题:「为什么我们要关心性能评估呢?」理论上,模型的性能评估能给出模型的泛化能力,在未见过的数据上执行预测是应用机器学习或开发新算法的主要问题。通常,机器学习包含大量实验,例如超参数调整。在训练数据集上用不同的超参数设置运行学习算法最终会得到不同的模型。由于我们感兴趣的是从该超参数设置中选择最优性能的模型,因此我们需要找到评估每个模型性能的方法,以将它们进行排序。

我们需要在微调算法之外更进一步,即不仅仅是在给定的环境下实验单个算法,而是对比不同的算法,通常从预测性能和计算性能方面进行比较。我们总结一下评估模型的预测性能的主要作用:

评估模型的泛化性能,即模型泛化到未见过数据的能力;

通过调整学习算法和在给定的假设空间中选择性能最优的模型,以提升预测性能;

确定最适用于待解决问题的机器学习算法。因此,我们可以比较不同的算法,选择其中性能最优的模型;或者选择算法的假设空间中的性能最优模型。

虽然上面列出的三个子任务都是为了评估模型的性能,但是它们需要使用的方法是不同的。本文将概述解决这些子任务需要的不同方法。

我们当然希望尽可能精确地预测模型的泛化性能。然而,本文的一个要点就是,如果偏差对所有模型的影响是等价的,那么偏差性能评估基本可以完美地进行模型选择和算法选择。如果要用排序选择最优的模型或算法,我们只需要知道它们的相对性能就可以了。例如,如果所有的性能评估都是有偏差的,并且低估了它们的性能(10%),这不会影响最终的排序。更具体地说,如果我们得到如下三个模型,这些模型的预测准确率如下:

M2: 75% > M1: 70% > M3: 65%,

如果我们添加了 10% 的性能偏差(低估),则三种模型的排序没有发生改变:

M2: 65% > M1: 60% > M3: 55%.

但是,注意如果最佳模型(M2)的泛化准确率是 65%,很明显这个精度是非常低的。评估模型的绝对性能可能是机器学习中最难的任务之一。

2f99b01a-5398-11ed-a3b6-dac502259ad0.jpg

图 2:留出验证方法的图示。

2 Bootstrapping 和不确定性 2f894ed2-5398-11ed-a3b6-dac502259ad0.png

本章介绍一些用于模型评估的高级技术。我们首先讨论用来评估模型性能不确定性和模型方差、稳定性的技术。之后我们将介绍交叉验证方法用于模型选择。如第一章所述,关于我们为什么要关心模型评估,存在三个相关但不同的任务或原因。

我们想评估泛化准确度,即模型在未见数据上的预测性能。

我们想通过调整学习算法、从给定假设空间中选择性能最好的模型,来改善预测性能。

我们想确定手头最适合待解决问题的机器学习算法。因此,我们想对比不同的算法,选出性能最好的一个;或从算法的假设空间中选出性能最好的模型。

2fb2eefe-5398-11ed-a3b6-dac502259ad0.jpg

图 3:偏差和方差的不同组合的图示。

2fee3b62-5398-11ed-a3b6-dac502259ad0.png

图 4:在 MNIST 数据集上 softmax 分类器的学习曲线。

3002a764-5398-11ed-a3b6-dac502259ad0.jpg

图 5:二维高斯分布中的重复子采样。

3 交叉验证和超参数优化 2f894ed2-5398-11ed-a3b6-dac502259ad0.png

几乎所有机器学习算法都需要我们机器学习研究者和从业者指定大量设置。这些超参数帮助我们控制机器学习算法在优化性能、找出偏差方差最佳平衡时的行为。用于性能优化的超参数调整本身就是一门艺术,没有固定规则可以保证在给定数据集上的性能最优。前面的章节提到了用于评估模型泛化性能的留出技术和 bootstrap 技术。偏差-方差权衡和计算性能估计的不稳定性方法都得到了介绍。本章主要介绍用于模型评估和选择的不同交叉验证方法,包括对不同超参数配置的模型进行排序和评估其泛化至独立数据集的性能。

本章生成图像的代码详见:https://github.com/rasbt/model-eval-article-supplementary/blob/master/code/resampling-and-kfold.ipynb。

302531d0-5398-11ed-a3b6-dac502259ad0.jpg

图 11:logistic 回归的概念图示。

我们可以把超参数调整(又称超参数优化)和模型选择的过程看作元优化任务。当学习算法在训练集上优化目标函数时(懒惰学习器是例外),超参数优化是基于它的另一项任务。这里,我们通常想优化性能指标,如分类准确度或接受者操作特征曲线(ROC 曲线)下面积。超参数调整阶段之后,基于测试集性能选择模型似乎是一种合理的方法。但是,多次重复使用测试集可能会带来偏差和最终性能估计,且可能导致对泛化性能的预期过分乐观,可以说是「测试集泄露信息」。为了避免这个问题,我们可以使用三次分割(three-way split),将数据集分割成训练集、验证集和测试集。对超参数调整和模型选择进行训练-验证可以保证测试集「独立」于模型选择。这里,我们再回顾一下性能估计的「3 个目标」:

我们想评估泛化准确度,即模型在未见数据上的预测性能。

我们想通过调整学习算法、从给定假设空间中选择性能最好的模型,来改善预测性能。

我们想确定最适合待解决问题的机器学习算法。因此,我们想对比不同的算法,选出性能最好的一个,从算法的假设空间中选出性能最好的模型。

30702866-5398-11ed-a3b6-dac502259ad0.jpg

图 12:超参数调整中三路留出方法(three-way holdout method)图示。

30e0a76c-5398-11ed-a3b6-dac502259ad0.jpg

图 13:k 折交叉验证步骤图示。

31019530-5398-11ed-a3b6-dac502259ad0.jpg

图 16:模型选择中 k 折交叉验证的图示。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    2709

    浏览量

    47723
  • 机器学习
    +关注

    关注

    66

    文章

    8136

    浏览量

    130661
  • 数据集
    +关注

    关注

    4

    文章

    1179

    浏览量

    24366

原文标题:模型评价、模型选择、算法选择

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    PCBA测试的常见方法

    以看出整个工艺流程存在的问题,比如前期工序SMT、DIP等,存在问题,就进行调整,让整个工艺更加完善。PCBA测试常见方法,主要有以下几种: 1.手工测试手工测试就是直接依靠视觉进行测试,通过视觉与比较来
    发表于 11-08 17:19

    Ch2模型评估选择

    【Machine Learining】Ch2 模型评估选择
    发表于 05-28 06:55

    IDC设备资产运营中四种“折旧率计算”的常见方法

    原标题:IDC设备资产运营中四种“折旧率计算”的常见方法数据中心基础设施设备管理中设备的折旧是固定资产的折旧。该基础设施设备或者IT设备在长期使用后仍可保持其原始物理形态,但由于芯片、电机、磁盘
    发表于 09-01 06:06

    常见的特征选择方法大致可以分为哪几类呢

    。  常见的特征选择方法大致可以分为三类:过滤式、包裹式和嵌入式。2. 过滤式选择  过滤式方法先对数据集进行特征
    发表于 12-20 06:00

    光耦隔离的4种常见方法对比

    光耦隔离的4种常见方法对比
    发表于 05-31 11:06 13.1w次阅读
    光耦隔离的4种<b class='flag-5'>常见方法</b>对比

    一种基于模型的测试性分析评估方法

    产品可测试性设计是否满足测试性要求需要进行测试性分析和评估,基于模型的测试性分析评估方法因为它独特的优势被广泛用于产品测试性辅助分析之中。针
    发表于 01-18 17:32 0次下载
    一种基于<b class='flag-5'>模型</b>的测试性分析<b class='flag-5'>评估</b><b class='flag-5'>方法</b>

    检测LED单元板的常见方法

    LED电子显示屏很重要的组成部分就有LED单元板,如果单元板有问题,会直接影响LED显示屏的整体质量!所以,如何辨别LED单元板的好坏是LED显示屏商家关心的问题,下面整理了一些检测LED单元板的常见方法
    发表于 05-04 17:31 3274次阅读

    电平转换常见方法的汇总比较资料下载

    电子发烧友网为你提供电平转换常见方法的汇总比较资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
    发表于 04-09 08:44 9次下载
    电平转换<b class='flag-5'>常见方法</b>的汇总比较资料下载

    系统仿真模型可信度评估方法研究综述

    仿真可信度评估流程中的主要操作步骤。在评估方法中引入了考虑不确定性的特征选择验证方法进行模型验证
    发表于 06-15 14:37 11次下载

    PCBA工厂确保采购物料原装的常见方法

    PCBA工厂确保采购物料原装的常见方法是先核验供应商的资质,然后让供应商提供欲采购物料的原厂授权证明。在收到物料后让仓管仔细检查核对,避免收到氧化料、老料、型号参数不对的物料。
    的头像 发表于 08-20 12:09 863次阅读

    箱式变压器保养的常见方法和事项

      箱式变压器是工业、矿山、建筑等各个领域中常见的基础设施,作为电力系统中不可缺少的设备之一,需要定期进行保养与维护,以确保其正常、安全、稳定地运行。以下是箱式变压器保养的常见方法
    发表于 04-19 14:45 1769次阅读

    RS-485基础知识:处理空闲总线条件的两种常见方法

    在本文中,我将介绍处理空闲总线条件的两种常见方法,以便保证总线上的逻辑状态。
    的头像 发表于 07-04 11:30 1665次阅读
    RS-485基础知识:处理空闲总线条件的两种<b class='flag-5'>常见方法</b>

    MCU批量生产下载程序的几种常见方法

    MCU批量生产下载程序的几种常见方法
    的头像 发表于 10-24 17:22 1018次阅读
    MCU批量生产下载程序的几种<b class='flag-5'>常见方法</b>

    运行Python程序的几种常见方法

    Python是一种高级编程语言,具有简单易学,易于阅读和调试的特点。当你完成了一个Python程序之后,你需要运行它以检查程序是否按照预期工作。下面是运行Python程序的几种常见方法
    的头像 发表于 11-28 15:32 476次阅读

    Linux系统中调用脚本的常见方法

    在linux系统中有多种方法可以在系统启动后调用脚本,接下来介绍几种常见方法
    的头像 发表于 12-13 18:16 522次阅读