集成学习归属于机器学习,他是一种“训练思路”,并不是某种具体的方法或者算法。
本质就是投票,模仿人类社会的各种投票方法


1、定义

是指构建多个分类器(弱分类器)对数据集进行预测,然后用某种策略将多个分类器预测的结果集成起来,作为最终预测结果。
它要求每个弱分类器具备一定的 “准确性”,分类器之间具备 “差异性”。

若个体学习器都属于同一类别,例如都是决策树或都是神经网络,则称该集成为同质的(homogeneous);若个体学习器包含多种类型的学习算法,例如既有决策树又有神经网络,则称该集成为异质的(heterogenous)。

同质集成:个体学习器称为“基学习器”(base learner),对应的学习算法为“基学习算法”(base learning algorithm)。 异质集成:个体学习器称为“组件学习器”(component learner)或直称为“个体学习器”。 弱学习器:以分类来说,分类效果要优于随机分类,也就是准确率高于50%的学习器,且计算速度快,通常以决策树和神经网络为主,一组弱学习器可以是一样的,也可以不一样,目前常用的算法还是以同样的为主。

上面我们已经提到要让集成起来的泛化性能比单个学习器都要好,虽说团结力量大但也有木桶短板理论调皮捣蛋,那如何做到呢?这就引出了集成学习的两个重要概念:准确性多样性(diversity)。准确性指的是个体学习器不能太差,要有一定的准确度;多样性则是个体学习器之间的输出要具有差异性。准确度较高,差异度也较高,可以较好地提升集成性能。

2、分类

集成学习根据各个弱分类器之间有无依赖关系,分为 Boosting 和 Bagging

  1. Boosting :各分类器之间有依赖关系,必须串行,boosting本意为增长,意思是每个学习器都比上一个学习器更强。Boosting对基础模型不是一致对待的,而是经过不停的考验和筛选来挑选出“精英”,然后给精英更多的投票权,表现不好的基础模型则给较少的投票权,然后综合所有人的投票得到最终结果。

基本概念 - 图1

  1. Bagging :分类器之间没有依赖关系,可各自并行。Bagging本意为袋子,源于从袋子里有放回性取样,是说各学习器基于随机样本独立训练,后训练的学习器并比一定比前一个好。所有基础模型都一致对待,每个基础模型手里都只有一票。然后使用民主投票的方式得到最终的结果。

基本概念 - 图2

区别:大部分情况下,经过 bagging 得到的结果方差(variance)更小;经过 boosting 得到的结果偏差(bias)更小
样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。

3、组合方法

3.1、投票法

投票法是用于分类问题,由多个学习器投票,哪个类别最多就是哪个。所谓的少数服从多数,如果出现数量相同,那就在相同中随机选择一个;
升级版:
绝对多数投票法,在相对多数投票结果基础上,还要过半才算有效;
加权投票法:赋予不同学习器不同的权重,再加权求和

3.2、平均法

平均法用于回归预测问题,对学习器的结果求算法平均,得到最终的预测结果
升级版:
加权求和

3.3、学习法

当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。
在这种情况下,我们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。