数据挖掘的学习和细节思考
(自己学习记录使用)
本次学习是在建模调参的基础上,根据他人的文章进行研究学习。通过细分步骤和深究每一步的意义,对于数据挖掘有一个更好的认识。
参考链接为:Datawhale 零基础入门数据挖掘-Task5 模型融合
由于有许多的代码示例,所以在此仅作一些个人向的总结。并且记录一些参考文章的链接以进行学习。
模型融合
目标:将调参后的数据进行模型融合
1、融合的方式
- 简单加权融合:
回归(分类概率):算术平均融合(Arithmetic mean),几何平均融(Geometric mean);
分类:投票(Voting)
综合:排序融合(Rank averaging),log融合 - stacking/blending:构建多层模型,并利用预测结果再拟合预测。
- boosting/bagging(在xgboost,Adaboost,GBDT中已经用到):多树的提升方法
投票法和平均法都相当于求出几个值,对于值进行一个综合评价(类似于平均数),然后得出一个适中的结论。
另外关于STACKING模型的详细讲解在开头参考链接里有讲,这里就不再赘述了。
另外还可以参考数据挖掘竞赛利器-Stacking和Blending方式
另外一个参考链接回归分析的五个基本假设
2、关于融合的几点学习(搬运):
1)结果层面的融合,这种是最常见的融合方法,其可行的融合方法也有很多,比如根据结果的得分进行加权融合,还可以做Log,exp处理等。在做结果融合的时候,有一个很重要的条件是模型结果的得分要比较近似,然后结果的差异要比较大,这样的结果融合往往有比较好的效果提升。
2)特征层面的融合,这个层面其实感觉不叫融合,准确说可以叫分割,很多时候如果我们用同种模型训练,可以把特征进行切分给不同的模型,然后在后面进行模型或者结果融合有时也能产生比较好的效果。
3)模型层面的融合,模型层面的融合可能就涉及模型的堆叠和设计,比如加Staking层,部分模型的结果作为特征输入等,这些就需要多实验和思考了,基于模型层面的融合最好不同模型类型要有一定的差异,用同种模型不同的参数的收益一般是比较小的。
3、其他参考资料
模型融合及python实现
【机器学习】模型融合方法概述
机器学习比赛大杀器----模型融合(stacking & blending)