交叉验证法(Cross-Validation)

  • 前言
  • 校验集方法
  • 留一法
  • k折交叉验证

前言

本篇的交叉验证法(Cross-Validation)和下篇的自助法(bootstrap)都是重采样方法(resampling methods)。重采样方法指重复地从训练集中选取数据进行拟合,以得到拟合模型的更多信息。交叉验证法可以用于评估测试误差或者选取合适的灵活度(flexibility),自助法多用于评估参数估计的准确性。本篇讲的是交叉验证法,包括校验集方法(The Validation Set Approach),留一法(Leave-One-Out Cross-Validation),k折交叉验证(k-Fold Cross-Validation)

校验集方法

交叉验证法指的是将观测数据随机地分成训练集(training set)和校验集(validation set)两部分。训练集用于拟合模型,校验集用于测试拟合模型的效果好坏。


校验集方法的优点是概念简单,容易实施。缺点主要有两点:

  1. 由于划分的随机性,校验集上得到的测试误差估计,可能会有很高的差异
  2. 只有一部分数据用于训练,可能高估测试误差。

留一法

留一法同样将观测数据分为训练集和校验集两部分,但是有两点不同:一个是只有一个数据用于校验集,其余数据用于训练集。还有一个不同是,假如有 nnn 个观测数据,留一法重复进行了 nnn 次校验集方法的操作,每次的校验集均不相同,可以得到 nnn 个 MSEMSEMSE。
用留一法得到的对测试 MSEMSEMSE 的估计可以用下式表示:
CV(n)=1n∑i=1nMSEiCV_{(n)}=\frac{1}{n}\sum_{i=1}^nMSE_iCV(n)​=n1​i=1∑n​MSEi​
留一法的优点是

  1. 采用平均,得到的偏差很小
  2. 没有不确定性,总是得到一个固定的数值

留一法的缺点是

  1. 在 nnn 很大的情况下,计算量大
  2. 在偏差方差权衡中,可能有较高的方差

k折交叉验证

k折交叉验证将观测数据随机地分成大小差不多的 kkk 组,首先将第一组作为校验集,其余 k−1k-1k−1 组作为训练集,得到一个 MSE1MSE_1MSE1​;然后将第二组作为校验集,其余 k−1k-1k−1 组作为训练集,得到一个 MSE2MSE_2MSE2​;重复操作,得到一组 MSE1,MSE2,⋯,MSEkMSE_1,MSE_2,\cdots,MSE_kMSE1​,MSE2​,⋯,MSEk​。
用k折交叉验证得到的对测试 MSEMSEMSE 的估计可以用下式表示:
CV(n)=1k∑i=1kMSEiCV_{(n)}=\frac{1}{k}\sum_{i=1}^kMSE_iCV(n)​=k1​i=1∑k​MSEi​
可以看到,留一法是 k=nk=nk=n 的特殊情况。实际问题中,kkk通常选取为 555或者 101010 。
k折交叉验证的优点是

  1. 便于计算
  2. 在偏差方差权衡中,方差较小

