集成学习-理论概述
1、集成学习概述
集成学习(ensemble learning)本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。
集成学习的特点:集成方法是一种将几种机器学习技术组合成一个预测模型的元算法,以减小方差(bagging),偏差(boosting),或者改进预测(stacking)。
集成学习的思想即,对于训练集数据,通过训练若干个个体学习器,采用一定结合策略,形成一个强学习器,以达到群体决策提高决策准确率的目的。其中两个主要的问题就是:
1)如何得到若干个个体学习器
2)如何让选择一种结合策略,将这些个体学习器集合成一个强学习器。
2、集成方式
集成学习的第一个问题是如何得到若干个个体学习器。其实有两种方式:
1)同构集成:所有的个体学习器都是相同类型的,或者说是同质的(homogeneous),同质集成中的个体学习器也称为“基学习器”(base learner),相应的学习算法称为“基学习算法”(base learning algorithm)。比如都是决策树个体学习器。
2)异构集成:所有的个体学习器不全是同一个类型的,或者说是异质的(heterogeneous)。比如解决一个分类问题,对训练集采用支持向量机个体学习器,逻辑回归个体学习器和朴素贝叶斯个体学习器来学习,再通过某种结合策略来确定最终的分类强学习器。这时个体学习器一般不称为基学习器,而称作“组件学习器”(component leaner)或直接称为个体学习器。
3、学习模式
1)串行:个体学习器之间存在强依赖关系,必须串行生成的序列化方法,代表算法是boosting系列算法。
2)并行:个体学习器不存在强依赖关系,可以同时生成的并行化方法,代表算法是bagging系列算法。
4、集成学习的分类
4.1 Bagging类方法
bagging为bootstrap aggregating简写,即套袋法,过程如下:
1)抽取多组训练集
每个样本集都是从原始样本集中有放回的抽取n次,组成训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行m轮,得到m个训练集,训练集之间相互独立。
2)基学习器
每次使用一个训练集得到一个模型,m个训练集共得到m个模型。
3)投票
分类问题:将上步得到的m个模型采用投票的方式得到分类结果;回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
代表性方法有Bagging和随机森林等。
1)Bagging(Bootstrap Aggregating)是通过不同模型的训练数据集的独立性来提高不同模型之间的独立性。我们在原始训练集上进行有放回的随机采样,初始训练集中有的样本在采样集合中出现多次,有的则从未出现过。经过M次随机采样得到含 M个样本的训练集。可以采样T个含有m个样本的数据集并行训练得到T个模型,然后将这些基学习模型进行结合。对于基学习器的集成方法,Bagging通常对分类任务使用简单投票法,对回归任务使用平均法。若预测的结果中有含有相同票数的两个类,可以使用随机选择或者考察学习器投票的置信度来确定。
2) 随机森林(Random Forest)是在Bagging的基础上再引入了随机特征,进一步提高每个基模型之间的独立性。在随机森林中,每个基模型都是一棵决策树,与传统决策树不同的是,在RF中,对每个基决策树的每个节点,先从该节点的属性集合中随机选择一个包含k个属性的子集,然后从这个子集中选择一个最优属性由于划分,而传统的决策树是直接在当前节点的属性集合中选择一个最优属性来划分集合。
bagging本质
对一个样本空间,随机有放回的抽样出若干独立的训练样本,以此来增加样本扰动,多轮次抽样训练后形成多个估计,然后平均多个估计,达到降低一个估计的方差,也就是增强学习器的泛化特性。
4.2 Boosting类方法
Boosting类方法是按照一定的顺序来先后训练不同的基模型,每个模型都针对先前模型的错误进行专门训练。根据先前模型的结果,来调整训练样本的权重,从而增加不同基模型之间的差异性。如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。
Boosting 类方法是一种非常强大的集成方法,只要基模型的准确率比随机猜测高,就可以通过集成方法来显著地提高集成模型的准确率。Boosting类方法的代表性方法有AdaBoost,GBDT等.
4.3 Bagging与Boosting对比
Bagging | Boosting | |
学习模式 | 并行 | 串行 |
训练集 | 原始训练集有放回选取,相互独立 | 每轮训练集不变,改变每个样例的权重,相互依赖 |
测试 | 可并行 | 需串行 |
作用 | 减小variance | 减小bias |
样例权重 | 均匀取样,权重相等 | 据错误率不断调整样例的权值,错误率越大则权重越大。 |
5、集成学习的结合策略
5.1 平均法
对于数值类的回归预测问题,通常使用的结合策略是平均法,也就是说,对于若干个弱学习器的输出进行平均得到最终的预测输出。最简单的平均是算术平均,如果每个个体学习器有一个权重则采用加权平均法。
一般而言,在个体学习器的性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。
5.2 投票法
对于分类问题的预测,我们通常使用的是投票法。
最简单的投票法是相对多数投票法,也就是我们常说的少数服从多数。
稍微复杂的投票法是绝对多数投票法(majority voting),也就是我们常说的要票过半数。在相对多数投票法的基础上,不光要求获得最高票,还要求票过半数。否则会拒绝预测。
更加复杂的是加权投票法(weighted voting),和加权平均法一样,每个弱学习器的分类票数要乘以一个权重,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别。
5.3 学习法
对于学习法,代表方法是stacking,当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。
在这种情况下,我们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。