针对经验风险最小化算法的过拟合的问题,给出交叉验证的方法,这个方法在做分类问题时很常用:

一:简单的交叉验证的步骤如下:

1、 从全部的训练数据 S中随机选择 中随机选择 s的样例作为训练集 train,剩余的 作为测试集 作为测试集 test。

2、 通过对测试集训练 ,得到假设函数或者模型 。
3、 在测试集对每一个样本根据假设函数或者模型,得到训练集的类标,求出分类正确率。

4,选择具有最大分类率的模型或者假设。

这种方法称为 hold -out cross validation 或者称为简单交叉验证。由于测试集和训练集是分开的,就避免了过拟合的现象

二:k折交叉验证 k-fold cross validation

1、 将全部训练集 S分成 k个不相交的子集,假设 S中的训练样例个数为 m,那么每一个子 集有 m/k 个训练样例,,相应的子集称作 {s1,s2,…,sk}。
2、每次从分好的子集中里面,拿出一个作为测试集,其它k-1个作为训练集

3、根据训练训练出模型或者假设函数。
4、 把这个模型放到测试集上,得到分类率。

5、计算k次求得的分类率的平均值,作为该模型或者假设函数的真实分类率。

这个方法充分利用了所有样本。但计算比较繁琐,需要训练k次,测试k次。

三:留一法  leave-one-out cross validation

留一法就是每次只留下一个样本做测试集,其它样本做训练集,如果有k个样本,则需要训练k次,测试k次。

留一发计算最繁琐,但样本利用率最高。适合于小样本的情况。

交叉验证(简单交叉验证、k折交叉验证、留一法)相关推荐

  1. Pytorch最简单的图像分类——K折交叉验证处理小型鸟类数据集分类2.0版本ing

    https://blog.csdn.net/hb_learing/article/details/110411532 https://blog.csdn.net/Pl_Sun/article/deta ...

  2. python交叉验证法_Python实现K折交叉验证法的方法步骤

    学习器在测试集上的误差我们通常称作"泛化误差".要想得到"泛化误差"首先得将数据集划分为训练集和测试集.那么怎么划分呢?常用的方法有两种,k折交叉验证法和自助法 ...

  3. python k折交叉验证_机器学习之K折交叉验证

    本文主题:使用 train/test split 进行模型评估的缺点 K-fold cross-validation 如何克服这些缺点 K-fold cross-validation 如何用于参数调优 ...

  4. 交叉验证方法汇总【附代码】(留一法、K折交叉验证、分层交叉验证、对抗验证、时间序列交叉验证)

    目录 交叉验证是什么? 留一验证(LOOCV,Leave one out cross validation ) LOOCC代码 验证集方法 验证集方法代码 K折交叉验证(k-fold cross va ...

  5. k折交叉验证优缺点_都说K折交叉验证最常见,你会做吗?

    在临床研究领域,大家特别希望能够未仆先知,于是临床研究者尝试去建立各种预测模型.比如,凭借孕妇的信息预测低出生体重儿的结局.怎么建立预测模型呢?常见的做法是这样的:以低出生体重儿为因变量,以相关的孕妇 ...

  6. 【技术分享】什么是K折交叉验证?

    文章目录 1.什么是训练集.验证集和测试集? 2.什么是K折交叉验证? 3.数据集划分过程 3.应用场景及注意事项 3.1.应用场景 3.2.注意事项 1.什么是训练集.验证集和测试集? 训练集,即: ...

  7. matlab-K折交叉验证与分层K折交叉验证

    文章目录 K折交叉验证有什么用? 如何实现K折交叉验证? K折交叉验证的要点:(文字版) 如何实现K折交叉验证(图片版) 如何实现K折交叉验证(matlab版) 为啥我们需要分层K折交叉验证? 如何实 ...

  8. k折交叉验证概述-附R语言实现

    因需要拿出部分数据作为测试,故总有部分数据不能用于构建模型,一种更好选择是交叉验证(简称CV).k折交叉验证是交叉验证方法中的一种(是进行模型比较的有效方法),将整体数据集分为k份(每份近似相等),其 ...

  9. 波斯顿房价(lasso、线性回归、留出法、k折交叉验证法)

    经过几天水水的学习,利用波斯顿房价数据集做了一点小小练习,并写此笔记来记录自己点滴实验心得.新手实验,望有经验人士勿喷,本人抛砖引玉,望得到宝贵建议.如今后有新的体会,则会更新笔记. 1.线性回归+留 ...

  10. 你真的会用K折交叉吗?对于K折交叉的思考 | K折交叉的坑

    本文目的: 对于K折交叉,想必大家都知道是什么原理.但是在具体实践中让你写的时候,你可能就会突然疑惑:"咦?道理我都懂,可是这个玩意儿到底怎么用." 本文就是为了探讨一下什么时候 ...

最新文章

  1. Tensorflow— tensorboard网络运行
  2. SQL_Server_2005_日期和时间函数(描述及实例)
  3. java aio事件模型_IO模型之AIO代码及其实践详解
  4. javascript创建类方法汇总(包含es6语法)
  5. map原理 java_RxJava的基本原理以及Map,flatMap的原理
  6. 实验二 网络嗅探与欺骗
  7. JVM学习笔记(一)------基本结构
  8. 【转】蓝牙技术及其系统原理
  9. 自学Python编程和科班出身的Python编程差别在哪?一张图告诉你
  10. python local global_Python 变量作用域 LEGB (上)—— Local,Global,Builtin
  11. 南阳理工acm24素数距离问题
  12. artset下载_artset绘画软件下载
  13. STM32 485通信芯片引脚应用讲解
  14. 软件测试用例设计(三)——场景法
  15. c语言第三章课后作业答案,C语言第三章习题带答案
  16. 智商高的人情商都低?這個人來告訴你
  17. 三国志9攻略如何打外族
  18. 手把手教你BCGControlBar MFC界面控件“起航”技巧(文章转载自:慧都控件网)
  19. 安卓framework层开发!给后辈的一点建议,持续更新中
  20. Python多线程遍历爬取FTP文件(附可实现源码)

热门文章

  1. 【React.js】之Redux
  2. 荣誉系统排名是整个服务器,魔兽世界怀旧服大元帅/高阶督军必备PVP荣誉系统简介...
  3. python pip安装报错_Python pip安装失败:无效命令egg_info
  4. 施工监控php系统,GitHub - hanhq1711/monitor: php开源服务器监控系统
  5. visio与word
  6. LoRa技术应用场景
  7. 基于51单片机的电压采集(ADC0804)
  8. 2022春哈工大计算机系统大作业——hello的程序人生
  9. 食蔬宝收银称重软件V1.0
  10. layDate.js