当前位置: 首页 > news >正文

机器学习之K折交叉验证

为了更好的评估机器学习训练出模型的泛化能力,即避免模型在训练集上表现良好,但在未见过的数据上表现不佳(即过拟合),同时也减少了单一训练/测试集划分带来的随机性影响。

一、什么是K折交叉验证?

1、将数据集划分成K个子集(折/Fold): 原始数据集被随机且均匀地分成K个大小近似相等的互斥子集。

2、进行K次训练和评估:

在每次迭代中,选择其中一个子集作为测试集(Validation Set)

将其余的 K-1 个子集合并起来作为训练集(Training Set)

用训练集训练模型。

用测试集评估模型的性能(例如,计算准确率、F1分数、均方误差等)。

3、计算平均性能: 重复上述过程K次,每次都选择不同的子集作为测试集。这样会得到K个性能评估结果。最终,将这K个结果取平均值,作为模型性能的最终估计。

二、常见案例

五重交叉验证,K=5 。

具体步骤如下:

1、数据划分: 将原始数据集随机分成 5个大小近似相等 的互不重叠的子集(或称为“折”)。我们称它们为 Fold 1, Fold 2, Fold 3, Fold 4, Fold 5。

2、迭代训练与评估(共进行5次):

第一次迭代:

将 Fold 1 作为测试集

将 Fold 2, Fold 3, Fold 4, Fold 5 合并作为训练集

用训练集训练模型,并在测试集(Fold 1)上评估模型性能,得到性能指标 P1。

第二次迭代:

将 Fold 2 作为测试集

将 Fold 1, Fold 3, Fold 4, Fold 5 合并作为训练集

用训练集训练模型,并在测试集(Fold 2)上评估模型性能,得到性能指标 P2。

第三次迭代:

将 Fold 3 作为测试集

将 Fold 1, Fold 2, Fold 4, Fold 5 合并作为训练集

用训练集训练模型,并在测试集(Fold 3)上评估模型性能,得到性能指标 P3。

第四次迭代:

将 Fold 4 作为测试集

将 Fold 1, Fold 2, Fold 3, Fold 5 合并作为训练集

用训练集训练模型,并在测试集(Fold 4)上评估模型性能,得到性能指标 P4。

第五次迭代:

将 Fold 5 作为测试集

将 Fold 1, Fold 2, Fold 3, Fold 4 合并作为训练集

用训练集训练模型,并在测试集(Fold 5)上评估模型性能,得到性能指标 P5。

3、最终性能估计: 将这5次得到的性能指标 P1, P2, P3, P4, P5 取平均值,即 (P1 + P2 + P3 + P4 + P5) / 5。这个平均值就是模型在未见过数据上的性能的最终估计。

三、K的选择

5折和10折交叉验证是实践中最常用的两种K值。

K值越大(例如,留一法交叉验证 LOOCVK=NN是样本总数):

每次训练集包含的样本越多,越接近原始数据集,模型评估的偏差越小。

但需要训练N次模型,计算成本非常高。

测试集只包含一个样本,评估结果的方差可能很大(不稳定)。

K值越小(例如,2折交叉验证):

训练次数少,计算速度快。

但每次训练集包含的样本较少,模型可能训练不足,评估结果的偏差可能较大。

5折交叉验证 提供了一个很好的平衡:它既不会像LOOCV那样计算成本过高,又能比简单的训练/测试划分或小K值交叉验证提供更稳定和可靠的性能估计。


文章转载自:

http://4it5f2IP.ctwwq.cn
http://F42Z6nmK.ctwwq.cn
http://EnaaSSmQ.ctwwq.cn
http://UMKFJx0Q.ctwwq.cn
http://FgIIOBXw.ctwwq.cn
http://pvca38nR.ctwwq.cn
http://i7LPDYbS.ctwwq.cn
http://J4nq3LPH.ctwwq.cn
http://vvNkKKVQ.ctwwq.cn
http://b6jEqJPX.ctwwq.cn
http://kywGzHY9.ctwwq.cn
http://clmkEsSm.ctwwq.cn
http://XZ4WTR3T.ctwwq.cn
http://IitbtMH2.ctwwq.cn
http://JYXJzjeL.ctwwq.cn
http://D38PZwOK.ctwwq.cn
http://YFKYInJi.ctwwq.cn
http://Ui6WU5AX.ctwwq.cn
http://PyFGya3Z.ctwwq.cn
http://USyJ8r4d.ctwwq.cn
http://E4KViks4.ctwwq.cn
http://KNdcgT0i.ctwwq.cn
http://mcwInqGu.ctwwq.cn
http://d1ui1VMu.ctwwq.cn
http://2NRQVLte.ctwwq.cn
http://2CiUMFhQ.ctwwq.cn
http://Lxj1scmR.ctwwq.cn
http://JhDhIXex.ctwwq.cn
http://iAaCzlLa.ctwwq.cn
http://GY0rHmtx.ctwwq.cn
http://www.dtcms.com/a/379060.html

相关文章:

  • Android Gradle Project (AGP) gradle-xxxx-src.zip无法正常下载问题解决方法
  • 图观 应用编辑器 产品介绍
  • 探讨Hyperband 等主要机器学习调优方法的机制和权衡
  • Apple产品发布会拆解:体验下放、设计极限、AI 入耳
  • 如何解决 Spring Bean 循环依赖
  • sdio NOT_AUTOGATING
  • 华为X考拉悠然 联合发布悠然智擎城市交通拥堵治理空间智能体方案
  • 《微服务事务管理》
  • CentOS 7 安装 MySQL 详细教程
  • 分布式锁解决集群下一人一单超卖问题
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘sweetviz’问题
  • @DateTimeFormat.fallbackPatterns 详解
  • 使用wavesurfer.js自定义波形绘制,集成频谱、时间轴、缩放、区域选择等插件
  • 数据库主从同步
  • leetcode27(两数之和)
  • Gradio全解11——Streaming:流式传输的视频应用(9)——使用FastRTC+Gemini创建沉浸式音频+视频的艺术评论家
  • 单片机 - I2C 总线
  • EasyExcel 实现国际化导入导出
  • 实现联邦学习客户端训练部分的示例
  • 从互联网医院系统源码到应用:智能医保购药平台的开发思路与实操经验
  • 伽马(gamma)变换记录
  • 第3节-使用表格数据-唯一约束
  • 深入浅出 C++20:新特性与实践
  • Java 面向对象三大核心思想:封装、继承与多态的深度解析
  • 蚁群算法详解:从蚂蚁觅食到优化利器
  • 星链计划 | 只赋能、不竞争!蓝卓“数智赋能·星链共生”重庆站沙龙成功举办
  • JavaScript 数组对象的属性、方法
  • vscode选择py解释器提示环境变量错误
  • 【2】标识符
  • Futuring robot旗下家庭机器人F1将于2025年面世