谁能告诉我当数据集不平衡时在 Keras 中应用 class_weight
的最简单方法是什么?
我的目标中只有两个班级。
谢谢。
原文由 Javi 发布,翻译遵循 CC BY-SA 4.0 许可协议
谁能告诉我当数据集不平衡时在 Keras 中应用 class_weight
的最简单方法是什么?
我的目标中只有两个班级。
谢谢。
原文由 Javi 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答879 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
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?