如何在Keras中输出每类的准确率?

Caffe不仅可以打印总体准确率,还可以打印每类的准确率。

在Keras的日志中,只有总体准确率。我很难计算出各个类的准确率。

Epoch 168/2000s - loss: 0.0495 - acc: 0.9818 - val_loss: 0.0519 - val_acc: 0.9796Epoch 169/2000s - loss: 0.0519 - acc: 0.9796 - val_loss: 0.0496 - val_acc: 0.9815Epoch 170/2000s - loss: 0.0496 - acc: 0.9815 - val_loss: 0.0514 - val_acc: 0.9801

有谁知道如何在Keras中输出每类的准确率吗?


回答:

对于多类分类,精确率和召回率是更有用的衡量指标(参见定义)。按照Keras的MNIST CNN示例(10类分类),你可以使用sklearn.metrics中的classification_report来获取每类的衡量指标:

from sklearn.metrics import classification_reportimport numpy as npY_test = np.argmax(y_test, axis=1) # 将one-hot转换为索引y_pred = model.predict_classes(x_test)print(classification_report(Y_test, y_pred))

结果如下:

         precision    recall  f1-score   support      0       0.99      1.00      1.00       980      1       0.99      0.99      0.99      1135      2       1.00      0.99      0.99      1032      3       0.99      0.99      0.99      1010      4       0.98      1.00      0.99       982      5       0.99      0.99      0.99       892      6       1.00      0.99      0.99       958      7       0.97      1.00      0.99      1028      8       0.99      0.99      0.99       974      9       0.99      0.98      0.99      1009avg / total   0.99      0.99      0.99     10000

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注