集成学习被称作机器学习中的屠龙刀,在很多场景下都取得了不错的效果。

集成学习的思想很简单,三个臭皮匠顶个诸葛亮,也就是算法融合,这些算法可以是相同的,也可以是不同的。

 

集成学习分为两步

1. 先训练一批基分类器  【如果基学习器不同,一般称为个体学习器,意思一样,叫法不同而已】

2. 把这些基分类器组合起来

 

考虑这样一个例子

在二分类任务中,假定三个分类器在三个测试样本上的表现如上图,其中√表示分类正确,×表示分类错误,集成学习的结果通过投票法产生,即“少数服从多数”。

如上图,在(a)中,每个分类器都只有66.6%的精度,但集成学习却达到了100%;在(b)中,三个分类器没有差别,集成之后性能没有提高;在(c)中,每个分类器的精度都只有33.3%,集成学习的结果变得更糟。

 

所以,要获得好的集成效果,基学习器应该“好而不同”

1. 基学习器准确率不能太低

2. 基学习器之间要有差别

 

根据基学习器的生成方式,集成学习大概可以分类两类

1. boosting:基学习器之间具有强依赖关系,必须串行生成,也叫提升

2. bagging:基学习器之间彼此独立,可以并行生成,也叫装袋

 

boosting

对于分类问题,求得一个弱分类器要比一个强分类器容易得多,boosting就是把弱学习器提升为强学习器的算法,它是一个家族,包含多种算法,思路大致相同

1. 先从初始训练集中获取一个基分类器

2. 根据基分类器的表现对样本权重进行调整,提高被错分样本的权重,使得后续被重点关注

3. 根据调整后的样本再次获取一个基分类器

4. 如此重复,至迭代结束,一般是迭代M个分类器

5. 把基分类器组合起来

 

bagging

首先学习自助采样法,见我的博客

bagging 首先进行 M 轮自助采样法,得到 M 个样本集,然后每个样本集训练一个基分类器,得到 M 个基分类器,最后组合起来。

 

组合策略

分类问题:简单投票法,一个基学习器一票

回归问题:简单评价法,M个基学习器的均值

 

在训练基学习器时,可采用随机特征,如随机森林。