集成学习中boosting、bagging、随机森林算法的介绍

集成学习的概念

定义:集成学习通过构建并结合多个学习器来完成学习任务。

分类:只包含同种类型的个体学习器,这样的集成是“同质”的,例如都是神经网络或者决策树;包含不同类型的个体学习器,这样的集成是“异质”的,例如同时包括神经网络和决策树。

作用:集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能。

条件:要获得较好的集成效果,应该要求学习器“好而不同”(这也是集成学习研究的核心)。好而不同的意思是,单个学习器要有一定的“准确性”,而且学习器之间要有“多样性”。集成结果通过“投票法”得出,即“少数服从多数”(如果投票结果相同,可随机选择)。

下图体现了“好而不同”原则:图(a)中每个分类器都有66.6%的精度,但集成学习却达到了100%;图(b)中三个分类器没有区别,集成之后性能也没有提高;图(c)每个分类器只有33.3%的精度,集成之后结果更糟糕。

Bagging,Boosting,随机森林 三者的概念

根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类:

1)个体学习器间存在强大依赖关系、必须串行生成的序列化方法,代表算法:Boosting;

2)个体学习器间不存在依赖关系、可同时生成的并行化方法,代表算法Bagging和“随机森林”RF。

Boosting是一族可以将若学习器提升为强学习器的算法,代表算法为AdaBoost。该算法的工作机制:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器。如此反复进行,直至学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。

值得注意的是,Boosting算法在每一轮训练都要检查当前生成的基学习器是否满足基本条件(当前基学习器分类精度>50%),从偏差-方差的角度,Boosting主要关注降低偏差,所以Boosting基于泛化性能很弱的学习器能够造出很强的集成。

Bagging是并行式集成学习代表方法。基于“自助采样法”(bootstrap sampling)。自助采样法机制:给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下一次采样时该样本还会被采到。这样,经过m次样本采集,我们得到包含m个样本的采样集。采样集中,有的样本出现过很多次,有的没有出现过。Bagging机制:我们采样出T个含m个样本的采样集。然后基于每个采样集训练出一个学习器,再将学习器进行结合。对分类任务使用投票法,对回归任务采用平均值法。

从偏差-方差的角度,Bagging主要关注降低方差,因此它在容易受到样本扰动的学习器(如不剪枝的决策树、神经网络)中效果更明显。

AdaBoost VS Bagging:标准AdaBoost只适用于二分类任务,Bagging适用于多分类、回归等任务。

随机森林(Random Forest):以决策树为基学习器构建Bagging集成,进一步在决策树的训练过程中引入随机属性选择。传统决策树在选择划分属性的时候是在当前节点所有的属性集合中选出一个左右属性进行划分;而在RF中,对基决策树的每个节点,先从该节点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的参数k控制了随机性的引入程度。如果k=d(全部属性集),则基决策树的构建=传统决策树构建。如果k=1,基决策树每个节点随机选择一个属性进行划分。一般推荐k=log2d。

对比Bagging和Boosting

Bagging和Boosting的区别:

1)样本选择上:

Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的,子集的数量等于样本的数量。

Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。

2)样例权重:

Bagging:使用均匀取样,每个样例的权重相等

Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大.

3)预测函数:

Bagging:所有预测函数的权重相等.

Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重.

4)并行计算:

Bagging:各个预测函数可以并行生成

Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果.

对比Bagging和随机森林

1)样本选择上:

都是有放回的随机选取子集

2)个体决策树的属性:

Bagging每颗个体决策树的结点要对所有属性进行考察;

随机森林的个体决策树的结点对一部分属性进行考察;

3)泛化性能:

随着个体决策树的数量增加,Bagging和随机森林泛化性能都有所增加。

在个体决策树数量很少时,随机森林性能较差,因为只包含若干属性,但随着学习器的增加,性能很快就会变好,且强于Bagging。

猜你喜欢

转载自blog.csdn.net/qq_33221533/article/details/82079913