机器学习笔记(5)集成算法

集成算法

Ensemble method 多个学习器联合解决同一个问题 要求是:“好而不同”

对于集成算法的分类:个体学习器之间存在强烈依赖关系,必须串行生成序列化方法:Boosting;给定学习器之间不存在强依赖关系,可同时生成的并列化方法:Bagging、Random Forest

Boosting

这里其实应该把随机森林放在前面,随机森林是那种比较容易理解的“集成”,Boosting方法是一种“迭代”形式的算法,下次训练着重理解上次训练错误的样本,换句话说有点串行的意思(随机森林是并行思想)。

先对boosting做一个综述,我强烈推荐周志华老师的这个演讲。不必要求自己全部听懂,刚刚接触时有个大致的了解即可:https://www.bilibili.com/video/BV1Cs411c7Zt?from=search&seid=4041113678172647117

同时配合5年后的这篇推文:https://mp.weixin.qq.com/s/Jnh7yIOmzbTvWk77zh2-lA

两者综合来看可以透彻地了解boosting的前世今生,boosting的诞生经过了众多学者漫长而激烈的讨论,期间诞生了很多非常优雅的推论,对从事ML领域工作的人的启发一定会很大。

Adaboost

https://blog.csdn.net/guyuealian/article/details/70995333

Boosting, 也称为增强学习或提升法,是一种重要的集成学习技术, 能够将预测精度仅比随机猜度略高的弱学习器增强为预测精度高的强学习器,这在直接构造强学习器非常困难的情况下,为学习算法的设计提供了一种有效的新思路和新方法。其中最为成功应用的是,Yoav Freund和Robert Schapire在1995年提出的AdaBoost算法。

AdaBoost是英文"Adaptive Boosting"(自适应增强)的缩写,它的自适应在于:前一个基本分类器被错误分类的样本的权值会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时,在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才确定最终的强分类器。

Adaboost算法可以简述为三个步骤:
1  首先,是初始化训练数据的权值分布D1。假设有N个训练样本数据,则每一个训练样本最开始时,都被赋予相同的权值:w1=1/N。
 2  然后,训练弱分类器hi。具体训练过程中是:如果某个训练样本点,被弱分类器hi准确地分类,那么在构造下一个训练集中,它对应的权值要减小;相反,如果某个训练样本点被错误分类,那么它的权值就应该增大。权值更新过的样本集被用于训练下一个分类器,整个训练过程如此迭代地进行下去。
 3  最后,将各个训练得到的弱分类器组合成一个强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起着较大的决定作用,而降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起着较小的决定作用。换而言之,误差率低的弱分类器在最终分类器中占的权重较大,否则较小。

可以看出Adaboosting也是一个一次成型的直接计算类模型不需经过“训练”

Bagging&Random Forest

Bagging&Random Forest着重于保证“好而不同”中的“不同”。思路是从训练集中进行抽样组成基模型所需的子训练集对所有基模型预测的结果进行综合,产生最终的预测结果。

Bagging

Bagging与其说是一个算法,不如说它是这类并行集成学习的综合思想。写成一个算法的时候只使用了各种抽样方法划分数据集,然后分类任务中使用见到投票法,回归任务中使用简单平均法训练基学习器。将基学习器这部分替换为决策树就是RF

使用时(hands on ML比较偏向于实战,几乎包含了ML在实际工程中需要注意的问题)根据抽样方法的不同:Bagging:放回抽样;Pasting:不放回抽样;bootstrap_features:在特征空间内随机抽样;以及即针对样本又针对特征空间抽样。

Random Forest

样本和节点判断的特征都随机选,既添加样本扰动又添加属性扰动(这个可以这样理解,样本的扰动就是Bagging的通性,也就是通过随机抽样的方法来完成,而属性扰动是传统决策树在选择划分属性时是在整个属性集合d上进行,而RF是先从该结点的属性集合中随机抽取一个包含k个属性的子集,然后在从这个子集中选择一个最优属性用于划分,k决定了随机性的引入程度。k=d就是传统决策树的方式,一般推荐

RF算法整体很简单、容易实现、计算开销小、很多现实任务都展现了强大的性能。另外随机森林由很多颗过拟合的树组合在一起,单看每一颗树都可以是过拟合的,但是,既然是过拟合,就会拟合到非常小的细节上,因此随机森林通过引入随机性,让每一颗树拟合的细节不同,这时再把这些树组合在一起,过拟合的部分就会自动被消除掉,这也就是集成学习需要多样性的一个原因的直观解释(俞扬老师)。

当分类器数量较少时。RF表现不好;分类器数量增加,RF的泛化性能由于Bagging(这也为周老师的深度森林打下基础):https://blog.csdn.net/sinat_29819401/article/details/60160755

https://zhuanlan.zhihu.com/p/33496139

Bagging + 决策树 = 随机森林

AdaBoost + 决策树 = 提升树

Gradient Boosting + 决策树 = GBDT

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白 AI 日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值