N折交叉验证的作用

重点放在前面:

  1. N折交叉验证有两个用途:模型评估、模型选择。
  2. N折交叉只是一种划分数据集的策略。想知道它的优势,可以拿它和传统划分数据集的方式进行比较。它可以避免固定划分数据集的局限性、特殊性,这个优势在小规模数据集上更明显。
  3. 把这种策略用于划分训练集和测试集,就可以进行模型评估;把这种策略用于划分训练集和验证集,就可以进行模型选择。
  4. 不用N折交叉验证就不能进行模型评估和模型选择了吗?当然不是。只要有测试集,就能进行模型评估;只要有验证集,就能进行模型选择。所以N折交叉验证只是在做这两件事时的一种可选的优化手段。

正文:

之前做一个深度学习项目,因为数据集很小,实验室的学长建议用交叉验证的方法来避免过拟合。但是在学习相关资料的时候,发现很多地方对于“交叉验证“的方法的说法不一致:有些说法是把数据集分成 {训练集, 验证集, 测试集},有些说法是只需要把数据集分成 {训练集, 验证集}。

实际上,交叉验证有多种用途。如果进行交叉验证的目的不一样,那么在实施交叉验证时的方法也会不一样。交叉验证的作用主要有两个:

  • 模型选择
  • 模型评估

用途一:模型选择

交叉验证最关键的作用是进行模型选择,也可以称为超参数选择

在这种情况下,数据集需要划分成训练集、验证集、测试集三部分,训练集和验证集的划分采用N折交叉的方式。很多人会把验证集和测试集搞混,如果是这种情况,必须明确地区分验证集和测试集。

  • 验证集是在训练过程中用于检验模型的训练情况,从而确定合适的超参数;
  • 测试集是在训练结束之后,测试模型的泛化能力。

具体的过程是,首先在训练集和验证集上对多种模型选择(超参数选择)进行验证,选出平均误差最小的模型(超参数)。选出合适的模型(超参数)后,可以把训练集和验证集合并起来,在上面重新把模型训练一遍,得到最终模型,然后再用测试集测试其泛化能力。

对这种类型的交叉验证比较有代表性的解释有:台大李宏毅的《机器学习》课程、李飞飞的《CS231N计算机视觉》课程等。

 台大李宏毅《机器学习》课程 Lec2 ”where does the error come from“

 

 斯坦福李飞飞《CS231N计算机视觉》课程 Lec2 ”Image Classification pipeline“

 

用途二:模型评估

交叉验证的另一个用途,就是模型是确定的,没有多个候选模型需要选,只是用交叉验证的方法来对模型的performance进行评估

这种情况下,数据集被划分成训练集、测试集两部分,训练集和测试集的划分采用N折交叉的方式。这种情况下没有真正意义上的验证集,个人感觉这种方法叫做”交叉测试“更合理...

相比于传统的模型评估的方式(划分出固定的训练集和测试集),交叉验证的优势在于:避免由于数据集划分不合理而导致的问题,比如模型在训练集上过拟合,这种过拟合不是可能不是模型导致的,而是因为数据集划分不合理造成的。这种情况在用小规模数据集训练模型时很容易出现,所以在小规模数据集上用交叉验证的方法评估模型更有优势

对这种类型的交叉验证比较有代表性的解释有:周志华《机器学习》。

 

 周志华《机器学习》

 

两种用途的关系

两种用途在本质上是一致的,模型评估可以看成是模型选择过程中的一个步骤:先对候选的每个模型进行评估,再选出评估表现最好的模型作为最终模型。

交叉验证的核心思想在于对数据集进行多次划分,对多次评估的结果取平均,从而消除单次划分时数据划分得不平衡而造成的不良影响。因为这种不良影响在小规模数据集上更容易出现,所以交叉验证方法在小规模数据集上更能体现出优势。

交叉验证与过拟合的关系

当用交叉验证进行模型选择时,可以从多种模型中选择出泛化能力最好的(即最不容易发生过拟合)的模型。从这个角度上讲,交叉验证是避免发生过拟合的手段。同样是解决过拟合的方法,交叉验证与正则化不同:交叉验证通过寻找最佳模型的方式来解决过拟合;而正则化则是通过约束参数的范数来解决过拟合。

当用交叉验证进行模型评估时,交叉验证不能解决过拟合问题,只能用来评估模型的performance。

交叉验证的优缺点

优点:获得对模型更合理更准确的评估,尤其是数据集很小时,更能体现出这个优势。

缺点:增加了计算量。

总结交叉验证的使用方法

  • 如果当前有多个候选模型,想从中选出一个最合适的模型,就可以用交叉验证的方法进行模型选择,尤其是当数据集很小时。
  • 如果当前只有一个模型,想获得对这个模型的performance最客观的评估,就可以用交叉验证的方法进行模型评估,尤其是当数据集很小时。

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

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

相关文章

高频:spring知识

1、bean的生命周期? 主要阶段 初始化 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext67424e82: startup date []; root of context hi…

数据结构:7、队列

一、队列的概念与结构 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头…

漫途桥梁结构安全监测方案,护航桥梁安全!

桥梁作为城市生命线的重要组成部分,承载着城市交通、物流输送、应急救援等重要职能。然而,随着我国社会经济的飞速发展,桥梁所承载的交通流量逐年增长,其安全性所面临的挑战亦日益严峻。例如恶劣的外部环境、沉重的荷载以及长期使…

memmove函数及其模拟实现

