5、交叉验证

交叉验证

在本教程中,您将学习如何使用交叉验证来更好地衡量模型的性能。

本课程所需数据集夸克网盘下载链接:https://pan.quark.cn/s/9b4e9a1246b2
提取码:uDzP

文章目录

  • 1、简介
  • 2、什么是交叉验证
  • 3、什么时候应该使用交叉验证?
  • 4、举例
    • 1)加载数据集
    • 2)创建管道
    • 3)获取MAE的得分
    • 4)求取MAE的平均值
  • 5、整体代码
  • 6、总结

1、简介

机器学习是一个迭代的过程。

我们将面临使用什么预测变量、使用什么类型的模型、向这些模型提供什么参数等选择。到目前为止,您已经通过使用验证(或holdout)集来衡量模型质量以数据驱动的方式做出了这些选择。

但是,这种方法存在一些缺点。为了了解这一点,想象一下您有一个包含5000行的数据集。通常,您会将大约20%的数据保留为验证数据集,即1000行。但是这样做会在确定模型分数时留下一些随机机会。也就是说,一个模型可能在一组1000行上表现良好,即使在另一组1000行上表现不准确。

在极端情况下,您可以想象将验证集中只有1行数据。如果比较不同的模型,哪个在单个数据点上做出最好的预测将主要取决于运气!

一般来说,验证集越大,我们对模型质量的度量中随机性(即“噪声”)就越小,它就越可靠。不幸的是,我们只能通过从训练数据中删除行来获得一个大的验证集,而较小的训练数据集意味着更差的模型!

2、什么是交叉验证

在交叉验证中,我们对数据的不同子集运行建模过程,以获得模型质量的多个度量。

例如,我们可以将数据分成5个部分,每个部分占整个数据集的20%。

在这里插入图片描述

在本例中,我们将数据分成5个“折叠”。

  • 在实验1中,我们使用第一个折叠作为验证集(或holdout),其他所有内容作为训练数据。这给了我们一个基于20% holdout集的模型质量度量。
  • 在实验2中,我们持有来自第二次折叠的数据(并且使用除第二次折叠以外的所有方法来训练模型)。然后使用holdout集对模型质量进行第二次估计。
  • 我们重复这个过程,使用每一个折叠一次作为抵抗。把这个在一起,100%的数据被用作抵抗在某种程度上,我们最终得到的模型质量,是基于所有的行数据集(即使我们不同时使用所有行)。

3、什么时候应该使用交叉验证?

交叉验证为模型质量提供了更精确的度量,如果我们要做很多建模决策,这一点尤其重要。然而,它可能需要更长的时间来运行,因为它估计了多个模型(每个折叠一个)。

那么,考虑到这些权衡,我们应该在什么时候使用每种方法呢?对于小型数据集,额外的计算负担并不大,我们应该运行交叉验证。

  • 对于小型数据集,额外的计算负担并不是什么大问题,你应该运行交叉验证。
  • 对于较大的数据集,单个验证集就足够了。您的代码将运行得更快,并且您可能拥有足够的数据,因此不需要重复使用其中的一些数据。

对于什么构成了大数据集和什么构成了小数据集,没有简单的阈值。但是如果你的模型只需要几分钟或者更少的时间就能运行,那么换成交叉验证可能是值得的。

或者,你可以运行交叉验证,看看每个实验的分数是否接近。如果每个实验产生相同的结果,一个单一的验证集可能就足够了。

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

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

相关文章

【轮式平衡机器人】——软硬件配置/准备

本系列以轮式平衡移动机器人为例,将使用基于模型设计(MBD)方法进行介绍,涉及基础硬件、软件、控制算法等多方面内容,结合MATLAB/Simulink的强大仿真能力和代码生成能力辅助设计!在此过程中可以系统了解开发…

禅道下载安装

文章目录 一、禅道官网二、安装三、管理员操作四、产品操作五、项目经理操作六、测试操作七、泳道图 一、禅道官网 官网:http://www.zentao.net/ 自己用的话是:开源版 然后一直往下滑,找到windows,此处是最新版本 二、安装 本作者就用以前…

【好文翻译】JavaScript 中的 realm 是什么?

本文由体验技术团队黄琦同学翻译。 原文链接: https://weizmangal.com/2022/10/28/what-is-a-realm-in-js/ github仓库地址: https://github.com/weizman/weizman.github.io/blob/gh-pages/_posts/2020-02-02-what-is-a-realm-in-js.md 前言 作为我对…

力扣36. 有效的数独

模拟 思路: 使用三个哈希表来存储数字个数 row[r][val] 用于存储第 r 行 val 1 的个数;column[c][val] 用于存储第 c 列 val 1 的个数; subboxes[i][j][val] 用于存储第 i 行、第 j 列个小九宫格 val 1 的个数,其中&#xff1…

rust获取本地外网ip地址的方法

大家好,我是get_local_info作者带剑书生,这里用一篇文章讲解get_local_info的使用。 get_local_info是什么? get_local_info是一个获取linux系统信息的rust三方库,并提供一些常用功能,目前版本0.2.4。详细介绍地址&a…

新品发布 | 多通道总线记录仪TLog1004,是你期待的吗?

新品发布 2024年1月12日,同星智能又发布一款多通道 CAN (FD)总线、LIN 总线接口logger设备,此款产品在TLog1002基础上进行了升级,同时内置 3 路数字输入和 2 路数字输出,便于多种信号测量和系统集成。可以满…

