从混淆矩阵计算真正值以进行多类分类

Posted

技术标签:

【中文标题】从混淆矩阵计算真正值以进行多类分类【英文标题】:Computing true positive value from confusion matrix for multi class classification 【发布时间】:2019-07-07 19:30:08 【问题描述】:

对于多类分类问题,我需要从我的混淆矩阵中计算 TP、FP、TN 和 FN 值。

因为我需要获得敏感性和特异性。

这是我的混淆矩阵的样子,我总共有 4 个类:

[[302 23 102 15]
[34 56 34 340]
[34 32 69 54]
[231 89 32 34]]

这是我的部分代码

#loading data using generator with class mode = categorical
test_datagen = ImageDataGenerator(rescale = 1./255)
test_set = test_datagen.flow_from_directory('animals/valid/',
target_size=(150,150),class_mode='categorical',batch_size=32)

#compile the model with categorical cross entropy
model.compile(loss='categorical_crossentropy',optimizer=Adam(lr=0.00001),metrics=['accuracy'])

#calculate confusion matrix
test_im, test_lbl = next(test_set)
predections = model.predict(test_im)
predections = np.argmax(predections, axis = 1)
test_lbl = np.argmax(test_lbl, axis = 1)
conf_mat = confusion_matrix(all_labels, all_predications)

由于在图像生成器中使用了 class_mode='categorical',因此我在计算传导矩阵时使用这种方法也是正确的。

【问题讨论】:

请查看:***.com/questions/50666091/… 【参考方案1】:

TP-对角元素 (302,56,69,34)

FP -[23 102 15],[34 34 340],[34 32 54],[231 89 32]

TN - 无 vals

FN - 无 vals

【讨论】:

你的意思是在多类分类问题中不会有TN/FN的值吗?例如,准确度是 (TP+TN)/total。在多类分类的情况下,这将是 (TP+0)/total。

以上是关于从混淆矩阵计算真正值以进行多类分类的主要内容,如果未能解决你的问题,请参考以下文章

如何从多类分类的混淆矩阵中提取假阳性、假阴性

如何在 Scikit 中计算多类分类的混淆矩阵?

使用 R 在 keras 中为多类分类创建混淆矩阵

混淆矩阵错误“分类指标无法处理多标签指标和多类目标的混合”

有没有一种简单的方法来获得多类分类的混淆矩阵? (OneVsRest)

如何从 Python 中的混淆矩阵中获取精度、召回率和 f 度量 [重复]