如何以简单的方式在 Keras 中分配 class_weight?

新手上路,请多包涵

谁能告诉我当数据集不平衡时在 Keras 中应用 class_weight 的最简单方法是什么?

我的目标中只有两个班级。

谢谢。

原文由 Javi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 733
1 个回答

class_weight fit() 函数的参数是一个将类映射到权重值的字典。

假设您有 500 个 0 类样本和 1500 个 1 类样本,而不是您输入的 class_weight = {0:3 , 1:1}。这使第 0 类的权重是第 1 类的三倍。

train_generator.classes 为您提供适当的权重类名称。

如果你想以编程方式计算这个,你可以使用 scikit-learn 的 sklearn.utils.compute_class_weight()

该函数查看标签的分布并产生权重,以同等地惩罚训练集中代表性不足或过多的类别。

另请参阅此处的有用线程: https ://github.com/fchollet/keras/issues/1875

这个线程也可能有帮助: Is it possible to automatically infer the class_weight from flow_from_directory in Keras?

原文由 petezurich 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题