Tempo数据挖掘模块集成学习(Ensemble Learning)是用训练一系列弱学习器,并基于组合规则整合弱学习器结果构成强学习器,进而获得比单个弱学习器更好效果的机器学习方法。集成学习的核心任务是如何训练多个弱学习器以及如何将这些弱学习器进行组合。

Tempo大数据分析平台之集成学习

 

 

 

集成学习要求弱学习器应“好而不同”,即:学习能力不能太坏,并且弱学习器要有“多样性”,其中,弱学习器的学习能力与选择的弱学习器类别以及相关参数有关,可以根据任务场景和数据情况选择尝试何种分类器作为弱学习器;在集成学习中,弱学习器的分为同质和异质两种,同质表示一个集成学习模型中的弱学习器同种类,异质则表示一个集成学习模型中的弱学习器种类不同。同质弱学习器易于表示实现而被广泛应用,那么,弱学习器的“多样性”就体现在同质而不同,一般思路是在学习过程中引入随机性,常见做法主要是对训练样本、属性、模型参数进行扰动。

²  样本不同:随机选择样本进行训练弱学习器或给样本赋值不同权重进行训练弱学习器,分别对应BaggingBoosting对样本的处理方式;

²  属性不同:随机选择属性组合进行训练弱学习器,如随机森林算法采用不同的属性和样本组合训练决策树;

²  选择不同的建模参数进行训练弱学习器,如BP神经网络模型采取不同神经元数、初始连接权值;

集成学习大致分为两大类:

²  弱学习器间存在强依赖关系,必须串行生成的序列化方法,代表:Boosting

²  弱学习器间不存在强依赖关系,可同时生成的并行化方法,代表:Bagging和随机森林(Random Forest);

1.1.   Boosting集成学习

基于Boosting方式的著名算法有AdaBoost算法、提升树算法,Tempo3.0数据挖掘分析平台集成的Boosting系列算法包括梯度提升树分类、AdaBoost分类、梯度提升树回归算法。

Tempo数据挖掘模块之集成学习算法 

Boosting算法的工作流程:

(1)     初始给训练集每一条样本赋值同一初始权重,基于初始权重的样本集训练一个弱学习器;

(2)     根据前个弱学习器在各样本误差率表现来更新训练样本的权重,对误差率高的训练样本赋值更高的权重,使得这些误差率高的点在后面的弱学习器训练中得到更多的重视;

(3)     重复步骤二,直到弱学习器数达到事先指定的数目N,最终将这N个弱学习器通过集合策略进行整合,得到最终的强学习器;

1.2.   Bagging集成学习

Bagging算法是并行式集成学习方法的代表,并行集成学习体现在首先基于初始训练集有放回的随机抽取一定比例的样本构成样本集,其次分别基于样本集并行训练多个弱学习器,由于是随机采样,每次的采样集是和原始训练集不同,采样集之间也互相不同,这样得到多个不同的弱学习器构成一个强分类器。

 Tempo数据挖掘模块之集成学习算法

Tempo3.0数据挖掘分析平台集成的Bagging算法包括Bagging回归算法和Bagging分类算法。

1.3.   随机森林

随机森林算法是bagging算法系列的特例,随机森林的弱学习器是决策树,随机森林在bagging的样本随机采样同时,也会随机选择特征。

Tempo数据挖掘 

随机森林的算法流程:

(1)     在训练数据样本集中有放回的随机抽样一个样本集;

(2)     基于步骤(1)得到的样本集构建决策树,在构建树的过程中,每一个分裂结点从整体的特征集中随机选取几个特征构建;

(3)     采取相同的分裂规则进行树构建,直到节点上的训练样本属于同一类或达到树的最大深度;

(4)     重复以上步骤,直到构建完成预设的多棵树,基于相应的组合策略实现集成学习的结果输出;

 

Tempo3.0数据挖掘分析平台集成的随机森林算法包括随机森林分类算法和随机森林回归算法。

 

1.4.   组合策略

常用的弱学习器的组合策略有:平均法、投票法和学习法。

1)平均法

在回归分析集成学习场景中,常用的结合策略是平均法,即每个弱学习器的输出进行平均得到最终的预测输出。

2)投票法

在分类分析集成学习场景中,常用的结合策略是投票法,即“少数服从多数”的原则,强分类器的输出为弱学习器预测值的众数作为输出。

3)学习法

在集成学习组合策略中,学习法是一种强大的组合策略,代表性的组合策略是StackingStacking组合策略的思想是对弱学习器的输出进行加权以进一步输出组合结果,而其中的权重由一个学习器学习得到,基于多个弱学习器的输出作为输入,由一个学习器学习得到弱学习器输出的组合权重,进而给出加权后的组合输出。

1.5.   平台应用

1Bagging

Tempo3.0平台Bagging算法基于子流程的机制实现,且一次集成学习仅支持一种弱学习器,Bagging分类算法可以拖入任意一种平台中的非集成学习分类节点,Bagging回归算法可以拖入任意一种平台中的非集成学习回归分析节点。

Tempo数据挖掘模块 

Bagging算法可配置参数包括抽样比例、模型个数、随机种子,抽样比例指弱学习器训练样本量占原始样本量的百分比,模型个数表示待训练弱学习器的个数,随机种子控制抽样的随机性。

 Tempo数据挖掘

2)随机森林算法

Tempo3.0平台基于Spark实现随机森林算法可基于分布式数据分布并行训练数据,接下来以随机森林分类为例(随机森林回归类似),其参数界面如下图所示,决策树个数即要训练弱学习器个数,最大深度指弱学习器即决策树的模型树深度,信息度量方式值指树分支字段选择的依据,特征选择指树生长时选择特征的方法,随机种子控制数据样本抽样的随机性。

 随机森林算法

3Boosting

Tempo3.0数据挖掘分析平台集成的Boosting系列算法包括梯度提升树分类、AdaBoost分类、梯度提升树回归算法,其中,梯度提升树分类、梯度提升树回归算法和上文随机森林分类算法用法及参数类似,在此不做详述,接下来介绍Tempo3.0数据挖掘分析平台AdaBoost分类。

Tempo数据挖掘模块之集成学习算法 

Tempo3.0数据挖掘分析平台AdaBoost分类基于平台逻辑回归分类算法实现,即AdaBoost分类的弱学习器为逻辑回归分类,分类器个数表示弱学习器的个数,其他参数为逻辑回归分类算法参数。