集成学习(ensemble learning)
在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。单个学习器我们称为弱学习器,相对的集成学习则是强学习器。
- 弱学习器:常指泛化性能略优于随机猜测的学习器:例如在二分类问题桑精度略高于50%的分类器。
- 强学习器:通过一定的方式集成一些弱学习器,达到了超过所有弱学习器的准确度的分类器。
集成学习本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。集成学习可以用于分类问题集成,回归问题集成,特征选取集成,异常点检测集成等等,可以说所有的机器学习领域都可以看到集成学习的身影。
1. 什么是集成学习?
从下图,对集成学习的思想做一个概括。对于训练集数据,通过训练若干个个体学习器,通过一定的结合策略,来完成学习任务,(常常可以获得比单一学习显著优越的学习器)就可以最终形成一个强学习器。
集成学习是一种技术框架,其按照不同的思路来组合基础模型,从而达到更好的目的。集成学习有两个主要的问题需要解决,第一是如何得到若干个个体学习器,第二是如何选择一种结合策略,将这些个体学习器集合成一个强学习器。
2. 如何得到若干个个体学习器?
对于如何得到若干个个体学习器,这里有两种选择。
第一种是所有的个体学习器都是一个种类的,或者说是同质的。比如都是决策树个体学习器,或者都是神经网络个体学习器。比如bagging和boosting系列。
第二种是所有的个体学习器不全是一个种类的,或者说是异质的。比如我们有一个分类问题,对训练集采用支持向量机个体学习器,逻辑回归个体学习器和朴素贝叶斯个体学习器来学习,再通过某种结合策略来确定最终的分类强学习器。这种集成学习成为Stacking。
同质个体学习器按照个体学习器之间是否存在依赖关系可以分为两类。
第一种是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是Boosting系列算法。
第二种是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是Bagging系列算法。
(1). 集成学习之Bagging
代表算法:随机森林(Random Forest)