1、第第7章章 集成学习集成学习n熟悉熟悉Bagging与与Boosting集成学习方法的基本思想,以及两者集成学习方法的基本思想,以及两者的异同点。的异同点。n熟悉基学习器的组合策略。熟悉基学习器的组合策略。n掌握掌握AdaBoost、梯度提升决策树(、梯度提升决策树(GBDT)、随机森林的工)、随机森林的工作原理。作原理。n熟悉熟悉AdaBoost、GBDT、随机森林的优缺点及适用场合。、随机森林的优缺点及适用场合。n了解随机森林和了解随机森林和GBDT模型的区别。模型的区别。本章学习目标本章学习目标n7.1 集成学习概述集成学习概述n7.2 AdaBoost算法算法n7.3 梯度提升决策树(
2、梯度提升决策树(GBDT)n7.4 随机森林和极端随机树随机森林和极端随机树第第7章章 集成集成学习学习n集成学习集成学习算法的发展过程算法的发展过程n1979年,年,Dasarathy和和 Sheela首次提出集成学习思想。首次提出集成学习思想。n1990年,年,Hansen 和和 Salamon 展示了一种基于神经网络的集成展示了一种基于神经网络的集成模型,该集成模型具有更低的方差和更好的泛化能力。模型,该集成模型具有更低的方差和更好的泛化能力。n1990年,年,Schapire证明了通过证明了通过 Boosting 方法可以将弱分类器方法可以将弱分类器组合成一个强分类器。此后,集成学习研
3、究得到迅猛发展,组合成一个强分类器。此后,集成学习研究得到迅猛发展,出现了许多新颖的思想和模型。出现了许多新颖的思想和模型。n1995年,年,Freund 和和 Schapire提出了提出了 AdaBoost算法。算法。n1996年,年,Breiman提出了提出了 Bagging 算法,该算法从另一个角度算法,该算法从另一个角度对基学习器进行组合。对基学习器进行组合。n2001年,年,Breiman提出了随机森林算法。提出了随机森林算法。n7.1 集成学习概述集成学习概述n集成学习集成学习的的基本框架基本框架7.1 集成学习概述集成学习概述n集成学习需要解决集成学习需要解决的的主要问题主要问题
4、n如何如何训练得到若干个个体学习器?训练得到若干个个体学习器?n如何如何选择一种选择一种组合策略组合策略将这些个体学习器进行组合构成一个将这些个体学习器进行组合构成一个强学习器?强学习器?7.1 集成学习概述集成学习概述n集成集成学习学习方法分类方法分类n基于基于Boosting(提升)的方法(提升)的方法:n基于基于Bagging(装袋)的方法(装袋)的方法:7.1 集成学习概述集成学习概述AdaBoost梯度提升决策树(梯度提升决策树(GBDT)XGBoost(eXtreme Gradient Boosting)LightGBM随机森林(随机森林(Random Forest)极端随机树(极
5、端随机树(Extremely randomized trees,Extra-Trees)n7.1.1 Boosting7.1 集成学习概述集成学习概述n提出问题提出问题:n强学习算法强学习算法:准确率很高的学习算法准确率很高的学习算法n弱学习算法弱学习算法:准确率不高,仅比随机猜测略好准确率不高,仅比随机猜测略好n是否可以将弱学习算法提升为强学习算法?是否可以将弱学习算法提升为强学习算法?n基本思想:基本思想:n每个样本都赋予一个权重每个样本都赋予一个权重nT次迭代,每次迭代后,对分类错误的样本加大权重,次迭代,每次迭代后,对分类错误的样本加大权重,使得下一次的迭代更加关注这些样本。使得下一次
6、的迭代更加关注这些样本。nAdaBoostnAdaBoost.M1nAdaBoost.M2nn7.1.1 Boosting7.1 集成学习概述集成学习概述n7.1.2 Bagging7.1 集成学习概述集成学习概述n基本思想:基本思想:对原始训练样本集采用自助随机采样(对原始训练样本集采用自助随机采样(Boostrap Sampling)法(即有放回地随机采样),产生)法(即有放回地随机采样),产生 个新的训练个新的训练样本子集,以此分别训练样本子集,以此分别训练 个基学习器,最后采用某种组合个基学习器,最后采用某种组合策略集成为强学习器。策略集成为强学习器。n7.1.2 Bagging7.1
7、 集成学习概述集成学习概述n7.1.3 Boosting 和和 Bagging的比较的比较7.1 集成学习概述集成学习概述n训练子集的训练子集的选择选择nBoosting:训练子集的选择不是独立的,在每一轮迭代过程中,训练子集的选择不是独立的,在每一轮迭代过程中,对训练基学习器所用的训练子集的选择都与前一个基学习器的预对训练基学习器所用的训练子集的选择都与前一个基学习器的预测结果测结果有关有关。nBagging:训练训练子集的选择是独立的,采用自助随机采样法从原始子集的选择是独立的,采用自助随机采样法从原始训练样本集中有放回地选取训练样本集中有放回地选取。n基学习器之间的依赖性基学习器之间的依
8、赖性nBoosting:各个基学习器之间存在依赖性,只能串行依次训练基各个基学习器之间存在依赖性,只能串行依次训练基学习器学习器。nBagging:各个各个基学习器之间不存在依赖性基学习器之间不存在依赖性,可以,可以并行训练基学并行训练基学习器。习器。n7.1.3 Boosting 和和 Bagging的比较的比较7.1 集成学习概述集成学习概述n基基学习器的组合方式学习器的组合方式nBoosting:采用线性加权方式进行组合,每个基学习器都有相应采用线性加权方式进行组合,每个基学习器都有相应的权重,对于错误率小的基学习器会有更大的权重的权重,对于错误率小的基学习器会有更大的权重。nBaggi
9、ng:对于分类问题,通常使用简单投票对于分类问题,通常使用简单投票法;法;对于回归问题,对于回归问题,通常使用简单通常使用简单平均法。平均法。n偏差偏差-方差方差nBoosting:基学习器通常选择具有高偏差、低方差的弱学习基学习器通常选择具有高偏差、低方差的弱学习器器。nBagging:基学习器通常基学习器通常选择具有低偏差、高方差的选择具有低偏差、高方差的弱学习弱学习器。器。n7.1 集成学习概述集成学习概述n7.2 AdaBoost算法算法n7.3 梯度提升决策树(梯度提升决策树(GBDT)n7.4 随机森林和极端随机树随机森林和极端随机树第第7章章 集成集成学习学习7.2 AdaBoo
10、st算法算法nAdaBoost是是Adaptive Boosting的缩写的缩写nAdaboost是一种迭代算法,其是一种迭代算法,其核心思想核心思想是针对同一个训练集训练是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱不同的分类器(弱分类器),然后把这些弱分类器分类器组合组合(boost)起来起来,构成一个更强的最终分类器(强分类器)。,构成一个更强的最终分类器(强分类器)。nAdaBoost算法中不同的训练集是通过调整每个样本对应的权重来算法中不同的训练集是通过调整每个样本对应的权重来实现的。开始时,每个样本对应的权重是相同的实现的。开始时,每个样本对应的权重是相同的,在此,在
11、此样本分布样本分布下训练出下训练出一个弱一个弱分类器。分类器。对于分类错误的样本,加大其对应的权对于分类错误的样本,加大其对应的权重;而对于分类正确的样本,降低其权重重;而对于分类正确的样本,降低其权重,这样分错的样本就被,这样分错的样本就被突显出来,从而得到一个新的样本分布。在新的样本分布下,突显出来,从而得到一个新的样本分布。在新的样本分布下,再再次训练出次训练出一一个弱个弱分类器。依次类推,经过分类器。依次类推,经过T次循环,得到次循环,得到T个弱分个弱分类器,把这类器,把这T个弱分类器按一定的个弱分类器按一定的权重组合起来权重组合起来,得到,得到最终的最终的强分强分类器。类器。7.2
12、AdaBoost算法算法nAdaBoost算法步骤算法步骤n初始化初始化训练样本的训练样本的权权重重分布分布,每个样本具有相同权重;,每个样本具有相同权重;n训练训练一个一个弱弱分类器,如果样本分类正确,则在构造下一个训练集分类器,如果样本分类正确,则在构造下一个训练集中,它的中,它的权权重重就就会被降低;会被降低;反之反之,提高样本提高样本的权的权重重。n用用更新过的样本集去训练下一更新过的样本集去训练下一个个弱弱分类器分类器;n各个各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,降低分类误差率大的弱分类器的的权重,降低分类
13、误差率大的弱分类器的权重权重;n将所有弱分类组合成强将所有弱分类组合成强分类器。分类器。弱分类器弱分类器1提高权重提高权重弱分类器弱分类器3提高权重提高权重弱分类器弱分类器2强分类器强分类器7.2 AdaBoost算法算法7.2 AdaBoost算法算法n7.1 集成学习概述集成学习概述n7.2 AdaBoost算法算法n7.3 梯度提升决策树(梯度提升决策树(GBDT)n7.4 随机森林和极端随机树随机森林和极端随机树第第7章章 集成集成学习学习7.3 梯度提升决策树(梯度提升决策树(GBDT)n梯度提升决策树(梯度提升决策树(Gradient Boosting Decison Tree,G
14、BDT)以)以CART回归树回归树为为基学习器基学习器。n训练模型时采用训练模型时采用前向分步前向分步拟合算法进行迭代,通过构建多棵拟合算法进行迭代,通过构建多棵CART回归树,并将它们的输出结果进行组合得到最终的结果。回归树,并将它们的输出结果进行组合得到最终的结果。n在训练每一棵在训练每一棵CART回归树时,都是用之前的回归树时,都是用之前的CART回归树的预测回归树的预测结果与真实值之间的结果与真实值之间的残差残差作为输入数据来拟合,通过不断的迭代作为输入数据来拟合,通过不断的迭代逐步减小残差,最后,将每一轮构建的逐步减小残差,最后,将每一轮构建的CART回归树的预测结果回归树的预测结果
15、进行进行累加累加,得到最终的预测值,得到最终的预测值。n前向分前向分步拟合算法步拟合算法7.3 梯度提升决策树(梯度提升决策树(GBDT)初始化提升树真实值损失函数备注:损失函数选择:如分类用指数损失函数,回归使用平方误差损失。备注:损失函数选择:如分类用指数损失函数,回归使用平方误差损失。7.3 梯度提升决策树(梯度提升决策树(GBDT)n前向分前向分步拟合算法步拟合算法7.3 梯度提升决策树(梯度提升决策树(GBDT)n平方误差平方误差损失损失7.3 梯度提升决策树(梯度提升决策树(GBDT)7.3 梯度提升决策树(梯度提升决策树(GBDT)n7.1 集成学习概述集成学习概述n7.2 Ad
16、aBoost算法算法n7.3 梯度提升决策树(梯度提升决策树(GBDT)n7.4 随机森林和极端随机树随机森林和极端随机树第第7章章 集成集成学习学习7.4 随机森林和极端随机随机森林和极端随机树树n7.4.1 随机森林随机森林n随机森林随机森林是是一种一种基于基于Bagging的的集成学习模型,将若干棵决策集成学习模型,将若干棵决策树组合成森林用来预测最终结果树组合成森林用来预测最终结果。n在在随机森林模型中,通常默认采用分类与回归树(随机森林模型中,通常默认采用分类与回归树(CART)作)作为为Bagging中的基学习器中的基学习器。n随机森林除了对样本进行随机森林除了对样本进行随机采样,
17、还随机采样,还在树的生成时引入在树的生成时引入了随了随机特征机特征选择选择。7.4 随机森林和极端随机随机森林和极端随机树树n7.4.1 随机森林随机森林数据集数据集自助采样自助采样自助采样自助采样自助采样自助采样Bootstraping7.4 随机森林和极端随机随机森林和极端随机树树n7.4.1 随机森林随机森林n随机选择样本和随机选择样本和 Bagging 相同,采用的相同,采用的是是 Bootstraping 自助采样法;自助采样法;随机选择随机选择特征特征是指在每个节点在分裂过程中都是是指在每个节点在分裂过程中都是随机选择特征的(随机选择特征的(区别区别于于每棵树随机选每棵树随机选择一
18、批特征择一批特征)。)。n这种随机性导致随机森林的偏差会有稍这种随机性导致随机森林的偏差会有稍微的增加(相比于单棵不随机树微的增加(相比于单棵不随机树),),但但是由于随机森林的是由于随机森林的“平均平均”特性,会使得特性,会使得它的方差减小,而且方差的减小补偿了它的方差减小,而且方差的减小补偿了偏差的增大,因此总体而言是更好的模偏差的增大,因此总体而言是更好的模型型。7.4 随机森林和极端随机随机森林和极端随机树树n7.4.2 极端随机树极端随机树n极端随机树(极端随机树(Extra-Trees),也称极限树,是随机森林的一个变种),也称极限树,是随机森林的一个变种。n其其原理与随机森林算法
19、十分相似,都是由许多决策树构成。原理与随机森林算法十分相似,都是由许多决策树构成。n极端随机树与随机森林的极端随机树与随机森林的主要区别主要区别如下:如下:n对于单个决策树的训练集,随机森林算法采用随机采样来选择部分样本对于单个决策树的训练集,随机森林算法采用随机采样来选择部分样本作为每个决策树的训练集,而极端随机树不进行采样,直接使用整个原作为每个决策树的训练集,而极端随机树不进行采样,直接使用整个原始训练集,即使用所有的样本,只是特征属性是随机选取的。始训练集,即使用所有的样本,只是特征属性是随机选取的。n在选择特征划分点时,随机森林中的在选择特征划分点时,随机森林中的CART决策树会基于基尼指数或标决策树会基于基尼指数或标准差最小等原则来选择一个最优的特征划分点生成决策树,而极端随机准差最小等原则来选择一个最优的特征划分点生成决策树,而极端随机树是随机地选择一个特征划分点来生成决策树。树是随机地选择一个特征划分点来生成决策树。Question?