集成学习-Stacking算法
Posted GoAl的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集成学习-Stacking算法相关的知识,希望对你有一定的参考价值。
Stacking (堆叠)的基本思想
Stacking是通过一个元分类器或者元回归器来整合多个分类模型或回归模型的集成学习技术。基础模型利用整个训练集做训练,元模型将基础模型的特征作为特征进行训练。
基础模型通常包含不同的学习算法,因此stacking通常是异质集成。
将个体学习器结合在一起的时候使用的方法叫做结合策略。对于分类问题,我们可以使用投票法来选择输出最多的类。对于回归问题,我们可以将分类器输出的结果求平均值。
上面说的投票法和平均法都是很有效的结合策略,还有一种结合策略是使用另外一个机器学习算法来将个体机器学习器的结果结合在一起,这个方法就是Stacking。
在stacking方法中,我们把个体学习器叫做初级学习器,用于结合的学习器叫做次级学习器或元学习器(meta-learner),次级学习器用于训练的数据叫做次级训练集。次级训练集是在训练集上用初级学习器得到的。
过程1-3 是训练出来个体学习器,也就是初级学习器。
过程5-9是 使用训练出来的个体学习器来得预测的结果,这个预测的结果当做次级学习器的训练集。
过程11 是用初级学习器预测的结果训练出次级学习器,得到我们最后训练的模型。
如果想要预测一个数据的输出,只需要把这条数据用初级学习器预测,然后将预测后的结果用次级学习器预测便可。
结合策略
集成学习的第二类模型,为了提高集成的泛化能力,每个基学习器之间不存在很强的依赖性,所以最终预测结果时,需要一定的策略对T个结果进行结合。下面介绍结合策略。
1.平均法
对数值型输出,最常见的结合策略是使用平均法。
- 简单平均法
- 加权平均法
但是对于规模比较大的集成来说,权重参数比较多,较容易导致过拟合。加权平均法未必一定优于简单平均法。
一般而言,在个体学习器性能相差较大时,宜使用加权平均法,而在个体学习器性能相近时,宜使用简单平均法。
这一点在第二个项目中深有体会,该模型有三个损失函数,每个损失函数的性能差别比较大,所以用了加权,在第一个数据集中调好参数以后,在第二个数据集中,效果就不是很好,需要重新进行调参。
2.投票法
- 绝对多数投票法
若某标记得票过半数,则预测为该标记;否则拒绝预测。
- 相对多数投票法
预测为得票最多的标记。若同时有多个标记获得最高票,则从中随机选取一个。
- 加权投票法
3.学习法
当训练数据很多时,一种更为强大的结合策略是使用“学习法”,即通过另一个学习器来进行结合。
以上是关于集成学习-Stacking算法的主要内容,如果未能解决你的问题,请参考以下文章
7. 集成学习(Ensemble Learning)Stacking
机器学习入门-集成算法(bagging, boosting, stacking)