如何解决一种更不平衡的计算类权重方法
我有一个大的多标签数组,数字在 0 到 65 之间。我使用以下代码生成类权重:
class_weights = class_weight.compute_class_weight('balanced',np.unique(labels),labels)
labels 数组是包含 0 到 65 之间数字的数组。
我使用它是为了适合带有 class_weight 标志的模型,原因是因为我有很多 "0" and "1"
示例但很少有 > 1
示例,我希望模型给出对计数较少的例子有更多的权重。这有很大帮助,但是,现在,我可以看到该模型对较少的示例给予了过多的重视,而忽略了最高计数 (1 and 0)
的示例。我正在尝试为此找到一种中间方法,希望得到一些关于如何继续下去的提示。
解决方法
这可以通过两种方式实现,前提是您正确完成了权重分配,即为较少出现的标签赋予更多权重,反之亦然,这可能是您已经完成的。
- 将您的案例
0 and 1
中出现频率高的标签数量减少到带有其他标签的标签,前提是它不会将您的数据集减少到很大的幅度。但是,当其他出现次数较少的标签非常少并且您可以决定时,这通常是不可行的 - 其他最合理的解决方案是通过创建副本对出现次数较少的标签进行过采样,或者对出现次数最多的标签进行采样不足
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。