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风验证集进行验证。
对于新来数据预测。
我们先经过第一层模型,得到结果后输入到第二层模型,得到最终结果。
我对第二层模型的理解。第二层模型其实在找第一层每个模型与正确结果的差距,得到第二层模型结果后,通过第二层模型纠正。最终结果更加准确