【集成模型】Bootstrap Aggregating(Bagging)
0 - 思想
如下图所示,Bagging(Bootstrap Aggregating)的基本思想是,从训练数据集中有返回的抽象m次形成m个子数据集(bootstrapping),对于每一个子数据集训练一个基础分类器,最后将它们的结果综合起来获得最终输出。

1 - 特点
Bagging需要不同的/独立的(diverse/independent)基础模型,因此太过稳定的模型不适合这种集成方法,例如:
- KNN是稳定的
- 决策树是不稳定的,特别是未剪枝的决策树(因为对于每一份数据的拟合可能很不一样)
此外,集成模型的性能在基础模型的数量达到一定规模之后,将收敛。
2 - 随机森林(Random Forest)
一类最经典的Bagging集成模型是随机森林(Random Forest),其中通过如下两个点来确保随机性(即确保不同基础模型之间的差异性):
- 每一棵树都使用一个子数据集进行训练(a bootstrap sample of data)
- 每一个结点的最优分割加入了随机化,具体有如下三种方法
- 从全部的$m$个属性中随机选取$d$个属性,计算它们的信息增益再选择最优的分割;
- 计算$L$个随机属性的线性组合,线性组合的权重从$[-1,1]$中随机采样(这一种方法不太理解);
- 计算全部$m$个属性的信息增益,而后选择最高的$d$个属性,再从中随机选取一个属性进行分割。

3 - 总结
- Bagging的工作原理是减少预测方差
- 假设对于基础模型$i$,其预测错误的概率为$P(h_i(x)\neq f(x))=\epsilon $
- 并且取预测最多的类别最为最终结果,表示为$H(x)=sign\left(\sum_{i=1}^T h_i(x) \right )$
- 那么最终预测错误的概率可以表示为(利用Hoeffding inequality)$P(H(x)\neq f(x))=\sum_{k=0}^{\left \lfloor T/2 \right \rfloor}\binom{T}{k}(1-\epsilon)^k\epsilon^{T-k}\leq exp\left(-\frac{1}{2}T(2\epsilon-1)^2 \right )$
- Bagging很适合并行处理
简单分析预测结果,可以知道Bagging有预测错误概率的上界
【集成模型】Bootstrap Aggregating(Bagging)的更多相关文章
- Bootstrap aggregating Bagging 合奏 Ensemble Neural Network
zh.wikipedia.org/wiki/Bagging算法 Bagging算法 (英语:Bootstrap aggregating,引导聚集算法),又称装袋算法,是机器学习领域的一种团体学习算法. ...
- Ensemble Learning: Bootstrap aggregating (Bagging) & Boosting & Stacked generalization (Stacking)
Booststrap aggregating (有些地方译作:引导聚集),也就是通常为大家所熟知的bagging.在维基上被定义为一种提升机器学习算法稳定性和准确性的元算法,常用于统计分类和回归中. ...
- 集成学习—boosting和bagging异同
集成学习 集成学习通过构建并结合多个学习器来完成学习任务.只包含同种类型的个体学习器,这样的集成是“同质”的:包含不同类型的个体学习器,这样的集成是“异质”的.集成学习通过将多个学习器进行结合,常可获 ...
- 常用的模型集成方法介绍:bagging、boosting 、stacking
本文介绍了集成学习的各种概念,并给出了一些必要的关键信息,以便读者能很好地理解和使用相关方法,并且能够在有需要的时候设计出合适的解决方案. 本文将讨论一些众所周知的概念,如自助法.自助聚合(baggi ...
- 转载:bootstrap, boosting, bagging 几种方法的联系
转:http://blog.csdn.net/jlei_apple/article/details/8168856 这两天在看关于boosting算法时,看到一篇不错的文章讲bootstrap, ja ...
- bootstrap, boosting, bagging 几种方法的联系
http://blog.csdn.net/jlei_apple/article/details/8168856 这两天在看关于boosting算法时,看到一篇不错的文章讲bootstrap, jack ...
- 集成学习—boosting和bagging
集成~bagging~权值~组合~抽样~样例~基本~并行 一.简介 集成学习通过构建并结合多个学习器来完成学习任务,常可获得比单一学习器显著优越的泛化性能 根据个体学习器的生成方式,目前的集成学习方法 ...
- (转)关于bootstrap, boosting, bagging,Rand forest
转自:https://blog.csdn.net/jlei_apple/article/details/8168856 这两天在看关于boosting算法时,看到一篇不错的文章讲bootstrap, ...
- bootstrap, boosting, bagging
介绍boosting算法的资源: 视频讲义.介绍boosting算法,主要介绍AdaBoosing http://videolectures.net/mlss05us_schapire_b/ 在这个站 ...
随机推荐
- JS控制SVG缩放+鼠标控制事件
话不多说,直接上代码吧,不行你砍我... <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- Springboot简单集成ActiveMQ
Springboot简单集成ActiveMQ 消息发送者的实现 pom.xml添加依赖 <dependency> <groupId>org.springframework.bo ...
- appium 使用name 定位报错 Locator Strategy 'name' is not supported for this session
RF中使用 name定位 报错提示: Locator Strategy 'name' is not supported for this session 解决: 1. 打开本地文件 driver.js ...
- Git----基础常用的命令总结
基础常规操作 git init git clone <版本库的网址> <本地目录名> touch xxx 本地创建一个xxx的文件 git add xxx git commit ...
- 分布式版本控制工具Git
一.Git技术简介 Git是一个分布式版本控制系统,与集中式的SVN不同. 1. 主要特点 集中式特点: 所有人的资源全部保存在中央服务器. 所有人开发前都需要从中央服务器上下载同步其他人的代码才能继 ...
- TG2
1,什么滑动窗口? 2,这人讲的不行还是我的问题.. 3,搞得我都想睡觉了 4,1904,不停扫,输出最高的高度 一个差分的过程,先加上再减去,但是要维护一个最值 什么动态开点(只能用线段树并且内存很 ...
- LOJ P10149 凸多边形的划分 题解
Analysis 区间dp+压位高精 dp五分钟,高精两小时 #include<iostream> #include<cstdio> #include<cstring&g ...
- Elasticsearch原理讲透
小史是一个非科班的程序员,虽然学的是电子专业,但是通过自己的努力成功通过了面试,现在要开始迎接新生活了. 随着央视诗词大会的热播,小史开始对诗词感兴趣,最喜欢的就是飞花令的环节. 但是由于小史很久没有 ...
- Ubuntu18.04开机动画(bootsplash)安装
一.搜索喜欢的主题 1.通过软件源搜索,这个比较简单但是没有太喜欢的.-----------------------------------------------------------pipci@ ...
- 使用Keras训练神经网络备忘录
小书匠深度学习 文章太长,放个目录: 1.优化函数的选择 2.损失函数的选择 2.2常用的损失函数 2.2自定义函数 2.1实践 2.2将损失函数自定义为网络层 3.模型的保存 3.1同时保持结构和权 ...