一.Stacking和blending的概念
(1).stacking是k折交叉验证,元模型的训练数据等同于基于模型的训练数据,该方法为每个样本都生成了元特征,每生成元特征的模型不一样(k是多少,每个模型的数量就是多少);测试集生成元特征时,需要用到k(k fold不是模型)个加权平均;
(2).blending是holdout方法,直接将训练集切割成两个部分,仅10%用于元模型的训练;
四.Blending
Blending与Stacking大致相同,只是Blending的主要区别在于训练集建立一个 Holdout集,只在Holdout集上继续预测,用不相交的数据训练不同的 Base Model,将它们的输出取(加权)平均。
例如Holdout是10%的训练数据,第二阶段的 stacker 模型就基于第一阶段模型对这10%训练数据的预测值进行拟合。说白了,就是把Stacking流程中的 K-Fold CV 改成 HoldOut CV。
Blending的优点在于:
(1).比stacking简单(因为不用进行k次的交叉验证来获得stacker feature)
(2).避开了一个信息泄露问题:generlizers和stacker使用了不一样的数据集
(3).在团队建模过程中,不需要给队友分享自己的随机种子
Blending的缺点在于:
(1).使用了很少的数据
(2).blender可能会过拟合(其实大概率是第一点导致的)
(3).stacking使用多次的CV会比较稳健