集成学习和Boosting原理总结

接自https://blog.csdn.net/Y_hero/article/details/88376573 bagging与随机森林。

1.集成学习

 集成学习(ensemble learing)通过构建并结合多个学习器来完成学习任务,有时也被称为多酚类器系统(multi-classifier system),基于委员会的学习(sommittee-baseslearing)等。

 以下集成学习介绍来自西瓜书;
集成学习和Boosting原理总结_第1张图片
个人感觉颇有几分卷积神经网络的味道,每个卷积核提取部分信息,逐层向上传递,但是神经网络有着很多超参数。
从上述的介绍我们可以看出,如何产生“好而不同”的个体学习器,是集成学习研究的核心。

根据个体学习器的生成方式,集成学习可分为两大类
1.个体学习器间存在强依赖关系,必须穿行生成的序列化方法(Boosting)
2.个体学习器间不存在强依赖关系,可同时生成的并行化方法(Bagging和随机森林)

也可分为如下三类:
1.用于减少方差的bagging
2.用于减少偏差的boosting
3.用于提升预测结果的stacking

集成学习有两个主要的问题需要解决:

第一是如何得到若干个个体学习器,
第二是如何选择一种结合策略,将这些个体学习器集合成一个强学习器。

目前来说,同质个体学习器的应用是最广泛的,一般我们常说的集成学习的方法都是指的同质个体学习器。而同质个体学习器使用最多的模型是CART决策树和神经网络。

2.集成学习之Boosting

集成学习和Boosting原理总结_第2张图片
  从图中可以看出,Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使得这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。

**boosting和bagging的区别在于;**是对加权后的数据利用弱分类器依次进行训练。简单来讲bagging是并行的,而boosting是串行的,初始化时根据输入训练集的各样本比例作为各样本的初始权值,然后训练一个基学习器,然后根据基学习器的效果,提升那些被误判的样本类的权值(全部样本都预测正确,则正确率为1),然后将调整后的样本集进行训练,之后的每一个基学习器都要在上一个学习器完成后并调整样本权值后才可以进行训练,因此是串行的,一个接一个训练。

boosting是一族可将弱学习器提升为强学习器的算法,这族算法的工作机制类似:

先从初始训练集训练出一个基学习器;
再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注;
基于调整后的样本分布来训练下一个基学习器;
重复进行上述步骤,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。

 Boosting系列算法里最著名算法主要有AdaBoost算法和提升树(boosting tree)系列算法。提升树系列算法里面应用最广泛的是梯度提升树(Gradient Boosting Tree)。AdaBoost和提升树算法的原理在后面的文章中会专门来讲。

3.结合策略

经过Bagging和Boosting两种不同方式集成后,紧接对各个学习器生成的结果进行处理,得出一个结果。而怎么对各个
学习器的结果进行集成处理则是结合策略,总的来说3类:
3.1平均法
3.2投票法
3.3学习法

详见https://blog.csdn.net/Y_hero/article/details/88376573。

你可能感兴趣的:(机器学习)