我有一个包含电子邮件文本及其相应标签的数据集。每个电子邮件可以有多个标签,这使其成为多标签问题。我对标签使用了多热编码,所以它们看起来像[1,0,1,0,0],其中1表示电子邮件属于该类。然而,我的数据是不平衡的,一些标签组合几乎没有出现在数据集中,这使得我的LSTM偏向于大多数类。我通过为BCEWithLogitsLoss指定pos_weight尝试了一个加权损失函数,但这似乎没有帮助。我可以使用哪些平衡技巧?
2vuwiymt1#
您可以使用Python中的imblearn库尝试过采样或欠采样来平衡数据集,该库提供了几种过采样和欠采样技术。
1条答案
按热度按时间2vuwiymt1#
您可以使用Python中的imblearn库尝试过采样或欠采样来平衡数据集,该库提供了几种过采样和欠采样技术。
1)基于簇的欠采样:基于簇的欠采样涉及基于样本的相似性对样本进行分组,并移除一些簇以平衡数据集。当大多数类具有大量彼此相似的样本时,这种方法可能是有用的。
2)合成少数过采样技术(SMOTE):SMOTE是一种流行的过采样技术,它为少数类合成新样本
3)自适应合成采样(ADASYN):ADASYN是另一种过采样技术,它为少数类合成新样本