使用tensorflow获取真阳性、假阳性、假阴性和真阴性列表

cha*_*ics 3 python deep-learning conv-neural-network keras tensorflow

这是我的工作:

  • 我注释了“活”细胞的图像(约 8.000)和“死”细胞的图像(约 2.000)(+ 800 和 200 用于测试集)
  • 我正在使用 CNN(带有张量流和 keras)将图像分类为“活”或“死”。
  • 我训练了我的模型:验证损失 = 0.35,召回率 = 0.81,准确性 = 0.81。

问题是:如何获取分类为“活”或“死”的图像列表,以便我可以检查它们(也许某些图像不在正确的文件夹中?或者模型对特定类型的图像有问题?)

请问,如果您有任何线索可以解决这个问题,可以告诉我吗?

请您的。

Nap*_*sen 7

对于二元分类的情况,您可以获取真实标签向量和预测标签向量之间的差异。差异向量将包含正确分类的零,-1 表示误报,1 表示误报。然后,您可以使用它来np.where查找误报等的索引。

要获得误报和漏报等指数,您可以简单地执行以下操作:

import numpy as np 

real = np.array([1,0,0,1,1,1,1,1])
predicted = np.array([1,1,0,0,1,1,0,1])

diff = real-predicted
print('diff: ',diff)

# Correct is 0 
# FP is -1 
# FN is 1
print('Correctly classified: ', np.where(diff == 0)[0])
print('Incorrectly classified: ', np.where(diff != 0)[0])
print('False positives: ', np.where(diff == -1)[0])
print('False negatives: ', np.where(diff == 1)[0])
Run Code Online (Sandbox Code Playgroud)

输出:

diff:  [ 0 -1  0  1  0  0  1  0]
Correctly classified:  [0 2 4 5 7]
Incorrectly classified:  [1 3 6]
False positives:  [1]
False negatives:  [3 6]
Run Code Online (Sandbox Code Playgroud)