交叉验证--说不清道不明的故事

2023-11-10 03:59

本文主要是介绍交叉验证--说不清道不明的故事,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

“你以为你懂了,可是别人分分钟说的你哑口无言;你以为你没懂,其实你也不知道自己懂没懂。”

一、一文看懂 AI 数据集:训练集、验证集、测试集
这里对验证集的作用总结是对的,但是交叉验证的讲解我觉得是不对的,所以交叉验证的内容别看这里

二、交叉验证的种类及其优缺点

首先,讲一个注意点:
做训练的时候,数据的训练数据和验证数据集在理想情况下数据分布应该一致。
交叉验证的种类有哪些?这是一个很容易犯错的问题。其实,并不是只有常用的K折交叉验证属于这个类别,其余几类也属于这一范畴。链接一的这一部分内容整理的非常好
(1)留出法
在机器学习任务中,拿到数据后,我们首先会将原始数据集分为三部分:训练集、验证集和测试集。
训练集用于训练模型,验证集用于模型的参数选择配置,测试集对于模型来说是未知数据,用于评估模型的泛化能力。
缺点是:只做一次分割,当原始数据集比较小时,分割后数据的分布是否和原始数据集的分布相同等因素比较敏感,不同的划分会得到不同的最优模型,而且分成三个集合后,用于训练的数据更少了。
(2)K折交叉验证,其内容来源于链接一和链接三
假设有n个观测值,我们将其均分为K组。用其中K-1组来训练模型,然后用训练得到的模型对剩下的一组进行预测,并在该组上计算预测误差。因为从K组中选择K-1组有K种选择,也可以理解为这K个组都有可能成为剩下的那一个预测组。所以便会计算K次的预测误差,对这K次的预测误差平均便得到一个交叉验证误差。以上过程便称为K-fold交叉验证。
其实,“交叉验证”中的“交叉”2字的意思就是:固定数据在不同K折中的地位不一样,可能是验证集,也可能是训练集。
优点:k 折交叉验证通过对 k 个不同分组训练的结果进行平均来减少方差,因此模型的性能对数据的划分就不那么敏感。
K折交叉验证的极致是“留一法”
(3)提靴法
缺点:这样产生的训练集的数据分布和原数据集的不一样了,会引入估计偏差。
此种方法不是很常用,除非数据量真的很少。

三、交叉验证的意义

1.作用一总结:来源于链接一
多用于数据很少的场合,防止过拟合。一般做深度学习跑标准数据集的时候用不到。
(1)将所有数据多喂入模型,可以让模型从有限的数据中获取尽可能多的有效信息。
(2)做训练中,每一份数据都有机会做验证集,可以根据验证集表现发现出数据分布不一致的情况,更好的考察模型对各种新数据的表现,防止过拟和。
2. 作用二总结:来源于链接一和链接三
作用:找到合适的模型参数
在模型选择时,假设模型序列有个tuning parameter,不同的tuning parameter便确定一个模型,计算其交叉验证误差,最后选择使得交叉验证误差最小的那一个tuning parameter。这便是模型选择过程。
在这里插入图片描述

这篇关于交叉验证--说不清道不明的故事的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/380282

相关文章

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因

Java JDK Validation 注解解析与使用方法验证

《JavaJDKValidation注解解析与使用方法验证》JakartaValidation提供了一种声明式、标准化的方式来验证Java对象,与框架无关,可以方便地集成到各种Java应用中,... 目录核心概念1. 主要注解基本约束注解其他常用注解2. 核心接口使用方法1. 基本使用添加依赖 (Maven

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Spring Security中用户名和密码的验证完整流程

《SpringSecurity中用户名和密码的验证完整流程》本文给大家介绍SpringSecurity中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 首先创建了一个UsernamePasswordAuthenticationTChina编程oken对象,这是S

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四