详细理解Stacking model
如果你得到了10个不一样的model,并且每个model都各有千秋,这个时候你该怎么选?想必你一定是很为难吧,但通过集成方法,你可以轻松的将10个model合成为1个预测更精确的model。今天要介绍的就是众多集成方法里面的"Stacking"
什么是Stacking?
Leo Breiman 以他在分类和回归树以及随机森林方面的工作而闻名,他在 1996 年关于堆叠回归的论文 (Breiman 1996 b )中将堆叠形式化。尽管这个想法起源于(Wolpert 1992),名为“Stacked Generalizations”,但使用内部 k-fold CV 的现代堆叠形式是 Breiman 的贡献。
(Wolpert的文章获取:https://www.researchgate.net/publication/222467943_Stacked_Generalization)
然而,直到 2007 年,堆叠的理论背景才被开发出来,并且当算法采用了更酷的名称Super Learner (Van der Laan、Polley 和 Hubbard 2007)。此外,作者说明超级学习者将学习基础学习者预测的最佳组合,并且通常表现得与构成堆叠集成的任何单个模型一样好或更好。直到此时,堆叠工作的数学原因尚不清楚,堆叠被认为是一门黑色艺术。
**模型堆叠(Stacking)**是一种有效的集成方法,其中使用各种机器学习算法生成的预测被用作第二层学习算法的输入。该第二层算法经过训练,可以优化组合模型预测以形成一组新的预测。例如,当线性回归用作第二层建模时,它通过最小化最小二乘误差来估计这些权重。但是,第二层建模不仅限于线性模型;预测变量之间的关系可能更复杂,从而为采用其他机器学习算法打开了大门。
一般来说,Stacking由两层组成就够了。但完全可以由多层组成,其中一些层可以用作噪声的处理等等。其实不难发现,多层的Stacking与Deep learning是有点相似的。
All in all ,Stacking一般由两层组成。第一层:表现出色的基本模型;第二层:将第一层模型们的输出作为训练集得到的模型。第二层模型又被称作”meta-model
“,关键作用在于将第一层的所有模型的结果整合起来,进行输出。也就是说,第二层模型将第一层模型的输出作为特征进行训练。
不同种类的Stacking
在Stacking的实际应用中&