首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【机器学习笔记之六】Bagging 简述

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

作者头像
Angel_Kitty
发布2018-04-09 15:42:39
6000
发布2018-04-09 15:42:39
举报

本文结构:

  • 基本流程
  • 有放回抽样的好处
  • 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 使用例子:

1 from sklearn.ensemble import BaggingClassifier
2 from sklearn.neighbors import KNeighborsClassifier 
3 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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-08-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档