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

交叉验证以及scikit-learn实现

交叉验证

交叉验证既可以解决数据集的数据量不够大问题,也可以解决参数调优的问题。
主要有三种方式:

  • 简单交叉验证(HoldOut检验)、
  • k折交叉验证(k-fold交叉验证)、
  • 自助法。
    本文仅针对k折交叉验证做详细解释。

简单交叉验证

方法:将原始数据集随机划分成训练集和验证集两部分。比如说,将样本按照70%~30%的比例分成两部分,70%的样本用于训练模型;30%的样本用于模型验证。
缺点
(1)数据都只被所用了一次,没有被充分利用;
(2)在验证集上计算出来的最后的评估指标与原始分组有很大关系。
在这里插入图片描述

k折交叉验证

为了解决简单交叉验证的不足,提出k-fold交叉验证。

1、首先,将全部样本划分成k个大小相等的样本子集;
2、依次遍历这k个子集,每次把当前子集作为验证集,其余所有样本作为训练集,进行模型的训练和评估;
3、最后把k次评估指标的平均值作为最终的评估指标。在实际实验中,k通常取10.

举个例子:这里取k=10,如下图所示:
(1)先将原数据集分成10份
(2)每一将其中的一份作为测试集,剩下的9个(k-1)个作为训练集
此时训练集就变成了k * D(D表示每一份中包含的数据样本数)

在这里插入图片描述
(3)最后计算k次求得的分类率的平均值,作为该模型或者假设函数的真实分类率
在这里插入图片描述
交叉验证的方式,要简单于数学理解,而且具有说服性。需要谨记一点,当样本总数过大,若使用 留一法时间开销极大

具体API和参数介绍参考原文:
参考文章: https://blog.csdn.net/weixin_42211626/article/details/100064842

http://www.lryc.cn/news/255341.html

相关文章:

  • css实现头部占一定高度,内容区占剩余高度可滚动
  • redis主从复制模式和哨兵机制
  • WebStorm:Mac/Win上强大的JavaScript开发工具
  • 传世SUN引擎如何安装
  • vue 生命周期
  • 多开工具对应用程序性能的影响与优化
  • G1 GC基本逻辑
  • nvidia安装出现7-zip crc error解决办法
  • (C语言实现)高精度除法 (洛谷 P2005 A/B Problem II)
  • 【AI】Windows环境安装GroundingDINO
  • 【Node.js】基础梳理 6 - MongoDB
  • .NET8 依赖注入
  • Ubuntu18安装(重启黑屏问题)
  • [PyTorch][chapter 4][李宏毅深度学习][Gradient Descent]
  • 利用proteus实现串口助手和arduino Mega 2560的串口通信
  • Web APIs—介绍、获取DOM对象、操作元素内容、综合案例—年会抽奖案例、操作元素属性、间歇函数、综合案例—轮播图定时器版
  • 题目:分糖果(蓝桥OJ 2928)
  • Leetcode刷题笔记——摩尔投票法
  • RabbitMq整合Springboot超全实战案例+图文演示+源码自取
  • 10-Hadoop组件开发技术
  • postman参数为D:\\audio\\test.mp3请求报错
  • 进行主从复制时出现的异常FATAL CONFIG FILE ERROR (Redis 6.2.6)Reading the configuration file
  • 611.有效的三角形个数
  • 超详细,使用JavaScript获取短信验证码
  • 利用 Python 进行数据分析实验(七)
  • 前端小技巧: 写一个异步程序示例, 使用任务队列替代promise和async/await等语法糖
  • 【Windows下】Eclipse 尝试 Mapreduce 编程
  • Python---time库
  • unity 自由框选截图(两种方法,亲测有效)
  • 项目代码规范