bagging和boosting的区别

bagging和boosting是提高监督式学习方法准确率的两种常用的集成方法。

1、bagging

bagging即套袋法,是并行式的集成学习方法,随机森林是bagging的一种。
执行步骤:
1、从原始训练集中随机抽取小部分数据当作新的训练集。假设设定需要n个弱学习器,则需要抽取n次(放回抽样),得到n个训练集。
2、训练弱学习器。每个训练集训练出一个弱学习器,得到n个弱学习器。
3、预测。测试数据在n个弱学习器上预测,得到n个结果,分类任务通过投票方式得到最终结果,回归任务将n个结果的均值作为最终结果。

2、boosting

boosting是一种可将弱学习器提升为强学联器的算法,AdaBoost和提升树都是boosting的一种。
关于boosting的两个核心问题:

1、在每一轮训练后,如何改变训练数据的权值/概率分布?

通过提高前一个弱学习器分类错误的样本的权值,或者降低分类正确的样本权值,来使得新一个弱学习器对对误分类的样本有更好的效果。

以AdaBoost算法为例:
初始化所有数据的权值都为1,共有10个训练数据,第一个弱学习器训练数据后,有7个数据分类正确,3个数据分类错误。那么,错误为类的数据权值为 7 3 \frac{7}{3} 37,新的数据权值用于下一个弱学习器的训练,这个新权值怎么来?
为了让正确分类的权值和错误分类的权值一样,那么 3 ∗ x = 7 ∗ 1 3*x = 7*1 3x=71,解得 x = 7 3 x = \frac{7}{3} x=37

2、通过什么方式来组合弱学习器?

通过加法将弱分类器进行线性组合。

以AdaBoost算法为例:
经过不断地更新样本权重和训练新的弱学习器,得到n个弱学习器。

假设弱学习器A正确分类的权重和为7,错误分类的权重和为3,那弱学习器A的模型权重为 ln ⁡ 7 3 \ln\frac{7}{3} ln37。最后将所有弱学习器的预测结果乘以模型权重所得的结果之和作为最终的预测结果。

3、bagging和boosting的区别

baggingboosting
样本选择放回抽样全量选取
样本权重权重相等错误率大的样本权重越大
弱学习器权重权重相等准确率大的分类器权重越大
并行计算可以并行不能并行,各个分类器按顺序生成,后一个模型参数要依赖前面的模型结果

4、sklearn 中的 AdaBoost

from sklearn.ensemble import AdaBoostClassifier
from sklearn.tree import DecisionTreeClassifier

base_estimator = DecisionTreeClassifier(max_depth=2)
#base_estimator: 弱学习器使用的模型
#n_estimators: 使用的弱学习器的最大数量
model = AdaBoostClassifier(base_estimator = base_estimator, n_estimators = 4)

model.fit(x_train, y_train)
model.predict(x_test)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值