Booststrap aggregating (有些地方译作:引导聚集),也就是通常为大家所熟知的bagging。在维基上被定义为一种提升机器学习算法稳定性和准确性的元算法,常用于统计分类和回归中。

而Boosting在维基中被定义为一种主要用来减少偏差(Bias)和同时也可降低方差(Variance)的机器学习元算法,是一个将弱学习器转化为强学习器的机器学习算法族。最初由Kearns 和 Valiant (1988,1989)提出的一个问题发展而来:Can a set of weak learners create a single strong learner? (1996年,Breiman)

Stacked generalization (stacking) (Wolpert, 1992) 是一种组合多个模型的方法,虽然是一个不错的idea,但是实际应用中不如bagging和boosting广泛。Stacking常用来组合不同类型的模型。

三者都是元算法,也都是应用在组合学习(Ensemble learning)方面的算法。

Bagging的策略:

1. 给定一个大小为d训练集D;

2. Bagging通过从D中进行可重复的均匀采样 (by sampling from D uniformly and with replacement),得到m个新的训练集Di, 每个Di的大小为n' ;

3. 将得到的m个新训练集,分布进行回归或者分类,得到m个最终的结果;

4. 由m个结果得到最终结果,对于回归:将m个结果进行平均;对于分类:将m个结果进行投票,票数多的为最终分类值。

Boosting的策略:

1. 在训练集上,训练一个弱分类器;

2. 添加一个弱分类器进行分类学习:

a. 在这个过程中,由上次的结果进行权值调整, 训练集中数据被重新加权:对错分的样本数据增加权重,对正确分类的样本数据进行降低权重(有些boosting算法会对反复被错分的样本进行降权处理,如BrownBoost和boost by majority);

b. 在权值调整后的训练集上,进行弱分类器的学习训练;

3. 迭代步骤2

Stacking的步骤如下:

1. 将训练集分成两个不想交的部分;

2. 在第一部分的训练集上训练若干个基本学习器;

3. 在第二部分的训练集上测试得到的基本学习器;

4. 使用步骤3中的预测结果作为输入,将正确的响应(responses)作为输出,训练更高级别的学习器。

步骤1到3,类似与交叉验证(cross-validation),但是不同于winner-takes-all的策略,stacking通过组合基本分类器来得到更高级的学习结果。

总结一下,组合算法(combiner algorithm)使用所有其他算法的预测作为附加输入(additional inputs)来训练得到最终的预测结果。理论上可以表示任何一种组合学习方法(ensemble techniques);实际中,单层的逻辑回归模型(single-layer logistic regression model)通常被用作组合器(combiner)。

Bagging与Boosting二者的区别:

(1)从重采样的角度:Bagging对样本进行重采样;相对的,Boosting重采样的不是样本,而是样本分布,对正确分类的样本降权,对错误分类的样本加权(而这些样本通常就是分类边界附近的样本),最后分类器是多个弱分类器的加权组合(线性叠加), AdaBoost是其中代表方法。

(2)从最终目标角度:Bagging 可以看作是提升不稳定分类器的效果;而Boosting 最终目标是提高弱分类器的分类精度。

