讨厌代码! 2023-03-24 21:10 采纳率: 50%
浏览 42
已结题

BERT文本二分类LOSS变化

大家好,我用BERT模型做文本句二分类,使用的训练集严重不均衡,标签为0的句子占比90%,标签为1的占比10%,得出的loss结果如下:

img

img

请问这样的结果是不是非常不好?我是否需要重新更改数据集?
现有的训练数据集是8000条,我是增加人工标注为1的句子,还是减少标注为0的句子?
根据百度,我使用了FocalLoss,请问参数alpha应该设置为多少比较合适呢?

本科不是计算机专业,毕业设计需要用到文本分析,基础非常薄弱,所以想来问问,麻烦了!

  • 写回答

1条回答 默认 最新

  • H3T 2023-03-25 09:49
    关注

    对于严重不均衡的数据集,模型容易出现偏差,导致对于少数类的预测效果较差。因此,需要对数据集进行一些处理来平衡数据,以提高模型的预测能力。具体处理方法有以下几种:
     

    过采样(Oversampling):增加少数类样本的数量,使得数据集中正负样本的比例更接近。比如可以使用SMOTE算法来生成合成样本。
    可以使用一些Python库中的方法来实现过采样,比如imblearn库中的RandomOverSampler方法或者SMOTE方法。这些方法可以自动将少数类样本进行复制或者合成,以增加少数类样本的数量。需要注意的是,过度的过采样可能会导致模型的过拟合,因此需要根据实际情况来确定过采样的倍数。
     
    欠采样(Undersampling):减少多数类样本的数量,使得数据集中正负样本的比例更接近。比如可以使用Random Under Sampling或者Tomek Links等算法来进行欠采样。
    可以使用一些Python库中的方法来实现欠采样,比如imblearn库中的RandomUnderSampler方法或者Tomek Links方法。这些方法可以自动删除多数类样本,以减少多数类样本的数量。需要注意的是,欠采样可能会丢失重要信息,因此需要根据实际情况来确定欠采样的比例。
     
    结合过采样和欠采样:在进行过采样和欠采样时,可以结合使用,比如在进行过采样后再进行欠采样,或者在进行欠采样后再进行过采样。
    可以先使用过采样方法来增加少数类样本的数量,然后再使用欠采样方法来减少多数类样本的数量,以达到平衡数据的目的。需要注意的是,结合过采样和欠采样可能会导致模型的欠拟合或者过拟合,因此需要根据实际情况来确定过采样和欠采样的比例。
     
    使用类别权重(Class Weight):在训练模型时,给不同类别的样本赋予不同的权重,可以让模型更加关注少数类的样本,从而提高对少数类的预测能力。比如在使用Focal Loss时,可以通过设置参数alpha来调整类别权重,让模型更加关注少数类的样本。
    对于您的数据集,由于标签为0的句子占比较大,可以尝试使用过采样的方式来增加少数类样本的数量,或者使用类别权重的方式来调整类别权重,让模型更加关注少数类的样本。
    关于Focal Loss的参数alpha,它是用来调整类别权重的,通常情况下,可以将alpha设置为正样本数量除以负样本数量的比例,以保持正负样本的比例相对均衡。但是具体的参数设置还需要根据实际情况调试,以达到最优的效果。

    希望以上解答能够帮助您,祝您顺利完成毕业设计!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月27日
  • 已采纳回答 3月26日
  • 创建了问题 3月24日

悬赏问题

  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
  • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题
  • ¥15 win10,这种情况怎么办
  • ¥15 如何在配置使用Prettier的VSCode中通过Better Align插件来对齐等式?(相关搜索:格式化)
  • ¥100 在连接内网VPN时,如何同时保持互联网连接
  • ¥15 MATLAB中使用parfor,矩阵Removal的有效索引在parfor循环中受限制
  • ¥20 Win 10 LTSC 1809版本如何无损提升到20H1版本
  • ¥50 win10 LTSC 虚拟键盘不弹出
  • ¥30 微信小程序请求失败,网页能正常带锁访问
  • ¥15 Matlab求解微分方程,如何用fish2d进行预优?