混淆矩阵是评估监督机器学习算法分类类型性能的工具。

什么是混淆矩阵?
我们人类对事物的看法不同,甚至是真理和谎言。对我来说 10 厘米长的线对你来说可能就像是 9 厘米长的线。然而,实际值可能是 9、10 或某个其他值。我们估计的是预测值。
就像我们的大脑应用自己的逻辑来预测某些事物一样,机器也应用不同的算法(称为机器学习算法)来得出问题的预测值。同样,这些值可能与您的实际值相同,也可能不同。
在竞争激烈的世界中,人们想知道他们的预测是否正确,以了解他们的表现。同样,机器学习算法的性能可以通过其正确预测的数量来判断。
那么什么是机器学习算法呢?
机器尝试通过应用称为机器学习算法的特定逻辑或指令集来得出问题的特定答案。机器学习算法分为三种类型:监督式、无监督式和强化式。
最简单的算法是有监督的,如果我们已经知道答案,我们就通过使用大量数据训练算法来训练机器得出该答案。这与孩子们区分不同年龄段的人的方式相同。我一遍又一遍地观察他们的特征。
有两种类型的监督机器学习算法:分类和回归。
分类算法根据一组标准对数据进行分类或排序。例如,如果您需要一种算法根据食物偏好对顾客进行分组,例如喜欢披萨的顾客和不喜欢披萨的顾客,请使用决策树、随机森林、朴素贝叶斯或 SVM(支持)等分类算法。向量机)。
这些算法中哪一个会给您最好的结果?为什么您应该选择一种算法而不是另一种?
请输入混淆矩阵……
混淆矩阵是提供有关分类算法对数据集进行分类的准确性信息的矩阵或表格。好吧,这个名字并不是为了让人类感到困惑,但是太多错误的预测可能意味着算法会感到困惑😉!
因此,混淆矩阵是评价分类算法性能的一种方式。
如何?
假设我们对上面提到的二元问题应用不同的算法。也就是说,根据人们是否喜欢披萨来对他们进行分类(分离)。使用混淆矩阵以最接近正确答案的值来评估算法。对于二元分类问题(喜欢/不喜欢、真/假、1/0),混淆矩阵给出以下四个网格值:
- 真阳性 (TP)
- 真阴性 (TN)
- 误报 (FP)
- 假阴性 (FN)
混淆矩阵的四个网格是什么?
使用混淆矩阵确定的四个值构成了矩阵的网格。
真阳性(TP)和真阴性(TN)是分类算法正确预测的值。
- TP 代表喜欢披萨的人,模型对他们进行了正确分类。
- TN 代表不喜欢披萨的人,模型对他们进行了正确分类。
误报(FP)和漏报(FN)是分类器错误预测的值。
- FP 代表不喜欢披萨的人(负),但分类器预测他们喜欢披萨(假正)。 FP 也称为 I 型错误。
- FN 代表喜欢披萨的人(正),但分类器预测他们不喜欢披萨(假负)。 FN 也称为 II 类错误。
为了进一步理解这个概念,让我们考虑一个现实场景。
假设您有一个包含 400 名接受过 Covid 测试的人的数据集。现在我们有了确定新冠阳性病例和阴性病例数量的各种算法的结果。
这里有两个混淆矩阵用于比较。
![]() | ![]() |
考虑这两种算法,您可能会想说第一种算法更准确。然而,为了得到具体的结果,我们需要一些指标来衡量准确度、精度以及许多其他值来证明哪种算法更好。
使用混淆矩阵的指标及其重要性
帮助确定分类器是否做出正确预测的主要指标是:
#1.召回率/灵敏度
召回率、灵敏度、真阳性率 (TPR) 或检测概率是正确阳性预测 (TP) 与总阳性(即 TP 和 FN)的比率。
R = TP/(TP + FN)
召回率是对生成的可能正确阳性结果数量中返回的正确阳性结果数量的衡量。 Recall的值越高,漏报越少,对算法越好。当了解假阴性很重要时,请使用召回率。例如,如果一个人的心脏有多处堵塞,而模型显示该人完全正常,则可能会致命。
#2.准确性
准确性是对所有预测阳性结果中正确阳性结果的度量,包括真阳性和假阳性。
Pr = TP/(TP + FP)
当误报严重到不容忽视时,准确性就非常重要。例如,假设一个人没有患有糖尿病,但模型显示他们患有糖尿病,并且医生开了某种药物。这可能会导致严重的副作用。
#3.特异性
特异性或真阴性率(TNR)是在所有可能的阴性结果中找到的正确阴性结果。
S = TN/(TN + FP)
这是分类器识别负值的能力的衡量标准。
#4.准确性
准确率是预测总数中正确预测的数量。因此,如果您从 50 个样本中正确找到 20 个正值和 10 个负值,您的模型的准确度将为 30/50。
精度A=(TP+TN)/(TP+TN+FP+FN)
#5.流行率
患病率是对所有结果中获得阳性结果数量的衡量。
P = (TP + FN)/(TP + TN + FP + FN)
#6.F分数
有时,仅使用精度和召回率(这只是四个网格组合的算术平均值)来比较两个分类器(模型)是很困难的。在这些情况下,您可以使用调和平均值、F 分数或 F1 分数。这是更准确的,因为对于非常高的值它不会改变太多。 F 分数越高(最高 1)表示模型越好。
F 分数 = 2*精度*召回率/(召回率 + 精度)
当处理误报和漏报都很重要时,F1 分数是一个很好的指标。例如,没有必要不必要地隔离冠状病毒未呈阳性的人(但算法表明如此)。同样,冠状病毒检测呈阳性的人(但算法另有说明)也需要隔离。
#7. ROC曲线
当数据平衡时,“准确性”和“精确度”等参数是很好的指标。对于不平衡的数据集,高精度并不一定意味着分类器是高效的。例如,一个小组 100 名学生中有 90 人懂西班牙语。现在,即使算法确定所有 100 个人都懂西班牙语,其准确率也将达到 90%,这可能会给模型带来错误的印象。当数据集不平衡时,ROC 等指标将成为更有效的决定因素。
ROC(接收者操作特征)曲线直观地显示了二元分类模型在不同分类阈值下的性能。这是 TPR(真阳性率)与 FPR(假阳性率)的关系图,在不同阈值下计算为 (1 – 特异性)。图中最接近 45 度(左上)的值是最准确的阈值。如果阈值太高,则误报较少,但漏报较多,反之亦然。
通常,在绘制不同模型的ROC曲线时,曲线下面积(AUC)最高的模型被认为是更好的模型。
让我们计算分类器 I 和分类器 II 的混淆矩阵的所有度量值。
可以看出,分类器 II 的准确率较高,分类器 I 的准确率稍高。根据当前的问题,决策者可以选择分类器 I 或 II。
N x N 混淆矩阵
到目前为止,我们已经研究了二元分类器的混淆矩阵。如果有更多类别而不仅仅是“是/否”或“喜欢/不喜欢”怎么办?例如,如果算法对红色、绿色和蓝色图像进行排序。这种类型的分类称为多类分类。输出变量的数量也决定了矩阵的大小。所以在这种情况下,混淆矩阵将为 3×3。
概括
混淆矩阵是很好的评估系统,因为它们提供了有关分类算法性能的详细信息。当有两个以上的参数需要处理时,这对于二元分类器以及多类分类器非常有效。混淆矩阵易于可视化,可用于生成所有其他性能指标,例如 F 分数、精度、ROC、精度等。
我们还讨论了如何为回归问题选择机器学习算法。






![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

