5.1 方差和偏差

方差:预测结果的方差

偏差:预测结果和真实值之间的差距

需要低方差、低偏差的模型

第一项为偏差,第二项为方差

减小泛化误差

  • 减小偏差:设计更加复杂的模型,例如增加神经网络的层数、隐藏单元,Boosting、Stacking
  • 减小方差:更简单的模型,使用L1L2正则项,Bagging、Stacking
  • 减小噪音σ平方:提升数据质量

BoostingStackingBagging属于集成学习Ensemble learning

5.2 Bagging-Bootstrap AGGregatING

Bagging并行训练n个base learner,然后通过平均learner的输出(回归问题)或者多数投票(分类)进行决策。每个learner在经过Bootstrap采样的数据上进行训练。

Bootstrap采样:假设有m个训练样本,有放回地从数据中随机采样m个样本。那么大概有1-1/e≈63%的样本会被采样到,剩下的部分(未被采样到的数据out-of-bag)用于验证。

Bagging降低方差,当base learner不那么稳定的时候(例如决策树),bagging对于降低方差的效果更好。

5.3 Boosting

把多个弱模型组合在一起得到更强的模型,减小偏差

Boosting按顺序学习n个弱模型,在第i步中,训练弱模型h_i,评估它的误差;根据误差的情况重新采样数据,多关注预测不正确的样本。

经典算法:AdaBoost、Gradient Boosting

Gradient Boosting:H_t(x)表示时刻t的模型,H_1(x)=0。在时刻t=1,2,3,…时,在残差数据{(xi, yi-H_t(xi))}i=1,…,m 上训练一个新模型ht,H_(t+1)(x)=H_t(x)+θht(x),学习率θ通过收缩正则化模型。如果选择MSE作为损失函数,残差部分就等于负梯度方向。

其他Boosting算法可以通过选择不同的函数空间(损失函数)很容易地换到Gradient Boosting的框架里

GBDT:使用小一点的决策树作为base learner,降低过拟合风险

顺序建树太慢了,可以使用加速算法,如XGBoostlightGBM

5.4 Stacking(比较贵)

单层Stacking:把多个base learner组合在一起降低方差在同样的数据集上训练不同的模型,把不同模型的输出concat起来,经过全连接层得到最终的结果。

跟bagging的区别:①不需要经过Bootstrap采样 ②学习的模型是不同类型的

多层Stacking降低偏差,特别容易过拟合

降低过拟合风险的方法

  • 划分训练数据集,不同层stacking采用不同的训练集
  • 重复的k折bagging:假设有k个模型,把数据集分成k份,k-1份用于训练,1份用于验证。假设第i个模型是在第 i 块数据上做了验证,那么把第 i 个模型在第 i 块数据上的输出作为预测输出,把所有模型的预测并起来,进入到下一层进行训练。(进一步降低方差的方法:重复上述步骤n次,把n次的预测结果取平均,再进入到下一层进行训练)

Reduce

Variance

Bias

Computation cost

Parallelization

Bagging

Y

n

n

Boosting

Y

n

1

Stacking

Y

n

n

K-fold multi-level stacking

Y

Y

n*L*k

n*k

