模型评估与选择

news2024/12/27 12:42:22

一、问题

在现实任务中,我们往往有多种学习算沾了供选择,甚至对同 -个学习算法,当使用不同的参数配置时也会产生不 同的模型 . 那么,我们该选用 哪一个学习算法、使用哪一种参数配置呢?

理想的解决方案当然是对候选模型的泛化误差进行 评估 , 然后选择泛化误差最小的那个模型。然而,我们无法直接获得泛化误差,而训练误差又由于过拟合现象的存在而不适合作为标准,那么,在现实中如何进行模型评估与选择呢?

 二、模型的选择

通常,我们可通过实验测试来对学习器的泛化误差进行评估并进而做出选择。可以使用一个 "测试集 " 来测试学习器对新样本的判别,然后 以测试集上的"测试误差"作为泛化误差的近似,我们假设测试样本也是从样本真实分布 中独立同分布采样而得,但需注意的是,测试集应该尽可能与训练集互斥, 即测试样本尽量不在训练集中出现、未在训练过程中使用过。

1.留出法

留出法(hold-out)直接将数据集D分为两个互斥的集合,其中一个集合做为训练集S,另一个做为测试集T,在S上训练完成后用T来评估其测试误差,做为对泛化误差的估计。

常见的做法是将大约2/3~4/5的样本用于训练,剩余样本用于测试

2.交叉验证法

交叉验证法(cross validation)先将数据集D划分为K个大小相似的互斥子集,每个子集都是通过分层采样得到,以尽可能保持数据分布的一致性;然后每次用k-1个子集做训练集,余下的子集做测试集,这样一共可以得到k组训练集/测试集,从而可以进行k次训练和测试,最终返回k次训练的均值。

通常把交叉验证又叫做k折交叉验证,如k取10,则是10折交叉验证;

留一法(leave-One-Out):特殊的,当数据集D中有m个样本,令k=m,即每个子集只有一个样本,也即每次只留出一个做为测试集,这样的方法叫做留一法。

3.自助法

引言:我们希望评估的是在数据集D上训练出的模型,但是留出法和交叉验证法都保留了一部分样本用于测试,数据集规模要小于原来的规模,因此会引入一些因训练样本规模不同而导致的估计偏差,留一法受训练样本规模影响较小,但是计算复杂度太高了(训练集很小时还行)。

自助法(bootstrapping),对于一个拥有m个样本的数据集D,有放回的进行采样m次,就得到了一个同等规模的D*,显然D*中有的样本会出现多次,有的样本一次都不会出现,可以简单估计,样本在m次采样中始终不被采到的概率是 (1-1/m)^m,取极限得到=1/e =0.368;即 通过自助法大约有1/3的数据被用来做测试集

实际评估的模型与期望评估的模型都是用m个训练样本,而我们仍有1/3的没在训练集出现的数据用于测试,这样的测试结果也称作包外估计(out-of-bagestimate)。

三、模型评估

模型评估是指对于一种具体方法输出的最终模型,使用一些指标和方法来评价它的泛化能力。这一步骤通常在模型训练和模型选择之后,正式部署模型之前。模型评估方法不针对模型本身,只针对问题和数据,因此可以用来评价来自不同方法的模型的泛化能力,进行用于部署的最终模型的选择。我们评估一个模型,最关心的是它的泛化能力,对于监督学习问题,泛化能力可以用泛化误差来衡量。

1.错误率与精度

作用:这是分类任务中常用的性能度量

错误率是分类错误的样本数占样本总数的比例

精度是分类正确的样本数占样本总数的比例

 

2.查准率与查全率F1

作用:有时候我们更关注的是检索出的结果中有多少是用户关心的,或者用户感兴趣的结果有多少被检索出来

 

参考:

机器学习——模型评估和选择_模型评估与选择_四川兔兔的博客-CSDN博客

机器学习——模型评估与选择 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/453817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java线程详解

线程是CPU调度和分配的基本单位,是操作系统可以识别的最小执行和调度单位,每个线程都有自己特定的独立的内存区域,当然也与其他线程共享堆内存,文件队列以及其他内核资源,Java虚拟机允许一个应用拥有多个线程并发工作。…

AI绘画——Lora模型 小人书·连环画 xiaorenshu

目录 小人书连环画 使用说明: Instructions for v1.5: Instructions for v1.0: 下载地址 模型演示(多图预警) Night Sky YOZORA Model 模型 Lora模型xiaorenshu pastel-mix模型pastel-waifu-diffusion.vae模型Lora模型xiaorenshu 小人书…

JavaSE05|数组的定义与使用

文章目录 JavaSE05|**数组的定义与使用**1.数据基本概念**2.** **数组是引用类型****3.** **数组的应用场景** JavaSE05|数组的定义与使用 1.数据基本概念 定义:可以看成是相同类型元素的一个集合 1.1数组初始化 动态初始化:在创建数组时&#xff0c…

使用 Kubectl Patch 命令更新资源

Kubectl patch 命令允许用户对运行在 Kubernetes 集群中的资源进行局部更新。相较于我们经常使用的 kubectl apply 命令,kubectl patch 命令在更新时无需提供完整的资源文件,只需要提供要更新的内容即可。 Kubectl patch 支持以下 3 种 patch 类型&…

ROS学习第三十三节——Arbotix使用