Ensemble Learning: Bootstrap aggregating (Bagging) & Boosting & Stacked generalization (Stacking)的更多相关文章

  1. Bootstrap aggregating Bagging 合奏 Ensemble Neural Network

    zh.wikipedia.org/wiki/Bagging算法 Bagging算法 (英语:Bootstrap aggregating,引导聚集算法),又称装袋算法,是机器学习领域的一种团体学习算法. ...

  2. Ensemble Learning 之 Bagging 与 Random Forest

    Bagging 全称是 Boostrap Aggregation,是除 Boosting 之外另一种集成学习的方式,之前在已经介绍过关与 Ensemble Learning 的内容与评价标准,其中“多 ...

  3. Bagging, Boosting, Bootstrap

    Bagging 和 Boosting 都属于机器学习中的元算法(meta-algorithms).所谓元算法,简单来讲,就是将几个较弱的机器学习算法综合起来,构成一个更强的机器学习模型.这种「三个臭皮 ...

  4. 2. 集成学习(Ensemble Learning)Bagging

    1. 集成学习(Ensemble Learning)原理 2. 集成学习(Ensemble Learning)Bagging 3. 集成学习(Ensemble Learning)随机森林(Random ...

  5. 快速理解bootstrap,bagging,boosting,gradient boost-三个概念

      1 booststraping:意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统计量方差进而进行区间估计的统计方法. 其核心思想和基本步骤如下: (1 ...

  6. Jackknife,Bootstrap, Bagging, Boosting, AdaBoost, RandomForest 和 Gradient Boosting的区别

    Bootstraping: 名字来自成语“pull up by your own bootstraps”,意思是依靠你自己的资源,称为自助法,它是一种有放回的抽样方法,它是非参数统计中一种重要的估计统 ...

  7. 【集成模型】Bootstrap Aggregating(Bagging)

    0 - 思想 如下图所示,Bagging(Bootstrap Aggregating)的基本思想是,从训练数据集中有返回的抽象m次形成m个子数据集(bootstrapping),对于每一个子数据集训练 ...

  8. 第七章——集成学习和随机森林(Ensemble Learning and Random Forests)

    俗话说,三个臭皮匠顶个诸葛亮.类似的,如果集成一系列分类器的预测结果,也将会得到由于单个预测期的预测结果.一组预测期称为一个集合(ensemble),因此这一技术被称为集成学习(Ensemble Le ...

  9. 壁虎书7 Ensemble Learning and Random Forests

    if you aggregate the predictions of a group of predictors,you will often get better predictions than ...

随机推荐

  1. php ddos 安全处理代码

    <?php//查询禁止IP$ip =$_SERVER['REMOTE_ADDR'];$fileht=".htaccess2";if(!file_exists($fileht) ...

  2. 简单sql注入学习

    sql注入是什么? 所谓SQL注入,就是通过把SQL命令插入到Web表单提 交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQ ...

  3. 修改windows user 文件夹中的用户名

    假设我们需要将帐户A改名为B.首先我们需要用另一个管理员帐户C登陆系统. 1.在控制面板-〉用户帐户中将帐户A改名为B. 2.打开C:/Users或"用户"文件夹,将文件夹A重命名 ...

  4. JavaScript封装一个实用的select控件

    最近一直把精力放在项目上面,导致忽略的一些底层的东西.以前就一直觉得原有的select控件很丑,正好周末有时间,试着做了一个简单封装,实现了它的基本功能.我总结了一下,大概分为三个部分: 1.对显示样 ...

  5. python的计数引用分析(一)

    python的垃圾回收采用的是引用计数机制为主和分代回收机制为辅的结合机制,当对象的引用计数变为0时,对象将被销毁,除了解释器默认创建的对象外.(默认对象的引用计数永远不会变成0) 所有的计数引用+1 ...

  6. 数据结构之合并链表STL

    #include <iostream> #include <list> using namespace std; int main() { int n, m; while (c ...

  7. [WPF]如何调试Data Binding

    前言 在WPF开发中,将ViewModel中对象绑定到UI上时,会出现明明已经将数据对象Binding到UI,但是UI上就是不显示等等的问题.这篇博客将介绍WPF Data Binding相关的内容, ...

  8. photoshop软件应用手记

    ------------------------常用图片格式------------------------ 位图和矢量图 位图也叫点阵图,是由一个个的方形的像素点排列在一起拼接而成的,位图在放大时, ...

  9. vue.js移动端app实战4:上拉加载以及下拉刷新

    上拉加载以及下拉刷新都是移动端很常见的功能,在搜索或者一些分类列表页面常常会用到. 跟横向滚动一样,我们还是采用better-scroll这个库来实现.由于better已经更新了新的版本,之前是0.几 ...

  10. 《个人-GIT使用方法》

    使用GIT版本控制工具及基本使用方法(安装,新建,推送,拉取),托管平台的使用方法. Git 常用命令 git init here -- 创建本地仓库(repository),将会在文件夹下创建一个 ...