跟李沐学AI:实用机器学习 | 第五章相关推荐

  1. 李沐-斯坦福《实用机器学习》-01章

    1.课程介绍 视频链接 首先介绍了机器学习作为技术本身, 它的大致构成以及所面临的一些挑战. 然后讲述学习机器学习,你会变成什么样的角色. 最后讲述了本课程中会涉及到哪些主题. 举例:房价预测问题 工 ...

  2. 李沐-斯坦福《实用机器学习》-02章

    1.探索性数据分析 导入相关包 numpy:python中做数据分析常用的包: pandas:也是用于数据分析,擅长处理表,数据没那么大要放入内存中,这将是首选: matplotlib.pyplot: ...

  3. 【跟李沐学AI学习笔记】数据操作

    本文的来源是B站跟李沐学AI的视频. 机器学习用的最多的数据结构是N维数组.最简单的N维数组是一个0-d的标量,比如1.0,它可能表示一个物体的类别.1-d的数组称为向量,比如说[1.0, 2.7, ...

  4. 动手学深度学习在线课程-跟着李沐学AI

    动手学深度学习在线课程-跟着李沐学AI http://courses.d2l.ai/zh-v2/ 李宏毅<机器学习>中文课程(2022) https://hub.baai.ac.cn/vi ...

  5. 【深度学习】ResNet残差网络 ResidualBlock残差块实现(pytorch) | 跟着李沐学AI笔记 | ResNet18进行猫狗分类

    文章目录 前言 一.卷积的相关计算公式(复习) 二.残差块ResidualBlock复现(pytorch) 三.残差网络ResNet18复现(pytorch) 四.直接调用方法 五.具体实践(ResN ...

  6. 过拟合欠拟合模拟 || 深度学习 || Pytorch || 动手学深度学习11 || 跟李沐学AI

    昔我往矣,杨柳依依.今我来思,雨雪霏霏. ---<采薇> 本文是对于跟李沐学AI--动手学深度学习第11节:模型选择 + 过拟合和欠拟合的代码实现.主要是通过使用线性回归模型在自己生成的数 ...

  7. 深度学习笔记-[跟李沐学AI]-01引言

    DIVE INTO DEEP LEARNING 参考笔记:http://zh-v2.d2l.ai/chapter_introduction/index.html 符号 本书中使用的符号概述如下. 数字 ...

  8. 【深度学习】跟李沐学ai 线性回归 从零开始的代码实现超详解

    目录 一.引言 二.本文代码做了什么 如何利用数据集训练 三.代码实现与解析 一.导包 二.相应的函数实现 1 生成样本(数据集) 2 按批量读取数据集 3 定义模型 损失函数 算法 1 定义模型 2 ...

  9. 【斯坦福21秋(李沐)】实用机器学习(学习笔记)——1.1课程介绍

    一.概述  Industral ML:主要是讲机器学习在工业中的应用. 二.机器学习在工业界的应用 制造:预测设备是否需要维护.生产的产品质量控制等 零售:商品推荐.客服机器人.预测产品销量等 健康: ...

  10. 跟李沐学AI:实用机器学习 | 第九章

    9.1 模型调参 手动调参 从一个好的基线开始,从工具包或者论文中的设置选择起始参数. 每次调一个超参数的值,观察性能变化. 虽然SGD在参数调得好的情况下模型效果会优于Adam,但是Adam相比于S ...

最新文章

  1. 036_PageHeader页头
  2. 浅谈MVC设计模式和SSH框架的关系
  3. IOS学习笔记十九NSArray和NSMutableArray
  4. 网页版四则运算(未全部完成)
  5. 【Linux】linux ln文件夹的链接(转)
  6. c#winform演练 ktv项目 MediaPlayer控件播放音乐
  7. 割线法求解过程_浸入边界法求解流固耦合问题
  8. http://www.codeproject.com/Questions/117324/upload-file-in-c-with-HttpWebRequest
  9. MS印象-----北京.Net俱乐部8.13活动
  10. 在几何画板中如何制作圆柱的侧面展开动画_几何画板制作圆锥侧面展开图课件...
  11. GameEntity(六)—— IChat
  12. react 中加载静态word文档(或加载静态的html文件)
  13. php spider 开发文档,爬虫进阶开发——之技巧篇 - 开发PHPSpider爬虫的常用工具 - 《phpspider开发文档》 - 书栈网 · BookStack...
  14. 逻辑强化(03)真假推理 知识练习
  15. 企业如何搭建并运营好积分商城?
  16. (一)unity自带的着色器源码剖析之——————UnityShaderVariables.cginc文件
  17. 网优5g前景_5G网络优化工程师的前景和待遇
  18. #大三狗的日常总结与反思03#
  19. 跳动的心 - HTML 代码
  20. Windows CMD 检擦电脑是否被入侵[简单办法]

热门文章

  1. 遥感影像基于样本的面向对象分类方法
  2. 常用工具类(一) 身份证+姓名+手机号码验证
  3. Python计算圆的周长与面积
  4. Python,批量修改Excel的数据
  5. C语言rewind函数返回值为空,我用rewind函数没把指针直到开始,关闭文件然后打开就行。帮忙看看...
  6. 美眉都是可爱的…… (美图)
  7. 蓝色——Love is Blue
  8. 外网远程访问群晖NAS,内网穿透
  9. Android APP的签名
  10. 100行代码带你走入免费人工智能平台-百度aistudio