【数据挖掘】Bagging,Boosting,AdaBoost

小白学数据,只为记录学习进程,对每个问题有新的理解会及时更正。

一、Bagging
Bagging用于将多个基学习器集成一个相对较强的集成学习器。拿决策树当作基学习器来说,一颗树的预测能力有限,常常存在偏差和误差,使得预测不准确。这时候可以选择构造多颗决策树,通过多颗决策树的结果来判断最终的分类结果。

在构建决策树的时候,我们要尽可能使得每棵决策树之间的差异较大,如果两棵树是一样的,则没有意义了。Bagging算法在随机森林上采用两种方法来保证树与树之间差异较大:
1、采用Boostrap方法来取样本,当给我们的样本的容量是m时候,通过有放回的随机抽样,抽取k组样本,通过这k组样本,训练出k个决策树。Boostrap在训练集数据的选取上增加了随机性(降低了树与树之间的相关性),使得树与树的差异性增加
注意,每产生一组新的样本,都有月37% 的数据一直没有被采集到
在这里插入图片描述
这些没有被采集到的样本数据称为oob(out of bagging,包外数据),可以用这些数据来对训练出来的预测模型进行评估。

2、针对随机森林,Bagging算法构建每棵树的时候,并不选择所有的特征来构建树,而是选择一部分的特征。假设有M个特征,一般选取m个特征,采用无放回随机抽样,其中:
在这里插入图片描述
组合方法:
1、对于分类问题,一般采用投票法,少数服从多数,来决定预测结果
2、对于回归问题,采用加权平均值,来当作预测结果

二、Boosting
Boosting不同于Bagging的并行思想,Boosting采用串行的思想。
1.根据原始数据集,给每个样本赋予权重,第一次每个样本权重都是1/n,n为样本个数
2.根据带有权重的样本集,训练出第一个基学习器
3.计算第一个基学习器的错误率,基学习器1的权重,以及更新每个样本的权重(增大训练错误的样本的权重,减少训练正确的样本的权重,使下次的训练重点集中在训练错误的样本上)
4.根据更新权重后的样本集,训练第二个学习器
5.计算第二个基学习器的错误率,基学习器2的权重,以及更新每个样本的权重(增大训练错误的样本的权重,减少训练正确的样本的权重,使下次的训练重点集中在训练错误的样本上)
。。。。。。。。。。
重复这个步骤,直到每个样本训练正确或者学习器的数目达到预设个数为止

根据每个弱学习器的权重,组合每个弱学习器,得到最后的强学习器。

三、AdaBoost
AdaBoost是弱学习器是决策树的Boosting思想的运用。
算法步骤:
1.给每一个样本赋予权重:w = 1/n,n是样本个数
2.训练出第一个基学习器
3.计算第一个基学习器的错误率:
在这里插入图片描述
Gm(xi)表示对第i个样本的预测结果,yi表示第i个样本的真实结果,I()函数表示为:当括号里是真,则值为1,当括号里是假,则值为0。再乘上相应的权重,得到第一个学习器的错误率
4.计算第一个基学习器的权重:
在这里插入图片描述
5.更新每个样本的权重w:
在这里插入图片描述
其中:
在这里插入图片描述
6.更具更新后的数据,继续训练下一个基学习器,重复2-5的步骤,直到错误率小于某个阈值,或者基学习器的个数到达给定的数目
7.组合若干个基学习器,成为一个强学习器:
在这里插入图片描述
am是第m个基学习器的权重,Gm是第m个基学习器
8.得到最后的分类器:
在这里插入图片描述

AdaBoost算法的优缺点
优点:
1.串联每个基学习器,提高了精度
2.每个基学习器可以是异质的
3.相对于Bagging,AdaBoost考虑了每个基学习器的权重

缺点:
1.训练的基学习器的数目难以确定
2.数据不平衡,会导致精度下降
3.训练耗时,因为每次都要重新选择新的切分点

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值