【机器学习】集成学习

一。概括

集成学习(ensemble learning),本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。可以用于分类问题集成、回归问题集成、特征选取集成、异常点检测集成等等,可以说所有的机器学习领域都可以看到集成学习的身影。


集成学习思想:对于训练集数据,通过训练若干个个体学习器,再经过一定结合策略,最终形成一个强学习器,以达到博采众长。


可以分为同质集成和异质集成。

同质集成:只包含同种类型的个体学习器,比如都是决策树个体学习器。

异质集成:包含不同类型的个体学习器。


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


同质个体学习器按照个体学习器之间是否存在依赖关系可以分为两类:

(1)个体学习器之间存在强依赖关系、必须串行生成的序列化方法。代表算法是boosting。

(2)个体学习器之间不存在强依赖关系、可同时生成的并行化方法。代表算法是bagging和随机森林。


二。boosting

工作流程:先从初试训练集训练出一个基学习器,再根据基学习器的表现对训练样本分步进行调整(比如增大其权重),使得先前基学习器做错的训练样本在后续受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。



Boosting族算法最著名的代表是AdaBoost




三。 Bagging

是并行式集成学习方法最著名的代表。基于自助采样法(有放回的抽样)。

基本流程:采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个(弱)基学习器,再将这些基学习器进行结合,从而得到最终的强学习器。


自助采样法:即对于给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集中,使得下次采样时该样本仍有可能被选中,这样经过m次随机采样操作,就能得到含m个样本的采样集。这样就防止了采样出的每个子集都完全不同,那样每个基学习器只用到了一小部分训练数据。

通常,在对预测结果进行结合时,Bagging对分类任务使用简单投票法;对回归任务使用简单平均法。

随机森林

随机森林(Random Forest,简称RF)是bagging的一个扩展变体。随机森林的基学习器都是决策树,但在bagging的样本随机采样的基础上又引入了随机属性选择。即随机森林中基学习器的多样性不仅来自样本扰动,还来自属性扰动,这就使得最终集成的泛化性能可通过个体学习器之间的差异度的增加而进一步提升。

具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假设有d个属性)中选择一个最优属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,再从这个子集中选择一个最优属性用于划分。这里参数k控制了随机性的引入程度。通常推荐k = log2 d。



随机森林的收敛性与Bagging相似,随机森林的起始性能往往相对较差,但随着个体学习器树木的增加,随机森林通常会收敛到更低的泛化误差。


四。bagging和boosting对比

bagging算法是个很高效的集成学习算法,训练一个Bagging集成与直接使用基学习算法训练一个学习器的复杂度同阶。

与标准AdaBoost只适用于二分类任务不同,Bagging算法能不经修改地用于多分类、回归等任务。

从偏差-方差分解角度看:

Bagging主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显。

Boosting主要关注减小偏差。



猜你喜欢

转载自blog.csdn.net/u014322206/article/details/78652138