多分类任务的混淆矩阵

2022-03-04 11:05:19 浏览数 (3)

代码语言:javascript复制
来源: DeepHub IMBA本文约1000字,建议阅读5分钟本文讨论了如何在多分类中使用混淆矩阵评估模型的性能。

什么是混淆矩阵?

它显示了实际值和预测值之间的差异。它告诉我们有多少数据点被正确预测,哪些数据点没有被正确预测。对于多分类来说,它是一个 N * N 矩阵,其中 n 是编号。输出列中的类别,也称为目标属性。一二分类任务中包含了 2 个类也就是一个 2*2 矩阵,一般情况下介绍混淆矩阵都会以二分类为例。如果有 3 个类呢?那么将得到一个 3*3 矩阵依此类推。通过上面描述我们知道,混淆矩阵的类将具有相同数量的行和列。

下面让我们尝试了解一些常用术语,有 TP(True Positive)、FP(False Positive)、False Positive 和 FN(False Negative)。

我们将使用一个 3 x 3 矩阵,我们将使用我将向您展示的技巧计算 TP、TN、FP、FN 值。这个技巧也可以应用于 4*4、5*5…N*N 矩阵。

考虑这个混淆矩阵在下图 1 中的数据集的输出列中具有 A、B、C 类。

我们将尝试计算 A 类的TP(True Positive)、FP(False Positive)、False Positive 和 FN(False Negative)的值

TP

TruePositive(A):它告诉实际值和预测值相同。A 类的TP只不过是实际值和预测值相同,这意味着单元格 1 的值为 15。

FP

FalsePositive(A):它告诉实际值是负的,在我们的例子中它是 B 类和 C 类,但模型预测它是正的,即 A 类。它是除了 TP 值之外的相应列的值的相加。

FalsePositive(A) = (单元格 4 单元格 7):7 2=9

TN

TrueNegative(A):实际值和预测值的含义相同,对于 A:B 类和 C 类是负分类。它是所有非A行和列的值相加。

TrueNegative(A) = (单元格 5 单元格 6 单元格 8 单元格 9):15 8 3 45= 71

FN

FalseNegative(A):实际值在我们的例子中是正的,它是 A 类,但模型预测它是负的,即 B 类和 C 类。可以通过除 TP 值之外的相邻行来计算的。

FalseNegative(A) = (单元格 2 单元格 3):2 3= 5

常用指标

现在是计算 A 类的 Precision、Recall 和 Accuracy 的时候了。

精度Precision:“模型认为正确且确实是正确的样本占模型认为正确的所有样本的概率”Precision (A) = 正确预测 / 总预测 = 15/24 = 0.625

召回Recall :“模型认为正确且确实是正确的样本占模型认为正确的所有样本的概率”Recall  (A)= 正确分类 / 总实际值 = 15/20 = 0.75

正确率Accuracy :被分对的样本数除以所有的样本数

Accuracy  (A) = 正确分类的总数 / 实际分类的总数 = (15 15 45)/100 = 0.75同样,可以计算 B 类和 C 类的 TP、FP、FN、TN、Precision、Recall

0 人点赞