KAGGLE ENSEMBLING GUIDE
标签(空格分隔): 未分类
本文主要引自KAGGLE ENSEMBLING GUIDE,有兴趣的可以直接到原文去看,本文是对其原文做的一些总结。
Ensemble方法是机器学习中一种很重要的方法,本文主要讲了两部分:一部分是直接对submission file进行ensemble,另一部分是使用stack/blend方法。
通过submissin file进行ensemble
直接利用模型生成的submissionfile来进行ensemble非常的方便,尤其是在团队进行工作的时候。
1. 直接利用各submission的结果进行投票。
利用该种方法,当ensemble越多的时候,越能得到好的效果。但是,最好能使用的是线性关系较弱的文件,也就是皮尔森相似度较低的两类共同ensemble.
2. 根据权重进行投票
对于效果好的模型,我们给他更高的投票权重。
3. 取平均
对所得的结果取其平均值
4. 排序取平均
具体源代码可以参考这里
stacking&blending
所谓的stack以及blending的意思就是:
先用model拟合出一个模型的预测值,然后再用一个模型拟合出来。
所以有时候两者可以互称。
例如,当我们有一个模型,那么我们可以用k-fold的方法分成多份,每份都有一个(train, test),那么我们对每份的train拟合,对每个test进行predict,那么所有的份合并之后,我们就有了一份针对所有train的预测值;
既然我们做了对train的预测,用于后续的下一步的model的拟合,那么真正的test数据也要做相应的转换。
具体转换方法有多种:可以在每份的数据在通过该份数据的train拟合之后,除了对该份数据的test部分进行预测之外,也对整个真正的test数据进行预测。这样,分成多少份,就会对真正的test数据预测几次,最后取均值作为其预测值即可;也可以直接用整体的train数据fit模型,然后直接predict test的数据作为预测值即可。
如果我们想用多个模型,那么重复上述过程即可。即上面的过程运行一次,会产生一个一维的值用于下一步的预测;多个模型即会产生多列的,即多维的数据,作为下一步的模型的输入值而已。
这样,我们就有了一份新的train数据和test数据,再用新的模型进行拟合与预测就行了