关键词:好而不同,基学习器,Boosting,AdaBoost,Bagging,随机森林(RF),Stacking学习
8.1个体与集成
集成学习:通过构建并结合多个学习器来完成学习任务。先构建“基学习器”或“个体学习器”,再用某种策略将他们结合起来。集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能,所以基学习器也成为弱学习器,集成学习研究的核心就是如何产生并结合“好而不同”的个体学习器。(个体学习器应该“好而不同”,要有一定的“准确性”,即学习器不能太坏,并且要有多样性,之间具有差异。互为补充,才可提升效果。)
根据基学习器类型是否相同,集成学习分为同质(由同种类型的个体学习器结合—基学习器)和异质(由不同类型的个体学习器结合—个体学习器、组件学习器)。
根据个体学习器的生产方式,集成学习方法大致分为两类:
(1)个体学习器间存在强依赖关系、必须串行生成的序列化方法(Boosting)
(2)个体学习器之间不存在强依赖关系、可同时生成的并行化方法(Bagging,随机森林(RF))
8.2 Boosting
Boosting是一种可将弱学习器提升为强学习器的算法,主要思想是:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器做错的训练样本在后面受到更多关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器数目达到事先指定的值T,最终将这T个基学习器进行加权结合。
代表为AdaBoosting(《统计学习方法》上的推导和例题介绍的很详细),基本流程为:根据初始分布得到第一个基学习器f(x),对样本进行分类判别,得到错误率e——由错误率e得到基学习器的系数a——由系数a更新样本分布D,得到集成学习器G(x),由当前得到的集成学习器再去分类判别,重复进行,直至达到基学习器数目为预定数目或者分类错误率很小为止。
Boosting算法可通过“重赋权法”实施,每轮调整数据权值。对于无法接受带权样本的基学习算法,可通过“重采样法”处理,即每轮学习中,根据样本分布对训练集重新进行采样,利用重采样而得的样本集对基学习器训练。要注意,Boosting算法每轮都会都会检查当前生成的学习器是否比随机猜测(0.5)好。一旦不比其好,则当前基学习器被抛弃,学习停止。此时或许轮数还没达到,导致最终性能不好。若用的重采样法,则可重启动,避免训练过早结束,即在抛弃当前不满足条件的基学习器后,根据当前分布重新对样本采样,基于新样本重新训练,使得预设轮数完成。
从偏差/方差分解的角度,Boosting主要关注减低偏差,因此它可以基于泛化性能相当弱的学习器构建很强的集成。
集成规模:集成中包含的个体学习器数目。规模越大,分类边界越复杂,表示能力越强。
8.3 Bagging与随机森林
8.3.1 Bagging
(1)现实任务中,个体学习器无法做到完全独立,但可设法使得其具有较大差异。比如对训练集采样,生成若干个子集,每个子集训练一个基学习器。同时为了提高每个的性能,使用相互有交叉的采样子集。
(2)Bagging是并行式集成学习最著名的代表。主要思想:给定m个样本的数据集,我们先随机选出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中,这样经过m次随机采样操作,得到一个含m个样本的采样集。如上可采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将基学习器组合。使用Bagging预测时,分类任务使用简单投票法,回归任务使用简单平均法。
(3)训练一个Bagging集成与直接使用基学习器训练一个学习器的复杂度同阶,这是一个很高效的可并行的集成学习算法。与标准Adaboosting只适用于二分类任务不同,bagging能不加修改地适用于多分类、回归等任务。自助采样法给bagging带来的一个优点是:由于每个基学习器仅使用初始集中约63.2%的数据,剩余数据可作为验证集来对泛化性能进行包外估计(out-of-bag estimate)。例如当基学习器是决策树时,可使用包外样本辅助剪枝。
(4)从偏差-方差角度看,Bagging主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更加明显。
8.3.2 随机森林(Random Forest)
(1)随机森林是bagging的一个扩展变体,在以决策树为基学习器构建集成的基础上,进一步在决策树的训练过程中引入了随机属性。随机森林简单、容易实现,计算开销小,展现出强大的性能。
传统决策树在选择划分属性时是对当前结点的所有属性集合中选择一个最优属性;随机森林是对基决策树的每个结点,先从该结点的所有属性集合中随机选择一个数目为k个属性的子集,然后选择这个含有K个属性的子集中的最优属性用于划分。参数k控制了随机性的引入程度,推荐k=log(d).
(3)随机森林的起始性能往往相对较差,特别是集成中只包含一个基学习器时,主要是因为引入属性扰动(随机森林中基学习器的多样性不仅来自样本扰动,还来自属性扰动,使得最终集成的泛化性能可通过个体学习器之间差异的增加而进一步提升),RF中个体学习器的性能往往有所降低,然而随着学习器数目的增加,RF会收敛到更低的泛化误差。
随机森林的训练效率常优于bagging,因为在个体决策树构建过程中,bagging使用的是“确定的”树,在选择划分属性时要对结点的所有属性进行考察,而随机森林使用的是“随机型”决策树,只需考察一个属性子集。
8.4结合策略
(1)平均法,数值型输出
简单平均法:直接计算均值
加权平均法:各项系数和为1,各项>=0
(2)投票法,分类任务
绝对多数投票法:某标记得票过半数即预测为该类
相对多数投票法:得票最多的标记即预测为该类
加权投票法
类概率,相当于后验概率的一个估计,使用类概率的投票称为软投票。
类标记,硬投票。
参考:http://blog.csdn.net/niaolianjiulin/article/details/76560209