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 为例,它的基本原理如图所示:
整个过程很像 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
这里的文章,已经里面提到的链接也都看了下,别人也在做这一块