使用堆叠法组合预测器

Beginner

This tutorial is from open-source community. Access the source code

简介

在本实验中,我们将使用堆叠法(Stacking method)来融合多个估计器以进行预测。在这种策略中,一些估计器分别在部分训练数据上进行拟合,而最终估计器则使用这些基估计器的堆叠预测结果进行训练。我们将使用艾姆斯房屋数据集(Ames Housing dataset)来预测房屋的最终对数价格。我们将使用 3 个学习器,包括线性和非线性的,并使用岭回归器(ridge regressor)将它们的输出组合在一起。我们还将比较每个单独预测器以及回归器堆叠的性能。

虚拟机使用提示

虚拟机启动完成后,点击左上角切换到“笔记本”(Notebook)标签页,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,可以随时向 Labby 提问。课程结束后提供反馈,我们会及时为你解决问题。

下载数据集

我们将使用艾姆斯房屋数据集(Ames Housing dataset),该数据集最初由迪恩·德·科克(Dean De Cock)汇编,在被用于 Kaggle 挑战(Kaggle challenge)后变得更广为人知。它是爱荷华州艾姆斯市的 1460 套住宅的集合,每套住宅由 80 个特征描述。我们将用它来预测房屋的最终对数价格。在这个例子中,我们将只使用通过梯度提升回归器(GradientBoostingRegressor())选择的 20 个最相关的特征,并限制条目数量。

创建数据预处理管道

在使用艾姆斯数据集之前,我们仍需要进行一些预处理。首先,我们将选择数据集的分类列和数值列,以构建管道的第一步。然后,我们需要根据最终的回归器设计预处理管道。如果最终的回归器是线性模型,则需要对类别进行独热编码。如果最终的回归器是基于树的模型,那么序数编码器就足够了。此外,对于线性模型,数值需要进行标准化,而基于树的模型可以直接处理原始数值数据。不过,两种模型都需要一个插补器来处理缺失值。

在单个数据集上堆叠预测器

现在我们可以使用艾姆斯房屋数据集来进行预测了。我们检查每个单独预测器以及回归器堆叠的性能。我们组合了 3 个学习器(线性和非线性的),并使用岭回归器将它们的输出组合在一起。堆叠回归器将结合不同回归器的优势。然而,我们也发现训练堆叠回归器在计算上要昂贵得多。

测量并绘制结果

我们将测量堆叠回归器相对于各个单独预测器的结果,并进行绘图。

总结

在这个实验中,我们学习了堆叠(Stacking)方法,即融合多个估计器来进行预测。我们使用了艾姆斯房屋数据集来预测房屋的最终对数价格。我们还学习了如何根据最终的回归器设计预处理管道,以及如何衡量每个单独预测器和回归器堆叠的性能。