一、用法 memmove用于拷贝字节,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,但复制后源内容会被更改。但是当目标区域与源区域没有重叠则和memcpy函数功能相同。 二、原型&#xff1a…

Linux下安装Android Studio及创建桌面快捷方式

下载 官网地址:https://developer.android.com/studio?hlzh-cn点击下载最新版本即可 安装 将下载完成后文件,进行解压,然后进入android-studio-2023.2.1.23-linux/android-studio/bin目录下,启动studio.sh即可为了更加方便的使…

MySQL学习Day32——数据库备份与恢复

在任何数据库环境中,总会有不确定的意外情况发生,比如例外的停电、计算机系统中的各种软硬件故障、人为破坏、管理员误操作等是不可避免的,这些情况可能会导致数据的丢失、 服务器瘫痪等严重的后果。存在多个服务器时,会出现主从服…

Codeforces Round 825 D. Equal Binary Subsequences 【思维】

D. Equal Binary Subsequences 题意 给定一个长度为 2 n 2n 2n 的 01 01 01 字符串 s s s,现在需要恰好使用一次下面的操作,将其划分为相等的两个子序列 定义操作: 选择某些下标,并这些下标代表的子序列向右循环移动一位 如…

SSA-LSTM多输入分类预测 | 樽海鞘优化算法-长短期神经网络 | Matlab

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 四、完整程序下载: 一、程序及算法内容介绍: 基本内容: 本代码基于Matlab平台编译&am…

图像处理与图像分析—图像统计特性的计算(纯C语言实现灰度值显示)

根据输入的灰度图像,分别计算图像的均值、方差等统计特征,并计算图像的直方图特征并以图形方式显示图像的直方图(用C或C语言实现)。 学习将会依据教材图像处理与图像分析基础(C/C)版内容展开 在上个笔记中&…

C语言排序算法

int main() { int i; int arr[]{49,38,65,97,76,13,27,49}; int nsizeof(arr)/sizeof(arr[0]); //数据开始的排列 for(i0;i<n;i) { printf("%d ",arr[i]); } printf("\n"); //排序后 InsertSort(arr,n…

机器学习-0X-神经网络

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中神经网络算法。 本门课程的目标 完成一个特定行业的算法应用全过程&#xff1a; 懂业务会选择合适的算法数据处理算法训练算法调优算法融合 算法评估持续调优工程化接口实现 参考 机器学习定义 关于机…

GEE错误——Layer 2: Tile error: Reprojection output too large (10277x10480 pixels).

错误 Layer 2: Tile error: Reprojection output too large (10277x10480 pixels). Layer 2: Tile error: Reprojection output too large (10150x10479 pixels). Output of image computation is too large (18 bands for 3150625 pixels = 240.4 MiB > 80.0 MiB). 如果我…

Oracle P6 负浮时和必须完成日期

前言 学习过计划的人大都有这有这样的经历&#xff0c;即无论是Microsoft Project 亦或是P6见过负浮时那么 Primavera P6 计划中的负浮时是从何而来的呢&#xff0c;那么本文可能会有所帮助。 首先&#xff0c;当活动的最晚日期早于最早日期时&#xff0c;就会出现负浮时。 换…

Linux动态追踪——ftrace

目录 摘要 1 初识 1.1 tracefs 1.2 文件描述 2 函数跟踪 2.1 函数的调用栈 2.2 函数调用栈 2.3 函数的子调用 3 事件跟踪 4 简化命令行工具 5 总结 摘要 Linux下有多种动态追踪的机制&#xff0c;常用的有 ftrace、perf、eBPF 等&#xff0c;每种机制适应于不同的场…

uniapp h5 部署

uniapp 配置 服务器文件路径 打包文件结构 //nginx 配置 server {listen 8300;server_name bfqcwebsiteapp;charset utf-8;#允许跨域请求的域&#xff0c;* 代表所有add_header Access-Control-Allow-Origin *;#允许带上cookie请求add_header Access-Control-Allow-C…

docker harbor.v2.9.2搭建镜像无法下载问题解决

在通过部署docker harbor时&#xff0c;采用的是离线包的方式&#xff0c;当解压压缩包后&#xff0c;执行prepare脚本步骤中有一步是要获取prepare:v2.9.2版本镜像 结果执行脚本时报如下错误&#xff1a; Unable to find image goharbor/prepare:v2.9.2 locally 这时候我们就…

算法思想总结:二分查找算法

创作不易&#xff0c;感谢三连&#xff01;&#xff01; 一、二分查找算法思路总结 大家先看总结&#xff0c;然后再根据后面的题型去慢慢领悟 二、二分查找&#xff08;easy&#xff09; . - 力扣&#xff08;LeetCode&#xff09;二分查找 思路&#xff1a;&#xff08;模…

每日学习笔记:C++ STL 的forward_list

定义 特点 操作函数 元素查找、移除或安插 forward_list::emplace_after arg...指的是元素构造函数的参数&#xff08;0~N个&#xff09; #include <iostream> #include <memory> #include <list> #include <forward_list> using namespace std;class…

海思3516将BT1120改BT656输出大小为720*576

sample_comm_vi.c结构体 VI_DEV_ATTR_S DEV_ATTR_BT656D1_1MUX VI_DEV_ATTR_S DEV_ATTR_BT656D1_1MUX {/* interface mode */VI_MODE_BT656,/* multiplex mode */VI_WORK_MODE_1Multiplex,/* r_mask g_mask b_mask*/{0xFF0000, 0x0},//掩码根据自己实际写/* progess…

基于YOLOv8深度学习的野外火焰烟雾检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…