微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一种更不平衡的计算类权重方法

如何解决一种更不平衡的计算类权重方法

我有一个大的多标签数组,数字在 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) 的示例。我正在尝试为此找到一种中间方法,希望得到一些关于如何继续下去的提示

解决方法

这可以通过两种方式实现,前提是您正确完成了权重分配,即为较少出现的标签赋予更多权重,反之亦然,这可能是您已经完成的。

  1. 将您的案例 0 and 1 中出现频率高的标签数量减少到带有其他标签的标签,前提是它不会将您的数据集减少到很大的幅度。但是,当其他出现次数较少的标签非常少并且您可以决定时,这通常是不可行的
  2. 其他最合理的解决方案是通过创建副本对出现次数较少的标签进行过采样,或者对出现次数最多的标签进行采样不足

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?