模型融合stacking

kaggle比赛利器stacking

模型叠加

我们以二层叠加为例子理解它

我们有模型model1(可以是GBDT.xgboots等等)

有训练集500,验证集200

首先我们对model1进行k折交叉验证(这里我们选择5),也就是说我们把训练集分为5份,用4份训练,1份验证。

1.将(1234)做训练,并用5的数据预测5的标签,并预测验证集

2.将(1235)做训练,并用4的数据预测4的标签,并预测验证集

......

做5次之后,我们得到5*100的预测训练集结果,和5*200的验证集结果,我们将验证集平均,得到的还是200的验证集结果

假设第一层我们有3个model,重复以上操作

我们将3*5*100的预测训练集结果+ label(正确的结果)输入第二层模型。拟合后,用我们的3*200风验证集进行验证。

对于新来数据预测。

我们先经过第一层模型,得到结果后输入到第二层模型,得到最终结果。

我对第二层模型的理解。第二层模型其实在找第一层每个模型与正确结果的差距,得到第二层模型结果后,通过第二层模型纠正。最终结果更加准确

你可能感兴趣的:(模型融合stacking)