https://download.csdn.net/download/qq_45685327/87718484 1.介绍 通过 URDF 结合 rviz 可以创建并显示机器人模型,不过,当前实现的只是静态模型,如何控制模型的运动呢?在此,可以调用 Arbotix 实现此功能。 Arboti…

第九章 桥接模式

文章目录 前言一、桥接模式(Bridge)-基本介绍完整代码Brand 手机接口,定义行为Vivo 实现 Brand 接口XiaoMi 实现 Brand 接口Phone 抽象桥接类FoldedPhone 实现桥接 (折叠样式手机)UpRightPhone 实现桥接(直立样式手机)…

干货 | 被抑郁情绪所困扰?来了解CBT吧!

Hello,大家好! 这里是 壹脑云科研圈 ,我是 喵君姐姐~ 我们的情绪就像是一组正弦波,有情绪很高涨的时刻,也会有情绪低落的瞬间,也会有情绪平稳的时候。 这种情绪上的变化非常正常,也正是因为这…

shell的变量功能

文章目录 shell的变量功能什么是变量?变量的可变性与方便性影响bash环境操作的变量脚本程序设计(shell script)的好帮手 变量的使用与设置:echo、变量设置规则、unset变量的使用(echo)变量设置的规定使用案例 环境变量的功能用env观察环境变量与常见环境…

数据结构(五)—— 栈与队列(2)

一、接上章 栈与队列的中等、困难题。 堆是一块动态内存 栈是先进后出的堆的一种方法 队列是一种先进先出的线性表 二、题 2.5 150 逆波兰表达式求值 很有意思的一道题,将中缀表达式 4 13 / 5,转化为后缀表达式之后:["4", &qu…

深入理解机器学习——过拟合(Overfitting)与欠拟合(Underfitting)

分类目录:《深入理解深度学习》总目录 机器学习的主要挑战是我们的算法必须能够在先前未观测的新输入上表现良好,而不只是在训练集上表现良好。在先前未观测到的输入上表现良好的能力被称为泛化(Generalization)。通常情况下&…

测试需求平台6-数据持久化与PyMySQL使用

✍此系列为整理分享已完结入门搭建《TPM提测平台》系列的迭代版,拥抱Vue3.0将前端框架替换成字节最新开源的arco.design,其中约60%重构和20%新增内容,定位为从 0-1手把手实现简单的测试平台开发教程,内容将囊括基础、扩展和实战&a…

信息安全技术 健康医疗数据安全指南 付下载地址

声明 本文是学习GB-T 39725-2020 信息安全技术 健康医疗数据安全指南. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 数据使用管理办法示例 第一章 总则 第一条 为规范数据使用流程,根据国家相关法律法规及相关规定,特制定本…

imgaug Augment Polygons 对标注图片和polygons的数据增强

对于本地化进行图像的增强,大家都是非常好操作的。但是,对于标注信息一起增强,还是稍微有一些难度的,麻烦很多。 我是遇到一个数据集非常少的任务,只有40张图。就直接标记了去训练,发现几乎不拟合&#xf…

这一篇搞定Spring

文章目录 一、引言1.1 原生web开发中存在哪些问题? 二、Spring框架2.1 概念2.2 访问与下载 三、Spring架构组成四、山寨版的Spring容器4.1准备工作4.2 山寨IOC容器4.3 配置文件告诉容器 管理哪些bean4.4 相关类4.5 测试 容器 五、构建Maven项目5.1 新建项目5.2 选择…

深度强化学习——AlphaGo实例讲解(5)

现在我们来分析AlphaGo这个实例,看看深度强化学习是怎么样用来玩围棋游戏的 AlphaGo的主要设计思路: 首先是训练,要分3步来做: 1、behavior cloning:这是一种模仿学习,alphaGo模仿人类玩家,从…

STM32平衡小车 pid简单学习

自动控制系统 自动控制系统可分为开环控制系统和闭环控制系统。 1、开环控制系统开环控制系统(open-loop control system)指被控对象的输出(被控制量)对控制器(controller)的输出没有影响。在这种控制系统中,不依赖将被控量反送回来以形成任何闭环回路。 2、闭环控…

c++入门(下)

C入门(下) 对于C的基础语法的讲解,由想要实现多次重复的函数,引出宏函数和inline的内联函数的对比,对于inline的讲解和运用,在后,C语言中的NULL和C中独特的nullptr的相比两者的比较&#xff0c…

kong(4):限流配置

Kong 提供了 Rate Limiting 插件,实现对请求的限流功能,避免过大的请求量过大,将后端服务打挂。 Rate Limiting 支持秒/分/小时/日/月/年多种时间维度的限流,并且可以组合使用。例如说:限制每秒最 多 100 次请求&…

Windows Server 2012R2 安装mysql 丢失VCRUNTIME140_1.dll------亲测

无去启动此程序,因为计算机中丢失VCRUNTIME140_1.dll。尝试重新安装该程序以解决此问题。 1.解决思路 说到底还是缺少底层的依赖,先下载依赖然后安装,最后安装vc。要不然vc是安装不成功。 下载安装--一下的插件 安装过程中需要重启一次电脑。 注意:必…

Android LoaderManager AsyncTaskLoader加载全部图片RecyclerView BigImageView呈现,Java(1)

Android LoaderManager AsyncTaskLoader加载全部图片RecyclerView BigImageView呈现&#xff0c;Java&#xff08;1&#xff09; 权限&#xff1a; <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:n…