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

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日

悬赏问题

  • ¥15 latex投稿显示click download
  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?