今天我将讨论如何在多分类中使用混淆矩阵评估模型的性能。
什么是混淆矩阵?
它显示了实际值和预测值之间的差异。它告诉我们有多少数据点被正确预测,哪些数据点没有被正确预测。对于多分类来说,它是一个 N * N 矩阵,其中 n 是编号。输出列中的类别,也称为目标属性。一二分类任务中包含了 2 个类也就是一个 22 矩阵,一般情况下介绍混淆矩阵都会以二分类为例。如果有 3 个类呢?那么将得到一个 33 矩阵依此类推。通过上面描述我们知道,混淆矩阵的类将具有相同数量的行和列。
下面让我们尝试了解一些常用术语,有 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 类。
我们将尝试计算 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