机器学习——集成学习
分类:
文章
•
2023-03-29 12:19:54
- 集成学习概述
集成学习本身不是一个机器学习算法,而是通过构建并结合多个机器学习器完成学习任务。集成学习可以用于分类问题集成、回归问题集成、特征选取集成、异常点检测集成等等。
对于训练集数据,我们通过训练若干个个体学习器,通过一定的结合策略,就可以最终形成一个强学习器,达到“博采众长”的效果。

集成学习有两个主要的问题需要解决:
1)如何得到若干个个体学习器
2)如何选择一种结合策略将个体学习器集合成一个强学习器
- 集成学习之个体学习器
个体学习器分两类:
1)所有个体学习器都是一个种类的,或者说是同质的。比如全部是决策树个体学习器或者是神经网络个体学习器。
2)所有的个体学习器不全是一个种类的,或者说是异质的。比如我们有一个分类问题,对训练集采用支持向量机个体学习器、逻辑回归个体学习器和朴素贝叶斯个体学习器来学习,再通过某种结合策略来确定最终的强学习器。
同质个体学习器的应用最为广泛,同质个体学习器使用最多的模型是CART决策树和神经网络。同质个体学习器按照个体学习器之间是否存在依赖关系分为两类:
a) 个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是boosting系列算法。
b) 个体学习器之间不存在强依赖关系,一系列个体学习器之间可以并行生成,代表算法是bagging和随机森林(random forest)系列算法。
- 集成学习之boosting
boosting算法的工作机制是首先从训练集中用初始权重训练出一个弱学习器1,根据弱学习器的误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,让这些点在后边的弱学习器2中得到更多的重视,然后基于调整权重后的训练集来训练弱学习器2,重复执行以上步骤,直到弱学习器数达到事先指定的T,最后将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。

boosting算法系列里最著名算法主要有AdaBoost算法和提升树(Boost Tree)系列算法,提升树里应用最广泛的是梯度提升树(Gradient Boost Tree)。
- 集成学习之bagging
bagging算法原理和boosting原理不同,它的弱学习器之间没有依赖关系,可以并行生成。
bagging的个体弱学习器的训练样本是通过随机采样得到的,通过T次的随机采样就得到了T个采样集,对于这T个采样集,分别训练出T个弱学习器,再将T个弱学习器通过集合策略整合成一个强学习器。(随机采样一般采用的是自助采样法,即对于m个样本集,每次随机采样一个样本放入采样集,接着把该样本放回,即下次采样时还可能采样到同一个样本。)
- 集成学习之综合策略
假定T个弱学习器是{h1,h2...hT}。
1)平均法
对于数值类的回归预测问题,通常使用的综合策略是平均法,即对若T个弱学习器的输出进行平均得到最终的预测输出。
a) 最简单的平均是算术平均,即最终的预测是H(x)=T1i=1∑Thi(x)b)若每个弱学习器有一个权重w,则最终预测是H(x)=T1i=1∑Twihi(x)其中wi是弱学习器hi的权重,通常有wi≥0,i=1∑Twi=12)投票法
对于分类问题的预测,通常使用投票法。假设我们的预测类别是{c1,c2...ck},对于任何一个预测样本x,T个弱学习器的预测结果分别是h1(x),h2(x)...hT(x)。
a) 最简单的投票法是相对多数投票法,即T个弱学习器对x的预测结果中,数量最多的类别ci为最终的分类结果,若存在多个最高票,则随机选择一个结果。
b) 稍复杂的投票法是绝对多数投票法,即在相对多数投票的基础上,不止要求最高票,还要求票数过半,否则拒绝预测。
c) 更加复杂的是加权投票法,即每个弱学习器的分类票数乘以一个权值,最终将各个类别的加权票数求和最大值即为预测结果。
3)学习法
前两种结合策略的学习误差较大。
对于学习法,代表方法是stacking,当使用stacking结合策略时,对弱学习器的学习结果加一层学习器。即将训练集弱学习器的结果作为输入,重新训练一个学习器得到最终结果。
这种情况下,将弱学习器成为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。
- AdaBoost
使用最广泛的Adaboost弱学习器是决策树和神经网络。对于决策树,Adaboost分类用了CART分类树,而Adaboost回归用了CART回归树。
1)结合策略
a) 分类:加权表决法
b) 回归:加权的弱学习器取权重中位数对应的弱学习器作为强学习器的方法
2)优点
a) AdaBoost作为分类器时,分类精度高;
b) 在AdaBoost框架下,可以使用各种回归分类模型构建学习器;
c) 作为简单的二元分类器时,构造简单,结果可理解;
d) 不容易发生过拟合
3)缺点
对异常数据敏感,异常样本在迭代中可能获得较高的权重,影响最终强学习器的预测结果。
- GBDT
GBDT也是集成学习Boosting家族的成员,但是却和传统的Adaboost有很大的不同。回顾下Adaboost,我们是利用前一轮迭代弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去。GBDT也是迭代,使用了前向分布算法,但是弱学习器限定了只能使用CART回归树模型,同时迭代思路和Adaboost也有所不同。
在GBDT的迭代中,假设我们前一轮迭代得到的强学习器是ft−1(x),损失函数是L(y,ft−1(x)),我们本轮迭代的目标是找到一个CART回归树模型的弱学习器ht(x),让本轮的损失函数L(y,ft(x))=L(y,ft−1(x)+ht(x)),也就是说,本轮迭代找到决策树,要让样本的损失尽量变得更小。
GBDT的思想可以用一个通俗的例子解释,假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有一岁了。如果我们的迭代轮数还没有完,可以继续迭代下面,每一轮迭代,拟合的岁数误差都会减小。