我们将探讨以下关键点:
• 什么是混淆矩阵?
• 与混淆矩阵相关的术语。
• 还将通过示例进一步探讨这些术语。
什么是混淆矩阵?
假设我们要为种植两种作物构建一个分类模型,即。
- 山药
- 土豆
与土豆的价格相比,山药的售价更高。
因此,我们构建的分类器的任务是正确地对这两种作物进行分类,以便农作物可以通过以正确的市场价格出售作物来最大化他的利润。
因此,将 20 个样本发送给我们以检查分类器的性能,在这 20 个样本中,11 个样本是山药,9 个样本是土豆。
图 2 为我们提供构建的分类器的混淆矩阵,它基本上告诉我们,列是我们的实际类,行是分类器预测的预测类,它还告诉我们:
在 11 个山药样本中,5 个被正确归类为山药,6 个被错误归类为土豆。同样,在 9 个土豆本中,2 个被错误地归类为山药,7 个被错误归类为土豆。
这意味着在 20 个样本中,有 12 个被正确分类(图 2 中绿色框的总和),8 个被错误分类(图 2 中红色框的总和)。同样从图 2 中,我们了解到分类器在正确分类山药方面表现得非常糟糕,但在正确分类土豆方面做得不错。
因此,如果我们要用简单的词定义一个混淆矩阵,那么我们可以说:
“混淆矩阵帮助我们了解每个类的正确和错误分类的数量。”
与混淆矩阵相关的术语
每当我们遇到与混淆矩阵相关的讨论时,我们经常会听到诸如“召回”、“精度”和“F1-score”之类的词,这让我们思考它们的含义和用法。
别担心,我们将在本文中讨论所有内容,因此首先我们将从它们的定义和公式开始。
召回
所以召回率是 TP/(TP+FN) 的比率,其中 TP 是真阳性的数量,FN 是假阴性的数量。
换句话说,它让我们知道特定类的正确分类数占该类样本总数的比重。
让我们用 例子来理解它,以 “Yam” 作为我们感兴趣的作物:
因此,如果我们计算召回率,将图 2 中的值放入我们得到的公式中:
召回率 = 5/(5+6) = 5/11 = 0.454 = 45.4%,
其中 TP = 5 且 FN = 6
正如我们所看到的,召回率相当低,这表明我们的分类器大多数时候都没有正确地对 Yam 进行分类,并且经常将其误认为是土豆。
精度
因此,精度是 TP/(TP+FP) 的比率,其中 TP 是真阳性的数量,FP 是假阳性的数量。
换句话说,它让我们知道特定类的正确分类数与该类的预测总数之比。
让我们再次以例子来理解它,我们仍然认为 “Yam” 是我们感兴趣的作物:
因此,如果我们计算精度,将 图 2 中的值放入我们得到的公式中:
精度 = 5/(5+2) = 5/7 = 0.714 = 71.4%,
其中 TP = 5 且 FP = 2
因此,从上面的计算中,我们得出的见解是,分类器正确地预测了 Yam 样本 5 次是 “Yam”,但 2 次错误地预测了 Potato 样本是 “Yam”。换句话说,与 TP 相比,FP 的值明显较低,分类器的精度就越高。
注意:召回率和精度之间始终存在权衡。
F1- 分数
F1 分数是衡量模型在特定数据集上的整体性能的指标。F1 分数是组合模型精度和召回率的一种方式,它被定义为模型精度和召回率的调和平均值。
因此,如果我们根据上述计算的精度计算 F1 分数并召回,我们得到如下:
F1 分数 = (2 x (0.454 x 0.714)) / (0.454 + 0.714) = 0.648/1.168 = 0.554
这告诉我们,我们构建的分类器的性能在正确分类 Yam 作物方面表现得不是很好。
我们同样可以找到土豆的召回率、精度和 f1 分数,想知道怎么做!好吧,让我给你一个提示,即“将它们视为我们的正类或感兴趣的类”。为此,我们只需要交换实际类的列,也必须交换图 2 中预测类的行。然后,混淆矩阵将如图 3 所示。但是,在查看之前等待,为什么不自己尝试一下呢!稍后,您可以从图 3 中自行验证。
到了文章的结尾,我希望这篇文章能帮助你消除对混淆矩阵的困惑。
最后推荐:一个GPU矩阵乘法运算工具-GPUMatrix1.23【Windows版本】
https://download.csdn.net/download/axecute/90253223