模型融合

一、模型融合的认识、分析

模型融合就是训练多个模型,然后按照一定的方法集成多个模型,因为它容易理解、实现起来也较为简单,同时能增加模型效果。

1.模型融合的概念

先产生一组“个体学习器”,再通过某种策略将它们组合起来,加强模型的效果。

2.模型融合应用广发的原因

可以通过数学证明模型,随着集成中个体分类器数目T的增大,集成的错误率将指数级下降,最终趋向于零。

3.模型融合的条件

个体学习器准确性越高,多样性越大,融合模型越好。
**Base Model之间的相关性要尽可能的小。**这就是为什么非Tree-based Model往往表现不是最好但还是要将它们包括在Ensemblel里面的原因。
**Baes Model之间的性能表现不能差距太大。**这个其实是Trade-off,在实际中和有可能表现相近的Model中只有寥寥几个而且它们之间相关性还不低。但是时间告诉我们即使在这种情况下Ensemble还是能大幅度提高成绩。

4.模型融合的分类

按照个体学习器的分类关系分为两类:

  • 个体学习器间存在强依赖关系、必须串行生成的序列化方法;
  • 个体学习器之间不存在强依赖关系,可以同时生成的并行化方法;

二、模型融合的结合方法

2.1 平均法

平均法有一般的评价和加权平均。对于平均法来说一般用于回归预测模型中,在Boosting系列融合模型中,一般采用的是加权平均融合。

2.2 投票法

有绝对多数投票(得票数超过一半),相对多数投票(得票最多),加权投票。这个还理解,一般用于分类模型。

2.3 学习法

通过另一个学习器来进行结合,将个体学习器称为初级学习器,用于结合的学习器称为次级学习器或元学习器
(1)Stacking方法:Stacking先从初级数据集训练出初级学习器,然后“生成”一个数据集用于训练次级学习器。在这个新数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记。
(2)Blending方法:Blending与Stacking大致相同,只是Blending的主要却别在于训练集不是通过K-Fold的CV策略来获得预测集从而生成第二阶段模型的特征,而是建立一个Holdout集

三、实例

回归/分类概率-融合:

(1)简单加权平均,结果直接融合
通过简单的实现,我们可以发现加权结果相对于之前的结果是有提升的。
还有一些特殊的形式,比如mean平均median平均
(2)Stacking融合(回归)
通过实例代码可以发现,模型结果先对于之前有进一步的提升,这是我们需要注意的一点是,对于第二层Stacking的模型不宜选取的过于复杂,这样会导致模型在训练集上过拟合,从而使得在测试集上并不能达到很好的效果。
(3)投票机制(Voting)
Voting即投票机制,分为软投票和硬投票两种,其原理采用少数服从多数的思想。
(4)分类的stacking/blending融合
同上
blending模型
优点在于:

  • 比stacking简单(因为不用进行k次的交叉验证来获得stacker feature)
  • 避开了一个信息泄露问题:generlizers和stacker使用了不一样的数据集
    缺点在于:
  • 使用了很少的数据(第二阶段的blending只使用了training set10%的量)
  • blender可能会过拟合
  • stacking使用多次的交叉验证会比较稳健

四、经验总结

模型融合有很多优势:

  1. 结果层面的融合,这种是最常见的融合方式,其可行的融合方法也有很多种,比如根据结果的得分机型加权融合,还可以做Log,exp处理等。再做结果融合的时候,有一个很重要的条件是模型结果的得分要比较近似,但是结果的擦混一要比较大。
  2. 特征层面的融合,这个层面主要是队伍合并之后大家可以相互学习特征工程。如果我们使用同种模型训练,可以把特征进行切分给不同模型,然后再后面进行模型或者结果融合优势也能产生比较好的效果。
  3. 模型层面的融合,这方面会涉及模型的堆叠和设计,需要大量的实验和思考,才能得到比较适合的效果。

参考

机器学习模型优化之模型融合.

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python模型融合是一种将多个模型组合在一起以提高整体表现的技术。在机器学习比赛中,特别是团队参与的比赛中,模型融合是一个重要的手段,可以在模型相差较大但表现良好的情况下显著提升结果。 在Python中,有几种常见的模型融合方法。其中一种是投票法(Voting),它通过集成多个模型的预测结果,并根据多数投票的原则来确定最终的预测结果。在使用Python进行投票法模型融合时,可以使用`sklearn.ensemble.VotingClassifier`类来实现。 另一种常见的模型融合方法是堆叠法(Stacking),它通过训练一个元模型来融合多个基模型的预测结果。在Python中,可以使用`mlxtend.classifier.StackingClassifier`类来实现堆叠法模型融合。 除了投票法和堆叠法,还有其他的模型融合方法,如加权平均、Bagging等。这些方法都可以在Python中通过相应的库和函数来实现。选择何种方法取决于具体的问题和数据集的特点。 总结起来,Python模型融合是一种将多个模型组合在一起以提高整体表现的技术。投票法和堆叠法是常见的模型融合方法,在Python中可以使用相应的库和函数来实现。具体选择哪种方法需要根据问题和数据集的特点来决定。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [模型融合](https://blog.csdn.net/Lemon_pudding/article/details/108813638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python数据科学竞赛模型融合](https://blog.csdn.net/qq_43240913/article/details/110822100)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

alstonlou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值