Dubbo源码解析第一期:如何使用Netty4构建RPC

一、背景 早期学习和使用Dubbo的时候(那时候Dubbo还没成为Apache顶级项目),写过一些源码解读,但随着Dubbo发生了翻天覆地的变化,那些文章早已过时,所以现在计划针对最新的Apache Dubbo源码来进行“阅读理解…

XHCMS靶场小记(熊海)

文件包含漏洞 template下的header.php中存在文件包含漏洞(该文件被file文件夹下的多数文件进行包含) f参数可以包含任意文件通过php格式解析(这是文件包含点) 代码分析 根目录下的index.php文件;r参数用于获取包含文…

安捷伦AgilentE8363B网络分析仪

安捷伦AgilentE8363B网络分析仪 E8363B 是 Agilent 的 40 GHz 网络分析仪。网络分析仪是一种功能强大的仪器,可以以无与伦比的精度测量射频设备的线性特性。许多行业使用网络分析仪来测试设备、测量材料和监控信号的完整性 附加功能: 104 dB 的动态范围…

大数据导论(2)---大数据与云计算、物联网、人工智能

文章目录 1. 云计算1.1 云计算概念1.2 云计算的服务模式和类型1.3 云计算的数据中心与应用 2. 物联网2.1 物联网的概念和关键技术2.2 物联网的应用和产业2.3 大数据与云计算、物联网的关系 1. 云计算 1.1 云计算概念 1. 首先从商业角度给云计算下一个定义:通过网络…

升级8.0:民生手机银行的“内容解法”

数字化浪潮,滚滚来袭。 随着数字中国建设的持续推进,数字经济正在蓬勃发展。中商产业研究院分析师预测,2023年中国数字经济市场规模将增长至56.7万亿元,占GDP的比重将达到43.5%。 在此浪潮下,数字化的触角蔓延到各行…

洛谷NOIP2002 普及组 选数 +NOIP1999普及组 回文数

两道日常的练习题&#xff0c;废话不多说&#xff0c;直接上题上代码&#xff1a; 这道题目的难点在于怎样去根据一个不同的k值&#xff0c;通过代码来实现将所有符合题目要求的数字相加并且不重复的功能。下面请看代码&#xff0c;会有详细的讲解&#xff1a; #include<io…

用通俗易懂的方式讲解:选择最佳的 Embedding 和重排序模型,提升大模型 RAG 效果特别明显!

在构建检索增强生成&#xff08;RAG&#xff09;Pipeline时&#xff0c;一个关键组件是Retriever。我们有多种embedding模型可供选择&#xff0c;包括OpenAI、CohereAI和开源sentence transformers。此外&#xff0c;CohereAI和sentence transformers还提供了几个重排序器。 但…

OpenSource - 工具管理器easy-manager-tool

文章目录 功能说明运行配置环境配置启动docker部署 项目安全UI展示 Easy-Manager-Tool 打造软件行业首款集成工具&#xff0c;不管你是程序员&#xff0c;测试&#xff0c;运维等都可以使用该软件来提升自己的工作效率。 Easy-Manager-Tool 的诞生是为了解决软件行业众多参与者…

PGSQL安装PostGIS扩展模块

一、PostGIS简介 1、PostGIS介绍 PostGIS是一个空间数据库&#xff0c;空间数据库像存储和操作数据库中其他任何对象一样去存储和操作空间对象。 空间数据与数据库关联起来的三个要素&#xff1a;数据类型、索引和函数。 空间数据类型&#xff1a;用于指定图形为点&#xff0…

HBase学习五:运维排障

1、负载均衡 1.1 Rgion迁移 在当前的HBase版本中,Region迁移虽然是一个轻量级操作,但实现逻辑依然比较复杂,≈复杂性主要表现在两个方面:其一,Region迁移过程涉及多种状态的改变;其二,迁移过程中涉及Master、ZooKeeper(ZK)以及RegionServer等多个组件的相互协调。 …

11.什么档次的原型模式和我写的一样

在《生化危机》系列电影中&#xff0c;克隆人是个频频出现的话题。保护伞公司为了需求复制出另一个战力相当的战士Alice&#xff0c;不惜克隆成百上千个Alice&#xff0c;然而直到最后&#xff0c;非但没有真正克隆出另一个完美的Alice&#xff0c;就连Alice自己也被证实是保护…

SpringBoot(三层框架Controller,Mapper,Service)中遇到的一些注解整理

本文主要从Controller层,Service层,Mapper层这三层架构中记录用到的各种注解 还有一些MyBatis用到的注解 持续更新到本人的毕设做完为止,太多了太多了根本学不完哈哈哈 1.Controller层 1.1GetMapping/PostMapping/DeleteMapping/PutMapping 用于建立HTTP请求与处理方法之间的…

Go 爬虫之 colly 从入门到不放弃指南

文章目录 概要介绍如何学习官方文档如何安装快速开始如何配置调试分布式代理层面执行层面存储层面存储多收集器配置优化持久化存储启用异步加快任务执行禁止或限制 KeepAlive 连接扩展总结如果想用 GO 实现爬虫能力,该如何做呢?抽时间研究了 Go 的一款爬虫框架 colly。 概要…

Qt文件和目录相关操作

1.相关说明 QCoreApplication类、QFile类、QDir、QTemporaryDir类、QTemporaryFile类、QFileSystemWatcher类的相关函数 2.相关界面 3.相关代码 #include "dialog.h" #include "ui_dialog.h" #include <QFileDialog> #include <QTemporaryDir>…