bagging与boosting的区别

bagging与boosting的区别
bagging采用自主采样方法。给定m个样本的数据集,先随机取出一个样本(每个样本的权值相等,也就是说每个样本被取出的概率相等)放入采样集中,在把该样本放回到初始数据集中,使得下次采样时该样本任有可能被选中,这样,经过多次随机采样操作,得到多个样本的采样集,初始训练集中有的样本在采样集中多次出现,有的则从未出现过。在每个采样集中训练出一个基学习器,再将这些基学习器进行组合。这些基学习器之间没有依赖关系。Bagging通常对分类任务进行简单投票法,对回归任务使用简单平均法。典型代表是随机森林。

Boosting方法:是指将弱学习器转化为强学习器的一类算法,把很多个弱学习器组合在一起,形成具有良好的泛化能力的强学习器。每个弱分类器之间存在依赖关系。由于Boosting方法将注意力集中在难分的样本上,使得它对训练样本的噪声非常敏感,会影响最终的分类性能。对于 Boosting 来说,有两个问题需要回答:

一是在每一轮如何改变训练数据的概率分布:在上一次分类错误的数据的权值会增加、而分类正确的数据的权值会减小。

二是如何将多个弱分类器组合成一个强分类器:分类错误率小的分类器对应的权值会更大,分类错误率大的分类器对应的权值会更小。

而且boosting存在一个重大的缺陷:该分类算法要求预先知道弱分类器识别准确率的下限。

典型代表是Adaboost(对boosting进行改进)。

区别:

1、样本选择上:

Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。

Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。(不改变所给的训练数据,而不断改变训练数据的权值分布,使得训练数据在弱学习器中起不同的作用)

bagging中的模型是强分类器(偏差低,方差高)。目标是降低方差。在bagging中,每个模型的bias(偏差)和variance(方差)近似相同,但是互相相关性不太高,因此一般不能降低Bias,而一定程度上能降低variance。典型的bagging是random forest。

boosting中每个模型是弱模型,偏差高,方差低。目标是通过平均降低偏差。boosting的基本思想就是用贪心法最小化损失函数,显然能降低偏差,但是通常模型的相关性很强,因此不能显著降低variance。典型的Boosting是adaboost,另外一个常用的并行Boosting算法是GBDT(gradient boosting decision tree)。这一类算法通常不容易出现过拟合。

2、样例权重:

Bagging:使用均匀取样,每个样例的权重相等。

Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。

3、预测函数:

Bagging:所有预测函数的权重相等。

Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

4、并行计算:

Bagging:各个预测函数可以并行生成。

Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。(注意XGBoost的并行不是tree粒度的并行,XGBoost也是一次迭代完才能进行下一次迭代的(第t次迭代的代价函数里包含了前面t-1次迭代的预测值)。XGBoost的并行是在特征粒度上的。我们知道,决策树的学习最耗时的一个步骤就是对特征的值进行排序(因为要确定最佳分割点),XGBoost在训练之前,预先对数据进行了排序,然后保存为block结构,后面的迭代 中重复地使用这个结构,大大减小计算量。)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值