ISLR读书笔记八:交叉验证法(Cross-Validation)相关推荐

  1. 【超参数寻优】交叉验证(Cross Validation)超参数寻优的python实现:多参数寻优

    [超参数寻优]交叉验证(Cross Validation)超参数寻优的python实现:多参数寻优 一.网格搜索原理 二.网格搜索+交叉验证用于多参数寻优的python实现 1.训练模型及待寻优参数 ...

  2. R语言构建xgboost模型:交叉验证(cross validation)训练xgboost模型,配置自定义的损失函数评估函数并使用交叉验证训练xgboost模型

    R语言构建xgboost模型:交叉验证(cross validation)训练xgboost模型,配置自定义的损失函数(loss function).评估函数(evaluation function) ...

  3. R语言构建xgboost模型:交叉验证(cross validation)训练xgboost模型

    R语言构建xgboost模型:交叉验证(cross validation)训练xgboost模型 目录

  4. python可视化多个机器学习模型在训练集(train set)上交叉验证(cross validation)的AUC值、可视化模型效能

    python可视化多个机器学习模型在训练集(train set)上交叉验证(cross validation)的AUC值.可视化模型效能 # 所有的模型中填写的参数都是通过randomsearchcv ...

  5. R使用交叉验证(cross validation)进行机器学习模型性能评估

    R使用交叉验证(cross validation)进行机器学习模型性能评估 目录 R使用交叉验证(cross validation)进行机器学习模型性能评估

  6. 交叉验证(cross validation)是什么?K折交叉验证(k-fold crossValidation)是什么?

    交叉验证(cross validation)是什么?K折交叉验证(k-fold crossValidation)是什么? 交叉验证(cross validation)是什么?  交叉验证是一种模型的验 ...

  7. Keras训练神经网络进行分类并进行交叉验证(Cross Validation)

    Keras训练神经网络进行分类并进行交叉验证(Cross Validation) 交叉验证是在机器学习建立模型和验证模型参数时常用的办法.交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切 ...

  8. 通过交叉验证(Cross Validation)KFold绘制ROC曲线并选出最优模型进行模型评估、测试、包含分类指标、校准曲线、混淆矩阵等

    通过交叉验证(Cross Validation,CV)KFold绘制ROC曲线并选出最优模型进行模型评估.测试.包含分类指标.校准曲线.混淆矩阵等 Cross Validation cross val ...

  9. 【超参数寻优】交叉验证(Cross Validation)超参数寻优的python实现:单一参数寻优

    [超参数寻优]交叉验证(Cross Validation)超参数寻优的python实现:单一参数寻优 一.交叉验证的意义 二.常用的交叉验证方法 1.Hold one method 2.K-flod ...

最新文章

  1. openstack对比其他有什么优点
  2. win上mysql忘记root密码_MySQL数据库之windows下mysql忘记root密码的解决方法
  3. python 出现 AttributeError: matplotlib‘ object has no attribute ‘to_rgba‘
  4. HDUOJ----4501小明系列故事——买年货(三维背包)
  5. 技术人必备的碎片化时间学习工具
  6. linux下make 文件写法之简单函数调用
  7. java邮件附件名称乱码_Javamail 中附件中文名字乱码祥解 (转)
  8. Android开发笔记(一百五十三)OpenGL绘制三维图形的流程
  9. 使用微博提供的API接口发送微博
  10. web前端开发技术实验与实践(第三版)储久良编著 项目14 设计中国教育网络杂志简介
  11. 只要还在路上前行着的,那都是一个个闪闪发光惹人爱的人啊
  12. 1.17 用Laplace变换解常微分方程
  13. 专利代理人的真实工作状况
  14. 企业私有云搭建与作用
  15. oracle+suspend+参数,oracle数据库的挂起(Suspending)和恢复(Resuming)
  16. html绘图插件,canvas,svg,vml绘图插件
  17. 魔兽3的地图脚本文件简单分析图
  18. (转)活灵活现用Git--基础篇
  19. win10显示未连接到网络,但是任然可以上网
  20. 从0到一开发微信小程序(5)—小程序WXML

热门文章

  1. 绕过云盾找真实IP-找真实IP-绕过CDN
  2. Windows取证——登录过的用户名、新建的用户名和访问的网址文件(墨者学院)
  3. 雅思听力地图题常用词汇及技巧
  4. 阿里 weex android,Android Weex容器指南
  5. C语言复习:三个循环定义及形式
  6. 在现代意义上的电子计算机还未出现,2013年青海政法干警笔试真题解析:言语分析(7)...
  7. 百度CFO王湛生死亡原因,因抢救妻女逝世
  8. android65535错误实现,Android 解决65535的限制(官网推荐方法)
  9. mysql只能导出65535条,Mysql报Rowsizetoolarge65535的原因及解决方法
  10. 6月5日 历史上的大事记