目录
- 个体与集成
- Boosting
- Bagging与随机森林
- Bagging
- 随机森林
- 结合策略
- 平均法
- 投票法
- 学习法
个体与集成
定义:集成学习,也叫多分类器系统、基于委员会的学习等,它是一种通过结合多个学习器来构建一个更强大的学习器的技术。如下图所示
在这里,个体学习器通常由一个现有的学习算法从训练数据产生。集成学习通过整合多个模型的预测结果,可以提高整体的预测准确性和泛化能力。我们希望通过将多个学习器结合在一起能获得比其中任意一个学习器还要好的性能,这是我们要研究的重点,比如举下面一个例子。
遵从少数服从多数原则,在(a)中,每个分类器都只有66.6% 的精度,但集成学习却达到了 100%;在(b)中,三个分类器没有差别,集成之后性能没有提高;在(c)中,每个分类器的精度都只有33.3%,集成学习的结果变得更糟。故要获得好的集成,个体学习器应"好而不同",即要具有"准确性"。
事实上,如何产生并结合"好而不同"的个体学习器,恰是集成学习研究的核心。根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类:第一类是个体学习器问存在强依赖关系、必须串行生成的序列化方法;第二类是个体学习器间不存在强依赖关系、可同时生成的并行化方法。前者的代表是Boosting,后者的代表是Bagging和"随机森林"。下面介绍一下这两者。
Boosting
Boosting是一族集成学习方法,通过顺序训练多个弱学习器,每个弱学习器都尝试修正前一个学习器的错误,从而逐步提高整体模型的性能。
Boosting族算法最著名的代表是AdaBoost,其算法流程如下图所示
Boosting 算法要求基学习器能对特定的数据分布进行学习,这可通过"重赋权法" (re-weighting)实施,即在训练过程的每一轮中,根据样本分布为每个训练样本重新赋予一个权重。若某些样本无法赋权,则对该样本实施“重采样法”,即对训练集重新采样,再对采样后的样本集进行训练。
从偏差–方差分解角度看,Boosting 主要关注降低偏差,因此 Boosting能基于泛化性能相当弱的学习器构建出很强的集成。
Bagging与随机森林
Bagging
Bagging是一种并行集成学习方法,通过随机抽样训练集合构建多个基学习器(具体流程是给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,再把该样本放回初始数据集,经过m
次随机采样操作,我们得到含m个样本的采样集,照这样,我们可采样出T个含m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器进行结合.)然后将它们的预测结果进行平均或投票来得到最终预测( Bagging通常对分类任务使用简单投票法,对回归任务使用简单平均法)。
Bagging算法描述如下:
Bagging是一个很高效的集成学习算法,并且,与标准 AdaBoost 只适用于二分类任务不同,Bagging 能不经修改地用于多分类、回归等任务。
随机森林
随机森林是Bagging的一个典型代表,它在使用决策树作为基学习器的基础上,进一步在决策树的训练过程中引入了随机属性选择。具体来说,在随机森林中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性用于划分。
从上面图片可以看出,Bagging集成规模越大,其划分效果就相对越好。
随机森林的收敛性与 Bagging相似,如下图所示,随机森林的起始性能往往相对较差, 特别是在集成中只包含一个基学习器时。随着个体学习器数目的增加,随机森林通常会收敛到更低的泛化误差。
结合策略
学习器结合有如下好处:
(1)从统计的方面来看,结合多个学习器,可以避免相关风险,比如使用单学习器可能因误选而导致泛化性能不佳;
(2)从计算的方面来看,通过多次运行之后进行结合, 可降低陷入糟糕局部极小点的风险;
(3)从表示的方面来看,通过结合多个学习器,由于相应的假设空间有所扩大,有可能学得更好的近似。
下图给出了一个直观示意图:
下面介绍几种对基学习器进行结合的常见策略
平均法
简单平均法:即对所有基学习器的输出进行加和取平均值, H ( x ) = 1 T ∑ i = 1 T h i ( x ) H\left ( x \right ) =\frac{1}{T} \sum_{i=1}^{T} h_{i} \left ( x \right ) H(x)=T1∑i=1Thi(x)
加权平均法 H ( x ) = ∑ i = 1 T w i h i ( x ) H\left ( x \right ) =\sum_{i=1}^{T} w_{i} h_{i} \left ( x \right ) H(x)=∑i=1Twihi(x),其中 w i w_{i} wi是个体学习器 h i h_{i} hi,通常要求 w i ≥ 0 w_{i} \ge 0 wi≥0和 ∑ i = 1 T w i = 1 \sum_{i=1}^{T} w_{i} =1 ∑i=1Twi=1
一般而言,在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法.
投票法
绝大多数投票法:若某标记得票过半数,则预测为该标记;否则拒绝预测。
相对多数投票法:即预测为得票最多的标记,若同时有多个标记获最高票,则从中随机选取一个。
学习法
当训练数据数量很庞大时,最好使用学习法,即通过另一个学习器来进行结合。其中Stacking是学习法的代表,其流程如下:
Stacking 先从初始数据集训练出初级学习器,然后"生成"一个新数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记。
在训练阶段,次级训练集是利用初级学习器产生的,若直接用初级学习器的训练集来产生次级训练集,则过拟合风险会比较大;因此,一般是通过使用交叉验证或留一法这样的方式,用训练初级学习器未使用的样本来产生次级学习器的训练样本。