通过训练模型得到了98%的正确率,但混淆矩阵显示了很高的漏检率。在
我正在使用keras进行多类分类,在预先训练的VGG16模型上使用转移学习方法。在
问题是利用CNN将图像分为5种类型。在
共有5个疾病分类,6970个训练图像和70个测试图像。在
训练模型的准确率为98.65%,测试结果的准确率为94%。在
但问题是,当我生成混淆矩阵时,它显示了非常高的分类失误。在
有人请帮帮我,是我的代码错了还是模型错了?我不知道我的模型是否给出了正确的结果。在
如果有人能解释一下keras是如何用model.fit_发电机函数,因为在混淆矩阵上应用精度的一般公式并不能得到与keras计算的结果相同的结果。在
用于测试数据集的代码是:test_generator = test_datagen.flow_from_directory(
test_dir,
target_size=(150, 150),
batch_size=20,
class_mode='categorical')
test_loss, test_acc = model.evaluate_generator(test_generator, steps=50)
print('test acc:', test_acc)
我从一个论坛找到了生成混淆矩阵的代码
代码是:
^{pr2}$
以下是我得到的结果:
测试精度:Found 70 images belonging to 5 classes.
test acc: 0.9420454461466182
混淆矩阵结果:['TEB', 'TH', 'TLB', 'TLM', 'TSL']
[[2 3 2 4 3]
[4 2 3 0 5]
[3 3 3 2 3]
[3 3 2 4 2]
[2 2 4 4 2]]]
precision recall f1-score support
TEB 0.14 0.14 0.14 14
TH 0.15 0.14 0.15 14
TLB 0.21 0.21 0.21 14
TLM 0.29 0.29 0.29 14
TSL 0.13 0.14 0.14 14
micro avg 0.19 0.19 0.19 70
macro avg 0.19 0.19 0.19 70
weighted avg 0.19 0.19 0.19 70