Bagging 简述

本文结构:

  • 基本流程
  • 有放回抽样的好处
  • Bagging 特点
  • sklearn 中 Bagging 使用
  • Bagging 和 Boosting 的区别

bagging:bootstrap aggregating 的缩写。 是一种并行式集成学习方法,可用于二分类,多分类,回归等任务。

基本流程:

  1. 对一个包含 m 个样本的数据集,有放回地进行 m 次随机采样,这样得到具有 m 个样本的采样集。
  2. 取 T 个这样的采样集。
  3. 每个采样集训练一个基学习器。
  4. 结合:分类任务,使用简单投票法。回归任务,使用简单平均法。

有放回抽样的好处

这种有放回抽样会有 63.2% 的样本出现在采样集中,而剩下的 36.8% 样本可以作为验证集对模型的泛化性能进行包外估计。

当基学习器是决策树时,可以用包外样本来辅助剪枝, 还可以用于估计决策树中各结点的后验概率来辅助对零训练样本结点的处理。

基学习器是神经网络时,用包外样本来辅助早期停止来减小过拟合。


Bagging 特点

Bagging 主要关注降低方差,是要降低过拟合,而不会降低偏差,因此最好不要用高偏差的模型。 在不剪枝决策树,神经网络等易受样本扰动的学习器上效用更为明显。例如当基学习器是决策树时,Bagging 是并行的生成多个决策树,此时可以不做剪枝,这样每个都是强学习器,就会有过拟合的问题,但是多个学习器组合在一起,可以降低过拟合。


scikit-learn 中 Bagging 使用例子:

from sklearn.ensemble import BaggingClassifier
from sklearn.neighbors import KNeighborsClassifier
model = BaggingClassifier(KNeighborsClassifier(), max_samples=0.5, max_features=0.5)

Bagging 和 Boosting 的区别

  1. 样本选择:Bagging 的训练集是在原始集中有放回选取的,各轮训练集之间是独立的,每个样例的权重相等;Boosting 的训练集不变,只是每个样例在分类器中的权重发生变化,错误的样本会得到更大的重视;
  2. Bagging 的预测函数没有权重之分;Boosting 的预测函数是有权重之分,效果好的函数权重大;
  3. Bagging 的各个预测函数并行产生,容易 map-reduce ,Boosting 的预测是顺序产生,后一个模型参数需要前一轮模型的结果。

学习资料: 《机器学习》 http://f.dataguru.cn/thread-301569-1-1.html http://scikit-learn.org/stable/modules/ensemble.html#bagging http://www.cnblogs.com/liuwu265/p/4690486.html http://www.jianshu.com/p/708dff71df3a


推荐阅读 历史技术博文链接汇总 http://www.jianshu.com/p/28f02bb59fe5 也许可以找到你想要的: [入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 机器学习的技术栈及应用实例脑洞

    之前写了一篇入门级的学习列表: 简单粗暴地入门机器学习 好多小伙伴觉得不太过瘾,今天补充一些脑洞! 本文结构: 机器学习技术栈 职位 项目实例 ---- 1. ...

    杨熹
  • 强化学习第2课:强化学习,监督式学习,非监督式学习的区别

    在监督式学习中,我们有数据集,还有数据对应的标签。主要的任务是要让预测值尽量接近于这些标签。

    杨熹
  • 浅谈 GBDT

    在 Xgboost 那篇文章 (Kaggle 神器 xgboost) 中提到了 Gradient Boosted Decision Trees,今天来仔细看看 ...

    杨熹
  • 【机器学习笔记之六】Bagging 简述

    本文结构: 基本流程 有放回抽样的好处 Bagging 特点 sklearn 中 Bagging 使用 Bagging 和 Boosting 的区别 ---- ...

    Angel_Kitty
  • 关于知识蒸馏,这三篇论文详解不可错过

    导语:继《从Hinton开山之作开始,谈知识蒸馏的最新进展》之后,作者对知识蒸馏相关重要进行了更加全面的总结。在上一篇文章中主要介绍了attention tra...

    AI科技大本营
  • SCI写作专题第六期:Figure图

    想象一下,流程图一放,这篇文献的研究怎么做的,就知道个大概然,实在是很有助于我们对研究过程中获得的结果的理解和掌握。

    百味科研芝士
  • 2020年面向前端开发人员的10个很棒的 JS 库

    虽然JavaScript本身很棒,但有它对应生态圈也很重要,这些圈会让 JS 更好。开发人员在开始一个新的中等项目时经常喜欢重新写轮子,这是一个糟糕的策略,使用...

    前端小智@大迁世界
  • cssjshtml vue.js v-for 过滤并排序

    vue.js computed 利用逗号实现 vue.js 先排序再过滤,关键点在于:顺序不能为先过滤再排序。

    葫芦
  • 查询每班的最高分

    week
  • pthread_cancel函数

    pthread_cancel调用并不等待线程终止,它只提出请求。线程在取消请求(pthread_cancel)发出后会继续运行,

    心跳包

扫码关注云+社区

领取腾讯云代金券