我已经看到了一些关于多类设置中类不平衡的问题。但是,我有一个多标签问题,那么在这种情况下您将如何处理呢?
我有一组大约 300k 的文本示例。正如标题中提到的,每个示例至少有一个标签,并且只有 100 个可能的唯一标签。我通过利用命名空间将这个问题简化为 Vowpal Wabbit 的二进制分类,例如
从:
healthy fruit | bananas oranges jack fruit
evil monkey | bipedal organism family guy
...
至:
1 |healthy bananas oranges jack fruit
1 |fruit bananas oranges jack fruit
0 |evil bananas oranges jack fruit
0 |monkey bananas oranges jack fruit
0 |healthy bipedal organism family guy
0 |fruit bipedal organism family guy
1 |evil bipedal organism family guy
1 |monkey bipedal organism family guy
...
我正在使用大众提供的默认选项(我认为是在线 SGD,具有平方损失函数)。我使用平方损失,因为它非常类似于汉明损失。
训练后,在同一训练集上进行测试时,我注意到所有示例都使用“0”标签进行预测......我猜这是最小化损失的一种方法。在这一点上,我不知道该怎么办。我正在考虑使用成本敏感的一对多分类来尝试平衡类,但是将多标签减少到多类是不可行的,因为存在 2^100 个标签组合。我想知道是否还有其他人有任何建议。
编辑:我终于有机会测试类不平衡,特别是对于vw
. vw
对不平衡的处理非常糟糕,至少对于高维、稀疏的文本特征来说是这样。我尝试了从 1:1 到 1:25 的比例,但在 1:2 的比例下性能会突然下降。