用于生成器的 Keras class_weight
Keras class_weight for generators
这是一个问题的延续:
https://datascience.stackexchange.com/questions/22814/class-weighting-during-validation-in-keras
class_weight 可以在 Keras 中使用 fit 函数来告诉优化器对未表示的 class.根据 stackexchange 中的答案,在验证期间也会考虑它。例如,如果我的 class 比率是每 1 个正例对应 10 个负例,那么 0.8 的准确度分数就不太好(固定的 class 负例会做得更好)。我有两个问题:
- 在验证过程中 class_weight 究竟是如何考虑的?
- 如何在 fit_generator 中使用 class_weight?它与 fit 中的参数相同吗?
你的第一个问题,和训练时一样考虑。
基本上,如果你查看函数 weighted_masked_objective,单个样本乘以权重,然后返回平均值。(注意:Keras 不会自动设置 class 权重,你需要在 model.fit()
或 model.fit_generator()
传递权重
Class权重可以通过与频率成反比来计算。使用 sklearn
fit_generator
与 fit
相同,只是它需要一个生成器作为输入。
这是一个问题的延续: https://datascience.stackexchange.com/questions/22814/class-weighting-during-validation-in-keras
class_weight 可以在 Keras 中使用 fit 函数来告诉优化器对未表示的 class.根据 stackexchange 中的答案,在验证期间也会考虑它。例如,如果我的 class 比率是每 1 个正例对应 10 个负例,那么 0.8 的准确度分数就不太好(固定的 class 负例会做得更好)。我有两个问题:
- 在验证过程中 class_weight 究竟是如何考虑的?
- 如何在 fit_generator 中使用 class_weight?它与 fit 中的参数相同吗?
你的第一个问题,和训练时一样考虑。
基本上,如果你查看函数 weighted_masked_objective,单个样本乘以权重,然后返回平均值。(注意:Keras 不会自动设置 class 权重,你需要在 model.fit()
或 model.fit_generator()
Class权重可以通过与频率成反比来计算。使用 sklearn
fit_generator
与 fit
相同,只是它需要一个生成器作为输入。