
190
|
第
7
章
7.6 堆叠法
本章我们要讨论的最后一个集成方法叫作堆叠法(stacking),又称层叠泛化法
注 18
。它基于
一个简单的想法:与其使用一些简单的函数(比如硬投票)来聚合集成中所有预测器的预
测,我们为什么不训练一个模型来执行这个聚合呢?图 7-12 显示了在新实例上执行回归
任务的这样一个集成。底部的三个预测器分别预测了不同的值(3.1、2.7 和 2.9),然后
最终的预测器(称为混合器或元学习器)将这些预测作为输入,进行最终预测(3.0)。
1
混合
预测值
新实例
预测
图 7-12:通过混合预测器聚合预测
训练混合器的常用方法是使用留存集
注 19
。我们看看它是如何工作的。首先,将训练集分
为两个子集,第一个子集用来训练第一层的预测器(见图 7-13)。
2
然后,用第一层的预测器在第二个(留存)子集上进行预测(见图 7-14)。因为预测器
在训练时从未见过这些实例,所以可以确保预测是“干净的”。那么现在对于留存集中
的每个实例都有了三个预测值。我们可以使用这些预测值作为输入特征,创建一个新的
训练集(新的训练集有三个维度),并保留目标值。在这个新的训练集上训练混合器,让
它学习根据第一层的预测来预测目标值。
事实上,通过这种方法可以训练多种不同的混合器(例如,一个使用线性回归,另一个
使用随机森林回归,等等)。于是我们可以得到一个混合器层。诀窍在于将训练集分为
三个子集:第一个用来训练第一层,第二个用来创造训练第二层的新训练集(使用第一
层的预测),而第三个用来创造训练第三层的新训练集(使用第二层的预测 ...