先上图:

泛化误差可表示为偏差、方差和噪声之和

偏差(bias):学习算法的期望预测与真实结果(train set)的偏离程度(平均预测值与真实值之差),刻画算法本身的拟合能力;

方差(variance):使用同规模的不同训练集进行训练时带来的性能变化(预测值与平均预测值之差的平方的期望),刻画数据扰动带来的影响;

但是这两者其实是有冲突的,这称为bias-variance trade-off。给定一个任务,我们可以控制算法的训练程度(如决策树的层数)。在训练程度较低时,拟合能力较差,因此训练数据的扰动不会让性能有显著变化,此时偏差主导泛化错误率;在训练程度较高时,拟合能力很强,以至于训练数据自身的一些特性(噪音)都会被拟合,从而产生过拟合问题,训练数据的轻微扰动都会令模型产生很大的变化,此时方差主导泛化错误率。这个我的理解也是欠拟合和过拟合之间的冲突。

举一个例子,一次打靶实验,目标是为了打到10环,但是实际上只打到了7环,那么这里面的Error就是3。具体分析打到7环的原因,可能有两方面:一是瞄准出了问题,比如实际上射击瞄准的是9环而不是10环;二是枪本身的稳定性有问题,虽然瞄准的是9环,但是只打到了7环。那么在上面一次射击实验中,Bias就是1,反应的是模型期望与真实目标的差距,而在这次试验中,由于Variance所带来的误差就是2,即虽然瞄准的是9环,但由于本身模型缺乏稳定性,造成了实际结果与模型期望之间的差距。

cross-validation,它把training set拿一部分出来验证,k-fold validation的目的就是通过对k次validation的误差求平均、观察它们的波动,来尽量避免对某个特定数据集的验证导致的过度拟合。专业术语来说,我们的目标是用CV得到的error来估计testing set的error,而我们希望这一估计比较准、波动小,也就是具有较小的bias(此处反映平均估计误差与真实误差的偏离)与variance(此处反映估计误差与真实误差的波动程度),使得该估计很准确而且很稳定。然而这时不可能的。k很大的时候使得cv的test error 估计的bias很小,variance很大。从另一个角度理解:模型的bias是可以直接建模的,只需要保证模型在训练样本上训练误差最小就可以保证bias比较小,而要达到这个目的,就必须是用所有数据一起训练,才能达到模型的最优解。因此,k-fold Cross Validation的目标函数破坏了前面的情形,所以模型的Bias一般要会增大。

参考: 链接:https://www.zhihu.com/question/27068705/answer/35151681

         《机器学习》周志华

偏差(bias)和方差(variance)及其与K折交叉验证的关系相关推荐

  1. 偏差bias与方差variance

    目录 1 含义 1.1 偏差 1.2 偏差和方差 2 期望泛化误差公式推导 3 权衡偏差与方差: 4 解决高偏差与高方差 参考 学习算法的预测误差, 或者说泛化误差(generalization er ...

  2. k折交叉验证 k-fold cross-validation

    文章目录 k折交叉验证 k值的确定 实例 使用scikit-learn进行交叉验证 交叉验证是用来评估机器学习方法的有效性的统计学方法,可以使用有限的样本数量来评估模型对于验证集或测试集数据的效果. ...

  3. 机器学习基础|K折交叉验证与超参数搜索

    文章目录 交叉验证 交叉验证的概念 K的取值 为什么要用K折交叉验证 Sklearn交叉验证API 超参数搜索 超参数的概念 超参数搜索的概念 超参数搜索的原理 Sklearn超参数搜索API 实例 ...

  4. k折交叉验证优缺点_R语言中K邻近算法的初学者指南:从菜鸟到大神(附代码&链接)...

    作者:Leihua Ye, UC Santa Barbara 翻译:陈超 校对:冯羽 本文约2300字,建议阅读10分钟 本文介绍了一种针对初学者的K临近算法在R语言中的实现方法. 本文呈现了一种在R ...

  5. python k折交叉验证,python中sklearnk折交叉验证

    python中sklearnk折交叉验证 发布时间:2018-06-10 11:09, 浏览次数:492 , 标签: python sklearnk 1.模型验证回顾 进行模型验证的一个重要目的是要选 ...

  6. Kaggle上分技巧——单模K折交叉验证训练+多模型融合

    一.K折交叉验证训练单个模型 1.1 k 折交叉验证(K-Fold Cross Validation)原理 通过对 k 个不同分组训练的结果进行平均来减少方差,因此模型的性能对数据的划分就不那么敏感, ...

  7. k折交叉验证(k-fold Cross-validation)

    一.基本概述               交叉验证是在机器学习建立模型和验证模型参数时常用的办法,一般被用于评估一个机器学习模型的表现.更多的情况下,我们也用交叉验证来进行模型选择(model sel ...

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

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

  9. python 交叉验证后获取模型_Python机器学习:6.2 K折交叉验证评估模型性能

    训练机器学习模型的关键一步是要评估模型的泛化能力.如果我们训练好模型后,还是用训练集取评估模型的性能,这显然是不符合逻辑的.一个模型如果性能不好,要么是因为模型过于复杂导致过拟合(高方差),要么是模型 ...

最新文章

  1. python dlib学习(八):训练人脸特征点检测器
  2. 中国碳酸氢钠干粉灭火剂市场产量规模与未来竞争走势研究报告2022年
  3. 关于团队发展的若干想法(欢迎讨论)
  4. Java黑皮书课后题第1章:1.4(打印表格)编写程序,显示以下表格
  5. 歌词数据解析、歌词滚动、歌词进度控制功能的实现(基于js-base64、lyric-parser、better-scroll),以vue项目为例
  6. python视频网站分类_媒资分类_Python SDK_服务端SDK_视频点播 - 阿里云
  7. 小b和排序(51Nod-2484)
  8. CAutoupdater通用 自动升级组件用户手册
  9. 深度学习笔记(6) 实践层面(一)
  10. Android BLE(1)---蓝牙通讯学习
  11. 不止 RTC 技术盛会,你还应该知道的声网给开发者的福利
  12. Jfinal weixin源码分析---碎碎念(看最后,有福利)
  13. cxonev4验证用户_欧姆龙plc编程软件下载 omron plc编程软件(CX-ONE) v4.31 中文免费版(附序列号+安装教程) 下载-脚本之家...
  14. 我的Android进阶之旅------经典的大牛博客推荐(排名不分先后)!!
  15. 123页6万字XX市新型智慧城市顶层设计方案
  16. [ESP32/ESP8266专题笔记-5] ESP8266开发板-Micropython-串口控制继电器
  17. 【解决方案】“云-端协同”打造基于安防视频云服务EasyCVR的雪亮工程监管视频平台
  18. jmeter同步定时器
  19. Java中对数组降序排列
  20. [ZJOI2009]狼和羊的故事 题解

热门文章

  1. 基于Word2vec加TextRank算法生成中文新闻摘要(附python代码)
  2. hⅰgh怎么读音发音英语_gh和ph的发音
  3. 导致Android手机崩溃的壁纸,一张壁纸导致安卓手机崩溃作者首发声:绝非故意...
  4. js如何获取中午12点的时间
  5. 门户通专访爱思网创始人韩笑:SNS网站必然走向实用化!
  6. UVALive 6678 Judging Troubles
  7. [USACO09DEC]视频游戏的麻烦Video Game Troubles(DP)
  8. 【转】谷俊丽:基于大数据的深度学习
  9. iptables屏蔽QQ与MSN
  10. 软件工程的起源与发展