什么是集成学习?
- 将多个分类方法聚集在一起,以提高分类的准确率。
(这些算法可以是不同的算法,也可以是相同的算法)
- 集成学习法由训练数据构建一组基分类器,然后通过对所有基分类器的预测投票进行分类。
- 严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法。
- 通常,一个集成分类器的分类性能会好于单个分类器。
- 如果把单个分类器当作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。
集成学习的条件
通过集成学习提高分类器的整体泛化能力是有条件的:
1、分类器之间应该有差异,否则只不过是好多个自己在重复做同一件事而已,分类出来的结果是不会有变化的。
2、分类器的精度。每个基分类器的分类精度必须大于0.5。如果都小于0.5的话,随着集成规模的增加,分类精度会下降,最终趋于0。
如何构建具有差异性的分类器?
- 处理数据集
其实就是抽样。获得多个不同的训练子集。流行的方法有袋装(bagging)和提升(boosting)。 - 处理数据特征
通过对训练数据的特征抽取不同子集再分别进行训练。一般用随机子空间,少量余留法(抽取最重要的一些特征),遗传算法等。 - 处理分类器
通过改变一个算法的参数来生成有差异性的同质分类器,比如改变神经网络的结构就可以构建出不同的分类器。
如何得到若干个分类器
参考集成学习原理小结
集成学习的第一个问题就是如何得到若干个分类器。这里我们有两种选择。
第一种就是所有的个体学习器都是一个种类的,或者说是同质的。比如都是决策树个体学习器,或者都是神经网络个体学习器。第二种是所有的个体学习器不全是一个种类的,或者说是异质的。比如我们有一个分类问题,对训练集采用支持向量机个体学习器,逻辑回归个体学习器和朴素贝叶斯个体学习器来学习,再通过某种结合策略来确定最终的分类强学习器。
目前来说,同质个体学习器的应用是最广泛的,一般我们常说的集成学习的方法都是指的同质分类器器。而同质分类器使用最多的模型是CART决策树和神经网络。
同质个体学习器按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是boosting系列算法,第二个是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是bagging和随机森林(Random Forest)系列算法。下面就分别对这两类算法做一个概括总结。
如何对基分类器的结果进行整合?
- 平均法——对于回归预测(数值预测)
- 简单平均,就是取各个分类器结果的平均值。
- 加权平均,