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