机器学习期末复习——第八章

机器学习期末复习——第八章

一、重点知识点回顾

1. 个体与集成

集成学习(Ensemble Learning)通过构建并结合多个学习器来完成学习任务,有时候也被称之为多分类器系统、基于委员会的学习等。

上图展示了集成学习的一般结构:先生产一组“个体学习器”,随后再用某种策略将他们结合起来。其实这也反映了集成学习所代表的思想,通过将多个学习器进行结合,常常可以获得比单一学习器显著优越的泛化性能,对“弱学习器”而言尤为明显。

根据个体学习器的生成方式,目前的集成学习方法大致可分为两类:1)个体学习器之间存在强依赖关系、必须串行生成的序列化方法,以Boosting为代表;2)个体学习器之间不存在强依赖关系、可同时生成的并行化方法,以Bagging和随机森林为代表。

2. Boosting

Boosting类算法的工作机制大概满足这样一个框架:先从初始训练集中训练出一个基学习器,再根据基学习器的表现对训练样本进行调整,使得先前基学习器做错的训练样本在后续收到更多关注,然后基于调整后的样本分布来训练下一个基学习器,如此循环往复…直至基学习器的数目达到事先设定的值TT,最终再将这TT个基学习器进行加权结合。

这类算法的具体动画讲解可以参考这份学习资料:【到底什么是AdaBoost?用动画和代码的方式,最清晰讲解!】,在此不再赘述。

Boosting族算法最著名的代表即为AdaBoost算法,其训练过程的伪代码如下图所示:

AdaBoost算法的流程始于初始化训练样本的权重,使每个样本的初始权重相等;随后进行多轮迭代,在每一轮中,算法基于当前的样本权重分布训练一个弱分类器,并计算该分类器在训练集上的错误率,依据错误率为该分类器分配一个权重(错误率越低则权重越高);接着,算法根据本轮分类结果更新样本权重,增加被错误分类样本的权重,减少正确分类样本的权重,使得后续的弱分类器更关注难以处理的样本;最终,将所有弱分类器按其权重进行加权组合,形成强分类器。

3. Bagging与随机森林

如果我们想要得到泛化性能强的集成,那么集成中的个体学习器应该尽可能地相互独立,虽然在现实中无法完全实现,但是我们可以设法使基学习器尽可能具有较大的差异。同时,各个基学习器又不能完全不一样,因为这会使得每个个体学习器只用到了一小部分训练数据,甚至有可能不足以进行有效学习。因此,我们可以考虑使用相互有交叠的采样子集

(1)Bagging

Bagging算法的算法基础即为我们在第二章中学习过的自助采样法给定包含mm个样本的初始数据集,通过自助采样法,我们可以采样出TT个含mm个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基学习器的结果进行结合(简单投票法),这就是Bagging的基本流程。

与标准AdaBoost只适用于二分类任务不同,Bagging能够不经修改地用于多分类、回归等任务。

(2)随机森林

随机森林(Random Forest,RF)是Bagging的一个扩展变体,这种方法将决策树作为基学习器,并且在决策树的训练过程中进一步引入了随机属性选择。具体来说,传统决策树在选择划分属性时是在当前结点的属性集合(假定有d个属性)中选择一个最优属性,而在RF中,对于基决策树的每个结点,需要先从该结点的属性集合中随机选择一个包含kk个属性的子集,然后再从这个子集中选择一个最优属性用于划分。一般来说,推荐k=log2dk=\log _2d

RF在很多现实任务当中展现出了强大的性能,和Bagging中基学习器的多样性仅来自样本扰动不同,随机森林中的基学习器的多样性不仅来自样本扰动,还来自属性扰动,使得最终集成的泛化性能可以通过基学习器之间差异度的增加而进一步提升。

4. 方差和偏差视角

从偏差-方差分解的角度来看,Boosting主要关注降低偏差,因此Boosting能够基于泛化性能相当弱的学习器构建出很强的集成;而Bagging主要关注降低方差,因此它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显。

二、重点题目回顾


机器学习期末复习——第八章
http://example.com/2026/01/12/ml10/
作者
谢斐
发布于
2026年1月12日
许可协议