模型融合方法总结

本文探讨了模型融合在NLP单分类任务中的应用,通过对比投票、平均、stacking和blending方法,展示了如何利用bert、roberta和macbert模型的组合来提高准确率。重点分析了数据样本多样性、模型间差异性对融合效果的影响。
摘要由CSDN通过智能技术生成

1、简介

  • 简介:模型融合就是通过多个模型共同决策去提升任务的效果,是一种基本可以稳定提升任务效果的方法。
  • 融合原则:挑选效果尽可能好,而差异尽可能大的模型进行融合。
  • 常见方法:投票、求均值、stacking、blending

2、常见方法简介

投票法 vote

少数服从多数,仅适用于分类算法。

均值 avg

多个模型的输出求均值。

stacking

stacking和blending都是希望使用一个模型去融合模型,而不是简单的投票或者相加。但是如果使用相同的数据去训练用于融合的模型,存在数据泄露的问题,导致过拟合。所以stacking采用交叉验证的方法缓解这个问题:
在这里插入图片描述
步骤:
1、n个模型把数据分成n分(也可以随意划分,只要训练模型和融合模型的数据分开)。
2、每次取其中的(n-1)份数据用于训练模型,用剩下的1份数据训练融合模型
3、测试模型,所有的训练模型预测测试集,得到output求均值,然后传入融合模型,得到最终结果

blending

blending通过划分训练集和验证集的方式,解决数据泄露的问题。

在这里插入图片描述
步骤:
1、将训练集划分为训练集和验证集
2、可以看到blending不同模型的训练集是一样的,前面有提到,模型的精度高和模型间的差异性大都可以提升模型效果,所以也可以采用一些采样方法和数据增强方法增加样本的多样性
3、用训练集训练多个模型,用验证集训练融合模型,这里有两种方式训练融合模型,可以直接用均值,也可以采用带权重的均值。

3、多样性增强

前面有提到,模型的精度高和模型间的差异性大都可以提升模型效果,列举一些常用的增加模型间的差异的方法:

  • 数据样本扰动:交叉验证、不同的采样方式、数据增强、对抗学习
  • 输入属性扰动:例如随机森林,每次不传入所有字段,采样一定比例的字段。
  • 输出表示的扰动:例如dropout等操作。
  • 模型属性扰动:对相同的模型取不同的参数,形成扰动

4、实验

实验简介

  • 任务:NLP单分类任务,提供一个文本,分类文本的类型,共34个种类
  • 数据规模:训练集21万条,测试集5万条,文本平均长度15
  • 使用到的模型:bert-base, roberta, macbert

实验结果

accprecisionrecallf1
bert-base0.7260.7340.6580.694
roberta0.7350.7200.6710.695
macbert0.7320.7420.6460.691
avg 30.7470.7430.6840.714
vote 30.7420.7230.6870.714
blending 30.7470.7310.6900.710
blending weight 30.7420.7130.6840.705
stacking 30.7460.7490.6770.711
blending 60.7470.7300.6900.709
blending weight 60.7430.0.7120.6840.697
stacking 60.7580.7420.6940.717
stacking 90.7590.7500.6970.723

备注:

  • 3、6、9代表3个模型、6个模型、9个模型,其中6个模型和9个模型是3个基础模型分别用了2次和3次
  • weight代表带权重的blending

实验结论

1、由于我的blending没有采用样本扰动的方法,都是用相同的训练集,样本的差异性较小,导致6个模型和9个模型不能带来准确率提升。而stacking由于交叉验证,每个模型的训练样本都有一定的差异,模型效果有了较大的提升。
2、融合都会有效果的提升,融合方式对结果影响不是特别大,主要是差异性和模型精度能带来更好的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值