aliases:
- 多分类器系统
「集成学习」通过构建并结合多个学习器来完成学习任务,常可以获得比单一学习器显著优越的泛化性能,有时也被称为多分类器系统
集成学习的一般结构为,先产生一组“个体学习器”,再用某种策略将它们结合起来。个体学习器通常由一个现成的学习算法从训练数据中产生。
例如二分类任务中,假设三个分类器在三个测试样本上的表现如下表所示
a | 测试例1 | 测试例2 | 测试例3 |
---|---|---|---|
✅ | ✅ | ❌ | |
❌ | ✅ | ✅ |
|
✅ | ❌ | ✅ |
|
集成 | ✅ | ✅ | ✅ |
b | 测试例1 | 测试例2 | 测试例3 |
✅ | ✅ | ❌ | |
✅ | ✅ | ❌ |
|
✅ | ✅ | ❌ |
|
集成 | ✅ | ✅ | ❌ |
c | 测试例1 | 测试例2 | 测试例3 |
✅ | ❌ | ❌ | |
❌ | ✅ | ❌ |
|
❌ | ❌ | ✅ |
|
集成 | ❌ | ❌ | ❌ |
其中打勾表示分类正确,打叉表示分类错误,集成学习的结果通过投票法产生,即少数服从多数
要获得好的集成,个体学习器应“好而不同”,即个体学习器要有一定的“准确性”,即学习器不能太坏,并且要有多样性,即学习器之间具有差异
考虑一个二分类问题,
假设通过简单投票法结合
假设基分类器的错误率相互独立,则由Hoeffding 不等式,令
上式显示,随着集成中个体分类器数目
上述分析有一个关键假设,基学习器的误差相互独立。在现实任务中,个体学习器是为了解决同一个问题训练出来的,不可能相互独立。事实上,个体学习器的准确性和多样性存在冲突。一般的,准确性很高以后,要增加多样性就需要牺牲准确性。
如何产生并结合“好而不同”的个体学习器,是集成学习研究的核心
两大集成学习方法
欲得到泛化性能强的集成,集成中的个体学习器应尽可能相对独立;虽然「独立」在现实任务中无法得到,但可以设法使基学习器尽可能具有较大的差异。
从实现上来说,可以对训练样本进行采样,产生出若干个不同的子集,再从每个数据子集中训练出一个基学习器。由于训练数据不同,我们获得的基学习器可具有比较大的差异。
如果采样出的每个子集都完全不同,则每个基学习器只用到了一小部分训练数据,甚至不足以进行有效学习,无法确保产生出比较好的学习器。
可能的情况下,考虑使用相互有交叠的采样子集。
一种常见的并行式集成学习算法叫做Bagging 算法,其一种重要实践为随机森林