多分类任务的混淆矩阵

今天我将讨论如何在多分类中使用混淆矩阵评估模型的性能。

什么是混淆矩阵?

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

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

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

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

多分类任务的混淆矩阵_第1张图片

我们将尝试计算 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

作者:Akash Borgalli

你可能感兴趣的