我在多类设置中看到了关于类不平衡的几个问题.但是,我有一个多标签问题,所以在这种情况下你会怎么处理?
我有一组约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的比例下突然降低.