一、个体与集成

机器学习

「集成学习」通过构建并结合多个学习器来完成学习任务,常可以获得比单一学习器显著优越的泛化性能,有时也被称为多分类器系统

集成学习的一般结构为,先产生一组“个体学习器”,再用某种策略将它们结合起来。个体学习器通常由一个现成的学习算法从训练数据中产生。

  • 个体学习器可以是同质的,即每个个体学习器采用相同的学习算法,称之为基学习器
  • 个体学习器也可以是异质的,即个体学习器可以采用不同的学习算法,此时每个个体学习器称之为「组件学习器」

例如二分类任务中,假设三个分类器在三个测试样本上的表现如下表所示

a 测试例1 测试例2 测试例3


集成
b 测试例1 测试例2 测试例3


集成
c 测试例1 测试例2 测试例3


集成

其中打勾表示分类正确,打叉表示分类错误,集成学习的结果通过投票法产生,即少数服从多数

  • 表 a 中,每个分类器都只有 的精度,但集成学习却达到了
  • 表 b 中,三个分类器没有差别,集成之后性能没有提高
  • 表 c 中,每个分类器的精度都只有 ,集成学习的结果变得更糟

要获得好的集成,个体学习器应“好而不同”,即个体学习器要有一定的“准确性”,即学习器不能太坏,并且要有多样性,即学习器之间具有差异

考虑一个二分类问题, 和真实函数 ,假设基分类器的错误率为 ,且 ,对每个基分类器 ,由

假设通过简单投票法结合 个基分类器,若有超过半数的基分类器正确,则集成分类就正确

假设基分类器的错误率相互独立,则由Hoeffding 不等式,令 ,可得集成错误率为

上式显示,随着集成中个体分类器数目 的增大,集成的错误率将指数级下降,最终趋向于零。

上述分析有一个关键假设,基学习器的误差相互独立。在现实任务中,个体学习器是为了解决同一个问题训练出来的,不可能相互独立。事实上,个体学习器的准确性和多样性存在冲突。一般的,准确性很高以后,要增加多样性就需要牺牲准确性。

如何产生并结合“好而不同”的个体学习器,是集成学习研究的核心

两大集成学习方法

  • 个体学习器间存在强依赖关系、必须串行生成的序列方法:Boosting 算法
  • 个体学习器之间不存在强依赖关系,可同时生成的并行化方法:Bagging 算法

二、Boosting 算法

三、Bagging 与随机森林

欲得到泛化性能强的集成,集成中的个体学习器应尽可能相对独立;虽然「独立」在现实任务中无法得到,但可以设法使基学习器尽可能具有较大的差异。

从实现上来说,可以对训练样本进行采样,产生出若干个不同的子集,再从每个数据子集中训练出一个基学习器。由于训练数据不同,我们获得的基学习器可具有比较大的差异。

如果采样出的每个子集都完全不同,则每个基学习器只用到了一小部分训练数据,甚至不足以进行有效学习,无法确保产生出比较好的学习器。

可能的情况下,考虑使用相互有交叠的采样子集。

一种常见的并行式集成学习算法叫做Bagging 算法,其一种重要实践为随机森林

四、结合策略与学习法

六、小结

  • 个体与集成的基本概念
  • Boosting 算法:个体学习器间存在强依赖关系,通过串行生成的序列化方法进行集成学习。
  • Bagging 算法:个体学习器间不存在强依赖关系、通过同时生成的并行化方法进行集成学习
  • 结合策略:如何结合个体学习器,包括平均法,投票法,学习法等
  • 多样性:个体学习器的准确性越高、多样性越大,则集成的泛化能力越强。