台大李宏毅Machine Learning 2017Fall学习笔记 (3)Bias and Variance (v2)
台大李宏毅Machine Learning 2017Fall学习笔记 (3)Bias and Variance (v2)
这节课主要讲解了训练模型的误差来源及相应的解决方案。
模型的误差主要来源于数据的Bias和Variance
Bias(偏差):描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据。
Variance(方差):描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散。
对于均值和方差的无偏估计的表达式如下面2张图中所示。具体推导此处不再赘述。
Bias和Variance反映到数据集上如下图所示,根据定义不难理解。
相对简单的模型受数据的影响更小。
相对简单的model预测的结果:large bias和small variance;
相对复杂的model预测的结果:small bias和large variance。
在model从简单到复杂的过程中,由bias导致的error会不断减小;由variance导致的error会不断增大。
当error主要源自large variance时,称为overfitting;当error主要源自large bias时,称为underfitting。
一图胜千言:
判断underfitting和overfitting。
1)如果model无法很好的拟合训练集中的数据,model的预测值有large bias。这是underfitting。
2)如果model可以很好的拟合训练集中的数据,但model在测试集中会产生很大的error,model的预测值有large variance。这是overfitting。
Large bias时怎么办?
1)重新设计model,在输入中加入更多的特征;2)设计一个更复杂的model。
Large variance时怎么办?
1)收集更多的数据,非常有效的手段,但在实际执行过程中并不总是可行。
2)Regularization(正则化)
如何选择模型?
如下图中所讲。
依据上图,我们不应该根据用Training Set训练出来的model在Testing Set上的准确率来选择model。因为用自己的Testing Data选择的model不一定在真实的Testing Data上效果也很好,通常而言效果是比较差的。
那应该怎么办呢?见下图。
方法就是把原先的Training Set分为Training Set和Validation Set两部分,根据model在validation上的误差来选择最优model。注意:不建议在得出Testing Set的误差后,再回去调整model(这样做相当于把Testing Set也当作Training Set的一部分了)。
也可以用N折交叉验证的方式选择模型,如下图所示。
原则上,少用public Testing Set来调整model,这样往往在private Testing Set上得到的结果与在public Testing Set上得到的结果差距是比较小的。
台大李宏毅Machine Learning 2017Fall学习笔记 (3)Bias and Variance (v2)相关推荐
- 台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding
台大李宏毅Machine Learning 2017Fall学习笔记 (16)Unsupervised Learning:Neighbor Embedding
- 台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction
台大李宏毅Machine Learning 2017Fall学习笔记 (14)Unsupervised Learning:Linear Dimension Reduction 本博客整理自: http ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning
台大李宏毅Machine Learning 2017Fall学习笔记 (13)Semi-supervised Learning 本博客参考整理自: http://blog.csdn.net/xzy_t ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep?
台大李宏毅Machine Learning 2017Fall学习笔记 (12)Why Deep? 本博客整理自: http://blog.csdn.net/xzy_thu/article/detail ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network
台大李宏毅Machine Learning 2017Fall学习笔记 (11)Convolutional Neural Network 本博客主要整理自: http://blog.csdn.net/x ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning
台大李宏毅Machine Learning 2017Fall学习笔记 (10)Tips for Deep Learning 注:本博客主要参照 http://blog.csdn.net/xzy_thu ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras
台大李宏毅Machine Learning 2017Fall学习笔记 (9)Keras 本节课主要讲述了如何利用Keras搭建深度学习模型.Keras是基于TensorFlow封装的上层API,看上去 ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (8)Backpropagation
台大李宏毅Machine Learning 2017Fall学习笔记 (8)Backpropagation 当网络结构很复杂时,会有大量的参数.∇L(θ)\nabla L(\theta)是百万维的向量 ...
- 台大李宏毅Machine Learning 2017Fall学习笔记 (7)Introduction of Deep Learning
台大李宏毅Machine Learning 2017Fall学习笔记 (7)Introduction of Deep Learning 最近几年,deep learning发展的越来越快,其应用也越来 ...
最新文章
- centos7.4.3 部署python-pcl亲测可用(采坑记)
- laytpl语法_layui语法基础
- 微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
- AngularJS:应用
- 笔记本电脑处理器_高通提示低成本5G芯片更强大的笔记本电脑处理器
- IOS_OC_id ,NSObject, idlt;NSObjectgt;差别
- 值得收藏的信息安全知名博客
- 在信号处理函数中调用longjmp
- 运行.AppImage文件。
- Python入门基础(8)--私有化属性和方法/Property属性/_new_方法/单例模式/错误和异常处理/Python动态添加属性和方法/_slots_属性
- mdf导入mysql navicat_Navicat如何导入sql server的MDF文件和LDF文件
- 弹窗代码大全 弹窗广告代码
- 阿里云 oss 存储临时Token访问
- 速看——揭秘“微商”的盈利模式
- solidworks2014方程式添加全局变量存在句法错误的解决方案
- web前端需要学习什么?
- Bandit算法与推荐系统
- Surface Book2 购买、使用、体验
- P4233 射命丸文的笔记
- angular8.5集成TinyMce5的使用和详细配置
热门文章
- (转自dflying chen)使用Anthem.NET 1.5中的FileUpload控件实现Ajax方式的文件上传
- 必背单词_考研英语语法如何高效自学? 真题必背单词Day12
- php管理员登陆问题,discuz论坛管理员无法登录后台的原因和解决方法
- go mockweb接口_GitHub - duxiaoman/AnyMock: 通用接口Mock平台
- html全局事件,HTML5全局属性和事件
- mysql 中文字符 函数_MySQL基础之字符函数-Go语言中文社区
- 述职答辩提问环节一般可以问些什么_陕西省高级职称评审,90%的人都“死”在答辩上?...
- 数组重组java,重组数组数组并组合相同的术语
- 使用遗传算法解决图着色问题
- Python Excel到JSON的转换