机器学习系列之集成学习
集成学习ensemble learning本身不是单独的学习算法,而是集众家之长,构建结合多个机器学习器完成学习任务。集成学习可以用于分类问题集成,回归问题集成,特征选择集成,异常点检测集成等。
1.集成学习概述
集成学习的思想:对于训练数据,通过若干个个体学习器,通过一定的结合策略,最终形成一个强学习器,用以完成学习任务。
集成学习有两个主要的问题,需要解决,第一个就是如何获得若干个学习器,第二个就是选择一种集成策略,将这些个体学习器集合成一个强学习器。
2.集成学习之个体学习器
集成学习的第一个问题,如何获得若干个学习器。第一种就是学习器都是一个种类的,或者是同质的如决策树学习器、神经网络学习器。第二种就是学习器不都是一个种类的,或者异质的。比如对分类问题的训练集采用SVM/LR/朴素贝叶斯等个体学习器,再通过某种结合策略来确定最终的分类强学习器。
目前,同质个体学习器,应用最广泛。应用最多的学习器模型,是CART和神经网络。按照个体学习器之间的依赖关系,可以分为两类。第一个是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是boosting系列算法,第二个是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是bagging系列算法。另外还有一种stacking算法。
3.集成学习框架
目前,有三种常见的集成学习框架:bagging,boosting和stacking。这里我们直接摘抄大神的一部分内容。
bagging算法的弱学习器之间没有依赖关系,可以 并行生成。
当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。
在这种情况下,我们将弱学习器称为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,我们首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。
参考文献:很棒的文章,具体的学习细节,请参考下面文章。本文只是一个自学文章。