集成学习方法

这篇博文的记录思路:1、说明集成学习的定义即什么是集成学习。2、说明集成学习的分类。3、按照分类介绍。4、其他相关概念和经验的罗列。

集成学习的定义

集成学习的一般结构:先产生一组“个体学习器”,再用某种策略将他们结合起来。(“个体学习器”举例:由C4.5决策树算法、BP神经网络算法、LR、线性回归等生成的学习器。)

集成学习的分类

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

分类1:个体学习存在强依赖关系,必须串行生成序列化方法。代表是Boosting,Boosting中最著名的代表是Adaboost算法,GBDT是AdaBoost的回归版本,XGBoost是进一步的改进?(Adaboost,GBDT和XGBoost参见另外三篇blog)

分类2:个体学习器间不存在强依赖关系,可同时生成的并行化算法。代表是Bagging 和 “随机森林(Random Forest)”

分类介绍1.1——Boosting之代表Adaboost

详见另一篇blog

分类介绍1.2——GBDT

详见另一篇blog

分类介绍1.3——XGBoost

详见另一篇blog

分类介绍2.1——Bagging

对于一个包含m个样本的数据集D,直接基于自助采样法(bootstrap sampling):先随机取出一个样本放入采样集中,再把该数据放回初始数据集,使得下次采样时该样本仍有可能被选中,这样,经过m次采样操作,我们得到含m个样本的采样集,初始训练集中有的样本在采样集中多次出现,有的则从未出现(初始训练集中约有63.2%的样本出现在采样集中,详细见《西瓜书》第二章式2.1)。

这样,我们可以采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个学习器,再将这些基学习器进行结合。这就是bagging的基本流程。

分类介绍2.2——随机森林(Random Forest,简称RF)

随机森林是Bagging的一个扩展变体。RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入随机属性选择。具体来说,传统决策树在选择划分属性时是在当前结点的属性 集合(假定有d个属性)中选择一个最优属性;而在RF中,对基决策树的每个点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。这里的参数k控制了随机性的引入程度,推荐值k = logd(以2为底)

(写完这段话,想起了最早听到随机森林这句话是在2011年,当时觉得好深奥呀,估计我根本不能弄懂,就没有去学习了解。现在,回过头来想想,是多么可笑,我完全是被自己思维的墙堵在了外边。这个和跳蚤跳玻璃杯的故事何其相似!)

总结:

随机森林被誉为“代表集成学习技术水平的方法”

Bagging的多样性仅来自:样本扰动

随机森林的多样性来自:样本扰动,属性扰动

随机森林的效率常优于Bagging:因为在个体决策树的构建过程中,Bagging使用的是“确定型”的决策树,在选择划分属性是要对节点的所有属性进行考察,而随机森林使用的“随机型”决策树只要考察一个属性子集。

 

其他1——个体学习器里有两个概念:

同质(homogeneous):只包含同种类型的个体学习器。例如:“决策树集成”:个体学习器全是决策树,“神经网络集成”:个体学习器全是神经网络。有“基学习器”和“基学习算法”区别。

异质(heterogeneous):个体学习器由不同的学习算法生成。无“基学习算法”的概念,因为这组个体学习器由不同的算法生成。

集成学习器通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能(对“弱学习器”尤为明显)

其他2——要获得好的集成效果需满足2个条件:

1、个体学习器要有一定的“准确性”,即学习器不能太坏(准确率要大于50%)

2、要有多样性(diversity),即学习器间具有差异性。

总结四个字:好而不同

假设:基分类器的错误率相互独立。由Hoeffding不等式可知,集成的错误率随着分类器数目T的增大,集成的错误率将指数级下降,最终趋于零。但,在现实任务中,个体学习器是为解决同一个问题训练出来的,他们显然不可能相互独立。另:“准确性”与“多样性”在一组个体学习器中本身就是冲突的,如何产生好而不同的个体学习器,恰是集成学习的核心。

其他3——结合策略

1、简单平均、加权平均:加权平均法可认为是集成学习研究的基本出发点,对给定的基学习器,不同的集成学习方法可视为通过不同的方式来确定加权平均法中的基学习器权重。试验和应用均显示出,加权平均未必一定优于简单平均法,一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。

2、投票法:投票法分为,绝对多数投票法、相对多数投票法、加权投票法。(类标记:使用类标记投票亦称“硬投票”。类概率:使用概率投票亦称“软投票”)

3、学习法:学习法的代表是stacking?

其他4——多样性

多样性度量:参见《西瓜书》

多样性增强的方法:

1、数据样本扰动:训练样本稍加变化就会导致学习器有显著变动,数据扰动对这样“不稳定基学习器”很有效。“不稳定基学习器”:决策树、神经网络。有些对数据样本的扰动不敏感,例如:线性学习器、支持向量机、朴素贝叶斯、k近邻学习器。称为“稳定学习器”,对此类基学习器进行集成往往需要使用输入属性扰动等其他机制。

2、输入属性扰动:适用于大量冗余属性的数据,若数据只包含少量属性,或是冗余属性很少,则不宜使用输入属性扰动法。

3、输出标识扰动:“不明了”

4、算法参数扰动:随机设置不同的参数

其他5——经验

需要指出的是:使用单一学习器时通常需使用交叉验证等方法来确定参数值,这事实上已使用了不同参数训练出多个学习器,只不过最终只选择其中一个学习器进行使用,而集成学习则相当于把这些学习器都利用起来;由此可以看出,集成学习技术的实际计算开销并不比使用单一学习器大很多。

参考:

1、周志华老师的《机器学习》

你可能感兴趣的:(集成学习,bagging,boosting,Adaboost,GBDT)