kaggle 模型融合 stacking

https://www.kaggle.com/arthurtok/introduction-to-ensembling-stacking-in-python

这个写的太好了,

前面部分是数据处理,坐着写的比较简单,可以不用细看;

后面是模型的融合,主要采用stacking模式

http://www.cnblogs.com/zhizhan/p/5826089.html

这个链接对stacking模式的介绍比较具体,摘一小段:

Stacking

相比 Blending,Stacking 能更好地利用训练数据。以 5-Fold Stacking 为例,它的基本原理如图所示:

Stacking

整个过程很像 Cross Validation。首先将训练数据分为 5 份,接下来一共 5 个迭代,每次迭代时,将 4 份数据作为 Training Set 对每个 Base Model 进行训练,然后在剩下一份 Hold-out Set 上进行预测。同时也要将其在测试数据上的预测保存下来。这样,每个 Base Model 在每次迭代时会对训练数据的其中 1 份做出预测,对测试数据的全部做出预测。5 个迭代都完成以后我们就获得了一个 #训练数据行数 x #Base Model 数量 的矩阵,这个矩阵接下来就作为第二层的 Model 的训练数据。当第二层的 Model 训练完以后,将之前保存的 Base Model 对测试数据的预测(因为每个 Base Model 被训练了 5 次,对测试数据的全体做了 5 次预测,所以对这 5 次求一个平均值,从而得到一个形状与第二层训练数据相同的矩阵)拿出来让它进行预测,就得到最后的输出。

--------------------------------------------------------------------------------------------

这个教程还有一些缺陷:

作者提到了两点:模型参数没有通过网格搜索进行优化、可以使用更多的base model

可视化我建议还是用seaborn,比作者的简洁,最好能结合到类里面

层数可以提升,不止2层

模型最好能保存下来

最好能弄一个pipeline框架出来(还没啥思路,需要继续找找大牛是咋样的,吸收下)

--------------------------------------------------------------------------------

上面只是分类的,接下来看看源码

https://www.kaggle.com/mmueller/allstate-claims-severity/stacking-starter/run/390867/code

https://www.kaggle.com/mmueller/stacking-starter

接下来,继续看看大牛文章,总结一套通用框架出来

http://www.jianshu.com/p/cc6ff3abfed5

这里的文章,已经里面提到的链接也都看了下,别人也在做这一块

 

posted on 2017-06-06 15:29  Kernel_wu  阅读(412)  评论(0编辑  收藏  举报

导航