首页 > 试题广场 >

bagging和boosting的区别

二者的主要区别是取样方式不同。

Bagging采用均匀取样,而Boosting根据错误率来取样,因此Boosting的分类精度要优于Bagging。Bagging的训练集的选择是随机的,各轮训练集之间相互独立,而Boostlng的各轮训练集的选择与前面各轮的学习结果有关;Bagging的各个预测函数没有权重,而Boosting是有权重的;Bagging的各个预测函数可以并行生成,而Boosting的各个预测函数只能顺序生成。对于象神经网络这样极为耗时的学习方法。Bagging可通过行行训练节省大量时间开销。

bagging是减少variance,而boosting是减少bias。

Bagging 是 Bootstrap Aggregating的简称,意思就是再取样 (Bootstrap) 然后在每个样本上训练出来的模型取平均,所以是降低模型的 variance. Bagging 比如Random Forest 这种先天并行的算法都有这个效果。Boosting 则是迭代算法,每一次迭代都根据上一次迭代的预测结果对样本进行加权,所以随着迭代不断进行,误差会越来越小,所以模型的 bias 会不断降低。这种算法无法并行。

基模型的不同

Bagging中的基模型为强模型(强模型拥有低偏差高方差)。

Boosting中的基模型为弱模型,若不是弱模型会导致整体模型的方差很大。

发表于 2019-04-22 11:15:38 回复(0)
bagging是有放回的随机丑样 boosting每一轮是通过拟合前一个分类器与目标函数的负梯度来学习下一个分类器的过程 stacking把数据集划分为k个,其中k-1份作为训练集,第k份作为验证集。重复这个过程训练k个分类器。最后用所有的验证集的输出来训练最后一个分类器,得到最终分类器
发表于 2019-07-09 08:35:37 回复(0)
boosting:个体学习其中存在强依赖性,串行生成的序列化方法。具体算法是:先用数据集训练一个基学习器,然后根据基学习器的表现对训练样本分布进行调整,将分错的训练样本权重变大。基于调整后的训练集继续训练一个基学习器,直到达到基学习器的数目,最终对这些基学习器进行加权结合。
bagging:个体学习器不存在强依赖关系,可同时生成的并行化方法。对于数据集采用boostrap采样的方法,采样多个数据子集,然后基于每个数据子集训练一个基学习器,最终对于这些基学习器进行投票。
编辑于 2019-08-15 15:32:14 回复(3)