【机器学习】集成学习
集成学习
一、集成学习的基本思想
集成学习 (ensemble learning) 通过构建并结合多个学习器来完成学习任 务,有时也被称为多分类器系统(multi-classifier system) 、基于委员会的学习(committee-based learning) 等。
图 8.1 显示出集成学习的一般结构:先产生一组“个体学习器”(individual learner),再用某种策略将它们结合起来。
个体学习器通常由一个现有的学习算法从训练数据产生,例如C4.5决策树算法、 BP神经网络算法等,此时集成中只包含同种类型的个体学习器,例如“决策树集成”中全是决策树,“神经网络集成”中全是神经网络,这样的集成是“同质”(homogeneous)。同质集成中的个体学习器亦称"基学习器" (base learner), 相应的学习算法称为"基学习算法" (base learning algorithm)。
集成也可包含不同类型的个体学习器,例如同时包含决策树和神经网络,这样的集成是"异质"的(heterogenous)。异质集成中的个体学习器由不同的学习算法生成,这时就不再有基学习算法;相应的,个体学习器一般不称为基学习器,常称为"组件学习器"(component learner)或直接称为个体学习器。
集成学习思想源自概率近似正确(Probably Approximately Correct,PAC)学习理论。根据PAC学习理论,若某学习问题能被个体学习器高精度地学习,则称该学习问题是强可学习问题,并称相应的个体学习器为强学习器;反之,若某学习问题仅能被个体学习器低精度地学习,则称该学习问题是弱可学习问题,并称相应的个体学习器为弱学习器。对于强可学习问题,当直接构造其强学习器比较困难时,可通过构造一组弱学习器以生成强学习器,将强可学习问题转化为弱可学习问题。通常称集成学习在分类任务中的弱(强)学习器为弱(强)分类器,在回归任务中的弱(强)学习器为弱(强)回归器。
集成学习对若学习器选择的要求:
- 弱学习器的合理选择显然是集成学习首先必须解决的问题。如果弱学习器的泛化性能太差,则由它们组成的集成模型可能不会取得性能上的有效提升,甚至会产生性能下降的情况。
- 集成学习除了对弱学习器的泛化性能有一定要求之外,还要求不同的弱学习器之间应当存在一定的差异。一般来说,差异较大的一组弱学习器组成的集成模型,对泛化效果的提升会较为明显。
对于选定的一组弱学习器,集成学习需要通过一定的组合策略将它们组合起来形成较高性能的强学习器。从统计学角度看,由于学习任务的假设空间对于数据集而言通常是一个过大的空间,在假设空间当中可能同时存在多个假设使得模型在该数据集上得到相同的泛化性能,此时若使用单个学习器会带来过多的模型偏好,从而出现模型泛化能力不强的现象,结合多个弱学习器则可以有效降低此类风险。
二、集成学习基本范式
1. 弱学习器的构造
对于给定的样本数据集
上述弱学习器的并行构造方式忽略了弱学习器之间的某些联系,有时候还会丢掉一些重要信息。例如,对于某弱学习器分类错误的样本,其他弱学习器的训练过程当中应该加以重视,以免再犯同样的错误。弱学习器的并行构造方式显然无法做到这一点。为此可用串行方式逐个构造弱学习器,使得各弱学习器之间存在一定关联。
弱学习器的串行构造过程如图5-4所示,一般会根据前一弱学习器的输出调整其后继训练样本子集的样本分布,再通过调整后的训练样本子集构造弱学习器,如此重复直至完成所有所需弱学习器的构造。由图5-4可知,用于构造弱学习器
2. 弱学习器的组合
简单平均法
设有
这种简单的组合策略被称为简单平均法。
简单平均法规定每个弱回归器对集成模型输出的贡献都相同。然而,不同弱回归器的重要性通常会有一些差异,此时简单平均法对各弱回归器一视同仁的做法不够合理,会导致集成学习的预测输出因过分依赖不太重要的弱回归器而降低泛化性能。
加权平均法
令
通常使用机器学习方法获得加权平均法中的权重。需要注意的是,样本数量的不足或噪声样本的存在可能会影响权重的正确计算,对于大型集成任务而言,利用少量样本计算过多的权重很容易产生比较严重的过拟合现象。
投票法
对于输出空间为离散集合的分类任务,通常用投票法实现多个弱分类器的组合。
设有
上式表明
在票数比较分散的情况下,相对多数投票法的最多票数可能会很小,此时会大大增加集成模型出现错误分类的概率。为此,需要对相对多数投票法进行改进,对集成模型
加权投票法
相对多数投票法和绝对多数投票法显然均未考虑不同弱分类器在重要性方面的差异。可在上述投票法中引入加权机制以度量弱分类器的重要性,得到一种名为加权投票法的弱分类器组合方法。具体地说,对于一组重要性不相同的弱分类器
3. 集成学习的基本流程
集成学习虽然会根据具体任务需求选择相应的个体学习器生成策略和组合策略,但基本流程保持不变,即如图5-5所示,先通过数据集生成个体学习器,然后利用某种组合策略将个体学习器组合成集成模型。这种基本流程构成了集成学习的基本范式。
三、集成学习泛化策略
集成学习的目标是获得具有较好泛化性能的机器学习模型,最好能够达到使模型泛化误差最小的理想情况。现以回归任务为例,通过分析影响模型泛化误差的因素,讨论提升集成模型泛化性能的基本方法。
假设回归任务的真实映射为
则集成模型
弱回归器
则一组弱回归器的差异度或多样性可表示为该组所有弱回归器关于集成模型输出偏差的平均值,即有
对上式分解可得:
令
则有
由以上分析可知,集成模型
这个结论为集成模型泛化性能的提升给出了两个基本思路,即降低个体学习器的泛化误差和提高个体学习器的多样性。
降低弱学习器的泛化误差:可用样本扩充、范数惩罚等机器学习正则化策略提升弱学习器的泛化性能并在具体集成学习中尽可能使用泛化性能较好的弱学习器进行集成训练。
提高弱学习器多样性:可以分别从改变训练样本和改变模型训练参数这两个角度来提高弱学习器多样性。
从改变训练样本的角度提高集成模型泛化性能,主要是从改变输入的角度出发,通过对样本数据采样增加输入样本随机性,由此提高弱学习器多样性。具体地说,若需通过样本数据集
由于弱学习器自身参数的不同设置以及在不同训练阶段产生的不同参数都会产生不同的弱学习器,故可从这些角度增加弱学习器的多样性。例如,改变神经网络初始连接权重、隐含层神经元个数等参数可以使模型收敛至不同的解,故可通过随机设置不同的参数获得具有一定差异的弱学习器。
值得注意的是,通常综合使用多种泛化策略构造同一个集成模型。例如,在构造某个集成模型时可能既采用数据样本采样方法,又对模型参数进行随机选择以提高弱学习器的多样性。
事实上,弱学习器的个数也在一定程度上影响集成模型的泛化性能。例如,对于某个二分类任务的集成学习问题,假设每个弱学习器的错误率均为
其中,
四、Bagging集成学习
Bagging集成学习方法首先通过对样本数据集进行自助随机采样方式并行构造多个具有一定差异的样本数据子集,然后分别由这些子集训练构造多个弱学习器并将这些弱学习器集成为一个具有较强泛化性能的集成模型,即强学习器。也称该方法为袋装法,其名称Bagging是Bootstrap Aggregating的缩略语,意为自助集成,较好地体现了该方法的基本思想。Bagging集成学习是一种基本的集成学习方法,由该方法衍生的随机森林学习方法也是一种在多个领域得到广泛应用的重要集成学习方法。本节主要介绍Bagging和随机森林集成学习的基本方法,包括Bagging集成学习的基本策略、随机森林的模型结构与训练算法。
1.Bagging集成策略
对于给定的样本数据集
自助采样法:假设
得益于自助采样方法的随机性质,对样本数据集
对多个弱学习器的集成方案则较为简单,一般通过简单平均法集成多个弱回归器,通过相对多数投票法集成多个弱分类器。由于每个训练样本子集都是通过独立自助采样得到,各次自助采样相互独立,故可并行构造各个弱学习器,大幅降低集成学习算法的时间复杂度。
2.随机森林模型结构
决策树是一类简单有效的常用监督学习模型,它具有很多良好的性质和比较成熟的训练构造算法。可用Bagging集成学习方法将多个决策树模型作为弱学习器集成起来,构造一个具有较强泛化性能的森林模型作为强学习器。
由于Bagging集成学习方法一般通过随机性自助采样方法生成用于构造弱学习器的训练样本数据子集合,使得由这些子集合训练而成的决策树模型结构具有一定的随机性且相互之间具有一定的差别,故称由这些决策树作为弱学习器组合而成的森林模型为随机森林模型,通常简称为随机森林。
对于一组具有一定差异的决策树模型,它们对于同一样本的预测值可能存在差异,若综合考虑这组决策树对同一样本的预测结果,则由此得到的综合预测结果通常会比单个决策树模型的预测结果更为合理。因此,作为Bagging集成学习强学习器的随机森林模型比决策树模型具有更好的泛化性能。
由以上分析可知,随机森林模型是一类以决策树模型为弱学习器的Bagging集成模型。由于随机森林模型的弱学习器类型和模型集成策略都已确定,故提高随机森林模型泛化性能的关键在于如何提高弱学习器之间的差异性。根据Bagging集成学习的基本原理,随机森林模型可以通过对数据集的随机性自助采样获得多个具有一定差异的训练样本子集,由此生成多个具有不同结构的弱学习器。
事实上,除了通过构造具有一定差异的训练样本子集以产生不同结构的决策树之外,还可以根据决策树模型训练构造方法特点,通过对决策树模型中某些特征引入随机性的方式进一步增加决策树模型之间的互异性。具体地说,在确定随机森林中某决策树上某个结点的划分属性时,需要先从当前结点所对应属性集合
显然,当s取值较小时,单个决策树模型预测的偏差较大,预测错误率较高,使用此类弱学习器进行集成通常难以达到理想效果;若s取值较大,则弱学习器之间的差异性较小,使用此类弱学习器进行集成所得到集成模型的性能提升效果不明显。由此可知,属性子集中属性个数s的确定直接影响着随机森林模型的性能。理论分析表明,取
显然,当s取值较小时,单个决策树模型预测的偏差较大,预测错误率较高,使用此类弱学习器进行集成通常难以达到理想效果;若s取值较大,则弱学习器之间的差异性较小,使用此类弱学习器进行集成所得到集成模型的性能提升效果不明显。由此可知,属性子集中属性个数s的确定直接影响着随机森林模型的性能。理论分析表明,取s=log2m时集成模型的泛化性能较为理想。
3.随机森林训练算法
随机森林模型基于Bagging集成学习方法构造,故训练构造随机森林模型的过程基本上也遵从Bagging集成学习的基本流程,只是在一些细节方面与前述基本Bagging集成学习方法有所不同。具体地说,对于一个包含n个样本的数据集D,首先对D随机性自助采样k个训练样本子集
现以使用训练样本子集
决策树的构造:构造决策树的关键在于从训练样本数据集中确定决策树结点的划分属性。假设在确定决策树Ti中某个结点的划分属性时,该结点所对应样本特征属性集合为
为提高决策树模型的个体差异性,通常需要从特征属性集合
以构造CART决策树为例,随机森林集成学习中构造单棵决策树算法的具体步骤如下:
- 通过自助法确定训练样本集
; - 从当前样本数据集的特征集合
中随机选择s个特征组成新的特征集合 ; - 分别计算
中所有属性关于该样本数据集的基尼指数,并根据基尼指数确定最优特征切分点,然后根据最优切分点 中的样本分配到子节点所对应的样本子集中; - 分别对两个子节点递归地调用步骤2~3,直到满足算法停止条件。算法停止条件为节点中样本个数或样本集基尼指数小于给定阈值,或者没有更多特征可以分裂。
不难发现,上述训练过程没有包含剪枝操作。这是因为决策树剪枝操作可能会造成单棵决策树模型的预测偏差增大,不利于提升随机森林模型的泛化性能。
五、Boosting集成学习
前述Bagging集成学习方法及随机森林模型对弱学习器的训练没有考虑各个弱学习器之间的关联性。事实上,在很多情况下可以通过弱学习器之间的关联性获得泛化性能更好的学习效果。例如,在背英语单词的过程中,背完第一遍后容易记住的单词都记住了,第二遍主要针对第一遍记错的单词重点记忆,第三遍主要针对第二遍还未记住的单词重点记忆,如此重复直至完成目标。Boosting集成学习方法正是基于这种思想,该方法特别注重那些被弱学习器错误预测的样本,因而是一种非常有效的集成学习方法。在Boosting集成学习方法基础上衍生出两个在多个领域得到广泛应用的著名集成学习算法,即AdaBoost算法和GBDT算法。
1.Boosting集成策略
在日常生活和工作中,人们总是善于从过往的经验中汲取教训,尽量使得已经犯过的错误不会再犯。不会被同一块石头绊倒两次指的就是这个意思。Boosting集成学习正是基于这种思想实现对弱分类器的训练。Boosting集成学习方法,又名提升式集成学习方法。顾名思义,该方法主要通过集成各个弱学习器的成功经验和失败教训实现对模型性能的提升。具体地说,该方法使用迭代方式完成对各个弱学习器的训练构造,每次迭代对训练样本集的选择都与前面各轮的学习结果有关,使用前面各轮学习结果更新当前各训练样本的权重,并对前面被错误预测的样本赋予较大的权重,实现对当前训练样本集合数据分布的优化。
由以上分析可知,Boosting集成学习的弱学习器之间基本上呈现互补状态,对于被前一个弱学习器Lt错误预测的样本X,由于在对随后弱学习器
Boosting集成学习通常使用两种方式调整训练样本集的数据分布:一是仅调整样本数据的权重,而不改变当前训练样本集合;二是改变当前训练样本集合,将那些被之前的弱学习器错误预测的样本复制到关于当前弱学习器的训练样本集合中重新进行训练。
第一种方式的基本思想是提高当前训练样本集合中被错误预测样本的权重,降低已被正确预测样本的权重,使得后续对弱学习器的训练构造更加重视那些被错误预测的样本。具体地说,对于包含n个样本的训练集T,其中每个样本的初始权重均为1/n,则对于所有被错误预测样本组成的集合Q,其整体权重等于预测错误率
Boosting集成学习调整训练样本集数据分布的第二种方式是改变当前训练样本集合,即复制被前面弱学习器错误预测样本到样本训练集当中重新进行训练。显然,采用这种方式会使得各个弱学习器的训练样本集不完全相同。例如,对于前一个预测正确率为50%的弱学习器
Schapire’s Boosting算法正是采用上述思想实现对训练样本集数据分布的调整。该算法是一种用于解决分类问题的Boosting集成学习算法,主要通过构造三个互补的弱分类器并由投票法将其集成为一个具有较强分类性能的强分类器。具体地说,对于包含n个样本的数据集D,该算法首先由D随机生成一个包含s个样本的子集
由于分类器
Boosting集成学习算法的基本流程如图5-16所示。与Bagging集成学习方法类似,Boosting集成学习通常采用加权平均或加权投票方法实现对多个弱学习器的集成,由此构造一个具有较强泛化性能的集成模型。由于Boosting集成学习中各个弱学习器之间具有一定关联,由此可以得到预测偏差更小的弱学习器,故能有效降低集成模型的预测偏差。但由于其弱学习器通过串行训练逐个生成,故Boosting集成学习要花费较长时间训练弱学习器。
2.AdaBoost集成学习算法
AdaBoost集成学习算法是一种具有自适应性质的Boosting集成学习算法。该算法的自适应性主要表现在自动提升被错误预测样本的权重,自动减少被正确预测样本的权重,使得弱学习器训练过程能够根据模型预测性能自动进行调整。事实上,Ada Boost是Adaptive Boosting的缩略语,意为自适应增强,较好地表达了该算法的核心思想。
AdaBoost集成学习算法基本上遵从Boosting集成学习思想,通过不断迭代更新训练样本集的样本权重分布以获得一组性能互补的弱学习器,然后通过加权投票等方式将这些弱学习器集成起来得到性能较优的集成模型。
现以二分类任务为例介绍该算法的具体过程。
对于训练样本集
- 令i=1并设定若学习器的数目m。使用均匀分布初始化训练样本集的权重分布,令n维向量
表示第i次需要更新的样本权重,则有 - 使用权重分布为
的训练样本集 学习得到第i个若学习器 ; - 计算
在训练样本集 上的分类错误率 - 确定弱学习器
的组合权重 。由于弱学习器 的权重取值与其分类性能有关,对于分类错误率 越小的的 ,则其权重 应该越大,故有 - 依据弱学习器
对训练样本集 的分类错误率 更新样本权重,更新公式为 ,其中 为归一化因子,保证更新后权重向量为概率分布。 - 弱i<m,则令i=i+1并返回步骤2,否则,执行步骤7;
- 对于m个弱分类器
,分别将每个 按权重 进行组合 得到并输出所求集成模型L,算法结束。
由上述算法步骤可知,AdaBoost集成学习算法的关键是如何更新样本权重,即步骤5中的权重更新公式。事实上,可将该公式改写为如下形式
即当某个样本被前一个弱学习器错误预测时,该样本的权重会被放大
3.GBDT集成学习算法
GBDT的含义为梯度提升决策树(Gradient Boosting Decision Tree,GBDT),它是一种以回归决策树为弱学习器的集成学习模型,主要用于完成机器学习的回归任务。与随机森林模型类似,GBDT集成学习模型通常使用CART决策树(回归树)模型作为弱学习器。GBDT模型的训练构造算法采用迭代方式逐个构造组成GBDT集成模型的各个弱学习器,因而属于基于弱学习器串行训练方式的Boosting集成学习算法,但GBDT集成学习算法的基本思想与前述AdaBoost等Boosting算法有很大的差异。
对于GBDT集成模型中任一非初始弱学习器,该弱学习器以前一轮迭代中的集成学习模型对训练样本的预测误差作为输出,通过与该预测误差进行拟合的优化计算方式完成对该弱学习器的构造,并使用作为该弱学习器输出结果的预测误差对集成学习模型的预测结果进行补偿或校正,从而提高预测结果的准确性。因此,GBDT集成学习的实质是以迭代方式让集成模型逐步逼近理想的预测模型。
设某个回归任务的训练样本数据集为
为提升模型性能,需要通过一定的方式来改进模型
使用上述函数作为优化的目标函数来改进模型
则梯度的反方向为
然而,由于单个回归决策树模型的结点数目较少,难以有效拟合所有训练样本的梯度方向,故通常无法直接根据上述方向对模型
由于模型
GBDT集成学习算法正是根据上述思路通过迭代方式逐步构造多个弱学习器,并逐步将它们集成为一个具有较强泛化性能的强学习器。
具体地说,首先根据训练样本数据集D构造一个新的数据集
其中,
GBDT集成学习算法的基本步骤如下。
- 构造初始学习器
。令t=0,根据下式构造初始回归树 :- 其中,
为只有一个根结点的初始回归决策树;c为使得目标函数最小化的模型参数; 为损失函数。 -
- 其中,y为样本真实值或标注值;g(X)为单个回归决策树模型的预测值。
- 其中,
- 令t=t+1,并计算数据集D中每个训练样本的负梯度
: -
- 构造新的训练样本集
:- 使用
作为训练样本集构造一棵回归树,并使用该回归树作为第t+1个弱学习器 ,该决策树中第j个叶结点的输出值为: -
- 其中,
表示第 个弱学习器的第j个叶结点所对应的数据集合。 - 上式表明弱学习器
中每个叶结点的输出均使得上轮迭代所得集成模型 的预测误差达到最小。 - 可将回归决策树
表示为
- 使用
- 更新集成模型为
- 若未满足算法终止条件,则返回步骤2,否则,算法结束。
由以上分析可知,GBDT集成学习算法的基本思想是在当前集成模型所对应目标函数的梯度反方向上直接更新模型,由此实现对集成模型的优化。这种优化求解方法与梯度下降法比较类似,但与梯度下降法有着很大差别。因为梯度下降法根据目标函数值的迭代下降获得优化的模型参数,而GBDT集成学习算法的优化计算则是根据目标函数值的迭代下降直接获得作为集成模型的预测函数。
如前所述,使用梯度下降法优化计算模型参数w的迭代公式为
其中,
其中,
GBDT集成学习模型具有较好的泛化性能,对多种类型的数据具有较强的适应能力,目前被认为是传统机器学习领域中对样本真实分布具有最好拟合效果的模型之一,已被广泛应用于知识发现与数据挖掘、视频图像处理与模式识别等多个领域。GBDT集成学习模型虽然用于回归任务,不过将该集成模型的连续型输出空间转化为分类任务的离散型输出空间,则可使GBDT集成学习模型适用于分类任务,这里不再赘述。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 上周热点回顾(2.17-2.23)
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)