首页 > 解决方案 > 在 Keras 中为“categorical_crossentropy”选择验证指标

问题描述

我正在查看这两个问题和文档:

Keras categorical_accuracy 指标的输出是什么?

分类交叉熵需要使用 categorical_accuracy 或 accuracy 作为 keras 中的指标吗?

https://keras.io/api/metrics/probabilistic_metrics/#categoricalcrossentropy-class

对于 X 射线图像 I(15 类)的分类,我会:

# Compile a model
model1.compile(optimizer = 'adam', loss = 'categorical_crossentropy', 
metrics = ['accuracy']) 

# Fit the model
history1 = model1.fit_generator(train_generator, epochs = 10, 
steps_per_epoch = 10, verbose = 1, validation_data = valid_generator)

我的模型有效,我有一个输出:

但我不确定如何在此处添加验证准确性以比较结果并避免过度/欠拟合。

标签: pythontensorflowkerascross-entropy

解决方案


我希望以下内容可以帮助您:

的使用"categorical_crossentropy"告诉我,您的标签是对不同类的一种热编码。

假设您有 15 个类,正确的预测将是一个包含 14 个零的向量,以及对应索引处的一个。在这种情况下"accuracy"将非常高,因为您的模型将正确预测几乎所有地方都为零,因此准确度应该很容易达到至少 13/15 = 0.86。

一个更合适的指标是"categorical_accuracy",如果模型预测正确的索引,它会给你 1,否则为 0。

如果您的验证"categorical_accuracy"优于 1/15 = 0.067(假设您的班级正确平衡),则您的模型比随机模型要好。

您可以在keras metrics中找到指标列表。


推荐阅读