一、导入库

二、加载加州房价数据集

三、特征选择:选择前10个最相关的特征

四、分割数据集

五、特征缩放

六、定义基模型

七、交叉验证

八、存储基模型的预测

九、训练元模型:使用XGBoost作为元模型

十、测试集预测

十一、计算均方误差

十二、输出每个基模型的均方误差


十三、总结
堆叠回归(Stacking Regression)是一种集成学习方法,它通过将多个基模型的预测结果结合起来,从而提高整体的预测性能。堆叠回归的原理是利用不同模型的优势,来弥补单一模型的不足,通常在处理回归和分类任务时都非常有效。
堆叠回归的基本原理
-
基模型(Base Models):
- 首先选择多个不同的基模型,这些模型可以是任何机器学习算法,比如线性回归、决策树、随机森林、支持向量机等。
- 每个基模型单独训练,然后对输入数据进行预测。由于每个模型的学习方式不同,它们的预测结果也会有所不同。
-
元模型(Meta Model):
- 将所有基模型的预测结果作为新的特征,组合起来形成一个新的数据集。
- 这个新的数据集用来训练一个元模型(又称为次级模型),元模型的目标是从这些基模型的输出中学习如何做出最终的预测。
- 元模型可以是一个简单的线性模型,也可以是更复杂的非线性模型,比如 XGBoost 或神经网络。
堆叠回归的工作流程
-
数据准备:
-
交叉验证生成基模型预测:
- 使用 K 折交叉验证 来训练每个基模型。每个基模型会在 K-1 个折的数据上进行训练,然后在剩下的 1 个折的数据上进行预测。这样可以确保预测结果不会过拟合。
- 将每个基模型在交叉验证过程中得到的预测结果保存下来,作为元模型的输入特征。
-
训练元模型:
- 使用从基模型得到的预测结果,训练一个元模型。
- 元模型学习如何从基模型的输出中,进一步综合得到最终的预测结果。
-
测试集上的最终预测:
- 在测试集上,先用所有基模型生成预测结果,然后将这些结果输入到元模型,得到最终的预测。
举个简单的例子
假设你在做房价预测,有 3 个基模型:
- 线性回归模型
- 决策树回归模型
- 随机森林回归模型
工作流程如下:
- 训练基模型:用这三个基模型分别在训练集上训练,并通过交叉验证在验证集上生成预测。
- 基模型的预测作为新特征:将这 3 个基模型的预测结果合并成一个新的特征矩阵。
- 训练元模型:用新的特征矩阵训练一个新的线性回归模型(或者更复杂的模型,比如 XGBoost)。
- 最终预测:在测试集上,先用基模型生成预测,然后输入元模型得到最终的预测。
优势与劣势
优势:
- 可以结合多个模型的优势,得到更好的预测效果。
- 减少单一模型的缺点,比如过拟合或者欠拟合。
- 灵活性高,可以使用不同类型的模型进行组合。
劣势:
- 训练时间较长,需要训练多个模型,并且需要交叉验证。
- 调参复杂,需要对基模型和元模型进行调优。
- 如果基模型之间相关性很高,提升效果可能有限。
总结
堆叠回归通过将多个基模型的预测结果进行组合,构建一个元模型来最终输出预测结果。它的核心思想在于,通过集成不同模型的学习能力,来提升整体的泛化能力和准确性,是一种非常有效的集成学习方法。