pytorch 平衡多标签数据集

ua4mk5z4  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(115)

我有一个包含电子邮件文本及其相应标签的数据集。每个电子邮件可以有多个标签,这使其成为多标签问题。我对标签使用了多热编码,所以它们看起来像[1,0,1,0,0],其中1表示电子邮件属于该类。然而,我的数据是不平衡的,一些标签组合几乎没有出现在数据集中,这使得我的LSTM偏向于大多数类。
我通过为BCEWithLogitsLoss指定pos_weight尝试了一个加权损失函数,但这似乎没有帮助。我可以使用哪些平衡技巧?

2vuwiymt

2vuwiymt1#

您可以使用Python中的imblearn库尝试过采样或欠采样来平衡数据集,该库提供了几种过采样和欠采样技术。

  • 您可以使用的其他平衡技术包括:
    1)基于簇的欠采样:基于簇的欠采样涉及基于样本的相似性对样本进行分组,并移除一些簇以平衡数据集。当大多数类具有大量彼此相似的样本时,这种方法可能是有用的。
    2)合成少数过采样技术(SMOTE):SMOTE是一种流行的过采样技术,它为少数类合成新样本
    3)自适应合成采样(ADASYN):ADASYN是另一种过采样技术,它为少数类合成新样本

相关问题