繁体   English   中英

模型的准确混淆矩阵不准确,测试精度为98%

[英]Inaccurate confusion matrix for a model with 98% test accuracy

我训练了二元分类模型,获得了98%的测试精度和99%的训练精度。

今天我想计算混淆矩阵,并使用下面的代码来计算它们。

model = load_model("model.h5")

testGenerator = ImageDataGenerator(rotation_range=5,
                                width_shift_range=0.2,
                                height_shift_range=0.2,
                                horizontal_flip=False,
                                fill_mode='nearest'
                                )   

testData = testGenerator.flow_from_directory(
                                'Location', 
                                target_size=(74,448),                                                 
                                batch_size=15,
                                class_mode='binary',
                                shuffle=False
                                )

proba = model.predict_generator(testData,steps=3000//15)
y_true = np.array([0] * 1482 + [1] * 1482 )
y_pred = proba > 0.5
print(confusion_matrix(y_true, y_pred))

我收到了这个混乱矩阵:

混乱矩阵

正如sklearn所说:

在此输入图像描述

在这里说假阴性和假阳性是如此之高。 这是怎么回事,因为我有98%的测试精度? 此外,我已经使用该模型几次来生成预测(使用model.predict()函数)并手动检查它们。 但每次它给我正确的分类。

任何想法如何获得准确的结果?

让我们从最后开始吧。 消息“TypeError:unhashable type:'numpy.ndarray'”表示您不能将numpy.ndarray用作字典键,因为它不是不可变对象。 将它转换为tuple或其他东西,首先使其成为不可变的。

关于你的混淆矩阵,我敢打赌,生成器以不可预测的顺序加载文件夹中的文件,你仍然将y_true设置为1482个zeros和1482 ones - 这可能与生成器生成的文件顺序相匹配也可能不匹配。 因此你得到了有趣的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM