什么是机器学习中的混淆矩阵?

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

什么是混淆矩阵?

我们人类对事物的看法不同——甚至是真理和谎言。 对我来说可能是 10 厘米长的线,对你来说可能是 9 厘米的线。 但实际值可能是 9、10 或其他值。 我们猜测的是预测值!

人脑是如何思考的

就像我们的大脑应用我们自己的逻辑来预测某事一样,机器应用各种算法(称为机器学习算法)来得出问题的预测值。 同样,这些值可能与实际值相同或不同。

在竞争激烈的世界中,我们想知道我们的预测是否正确,以了解我们的表现。 同样,我们可以通过正确的预测次数来确定机器学习算法的性能。

那么,什么是机器学习算法?

机器试图通过应用某些逻辑或一组指令(称为机器学习算法)来得出问题的某些答案。 机器学习算法分为三种类型——有监督、无监督或强化。

机器学习算法类型

最简单的算法类型是有监督的,我们已经知道答案,我们通过使用大量数据训练算法来训练机器得出该答案——就像孩子通过以下方式区分不同年龄组的人一样一遍又一遍地看他们的特征。

监督机器学习算法有两种类型——分类和回归。

分类算法根据一组标准对数据进行分类或排序。 例如,如果您希望您的算法根据客户的食物偏好对他们进行分组——喜欢披萨的人和不喜欢披萨的人,您可以使用决策树、随机森林、朴素贝叶斯或 SVM 等分类算法(支持向量机)。

这些算法中的哪一种会做得最好? 为什么你应该选择一种算法而不是另一种?

输入混淆矩阵……

混淆矩阵是一个矩阵或表格,它提供有关分类算法对数据集进行分类的准确度的信息。 好吧,这个名字不是为了迷惑人类,但是太多的错误预测可能意味着算法被迷惑了😉!

因此,混淆矩阵是一种评估分类算法性能的方法。

如何?

假设您对我们之前提到的二元问题应用了不同的算法:根据人们是否喜欢披萨对他们进行分类(隔离)。 要评估具有最接近正确答案的值的算法,您将使用混淆矩阵。 对于一个二元分类问题(喜欢/不喜欢,真/假,1/0),混淆矩阵给出了四个网格值,即:

  • 真阳性 (TP)
  • 真阴性 (TN)
  • 误报 (FP)
  • 假阴性 (FN)

混淆矩阵中的四个网格是什么?

使用混淆矩阵确定的四个值形成矩阵的网格。

混淆矩阵网格

True Positive (TP) 和 True Negative (TN) 是分类算法正确预测的值,

  • TP代表喜欢披萨的人,模型对他们进行了正确分类,
  • TN 代表不喜欢披萨的人,模型对他们进行了正确分类,

假阳性(FP)和假阴性(FN)是分类器错误预测的值,

  • FP 代表不喜欢披萨的人(否定),但分类器预测他们喜欢披萨(错误地肯定)。 FP 也称为 I 型错误。
  • FN 代表那些喜欢披萨的人(正面),但分类器预测他们不喜欢(错误地负面)。 FN 也称为 II 型错误。
  15 项最佳虚拟邮箱免费服务

为了进一步理解这个概念,让我们看一个真实的场景。

假设您有一个包含 400 人的数据集,这些人接受了 Covid 测试。 现在,您获得了确定 Covid 阳性和 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 分数

有时,仅使用 Precision 和 Recall 很难比较两个分类器(模型),这只是四个网格组合的算术平均值。 在这种情况下,我们可以使用 F 分数或 F1 分数,它是调和平均值——它更准确,因为它对于极高的值不会变化太大。 较高的 F 分数(最大 1)表示更好的模型。

F 分数 = 2*Precision*Recall/ (Recall + Precision)

  在谷歌浏览器中获得自动更正的两种方法

当同时处理 False Positives 和 False Negatives 至关重要时,F1 分数是一个很好的指标。 例如,那些不是 covid 阳性(但算法显示如此)的人不需要被不必要地隔离。 同样,需要隔离那些 Covid 阳性(但算法说它们不是)的人。

#7。 ROC曲线

如果数据是平衡的,则 Accuracy 和 Precision 等参数是很好的指标。 对于不平衡的数据集,高精度不一定意味着分类器是有效的。 例如,一批 100 名学生中有 90 名会西班牙语。 现在,即使你的算法说所有 100 人都懂西班牙语,它的准确率也将是 90%,这可能会给出关于模型的错误图片。 在数据集不平衡的情况下,ROC 等指标是更有效的决定因素。

ROC曲线示例

ROC(接收器操作特征)曲线直观地显示了二元分类模型在各种分类阈值下的性能。 它是 TPR(真阳性率)与 FPR(假阳性率)的图,在不同阈值下计算为 (1-Specificity)。 图中最接近 45 度(左上角)的值是最准确的阈值。 如果阈值太高,我们不会有很多误报,但我们会得到更多的误报,反之亦然。

通常,在绘制各种模型的 ROC 曲线时,具有最大曲线下面积 (AUC) 的模型被认为是更好的模型。

让我们计算分类器 I 和分类器 II 混淆矩阵的所有度量值:

比萨调查的分类器 1 和 2 的度量比较

我们看到分类器 II 的精度更高,而分类器 I 的精度略高。根据手头的问题,决策者可以选择分类器 I 或 II。

N x N 混淆矩阵

到目前为止,我们已经看到了二元分类器的混淆矩阵。 如果有更多的类别而不仅仅是是/否或喜欢/不喜欢。 例如,如果您的算法要对红色、绿色和蓝色的图像进行排序。 这种分类称为多类分类。 输出变量的数量也决定了矩阵的大小。 因此,在这种情况下,混淆矩阵将是 3×3。

多类分类器的混淆矩阵

概括

混淆矩阵是一个很好的评估系统,因为它提供了有关分类算法性能的详细信息。 它适用于二元和多类分类器,其中有两个以上的参数需要处理。 混淆矩阵很容易可视化,我们可以使用混淆矩阵生成所有其他性能指标,如 F 分数、精度、ROC 和准确性。

您还可以查看如何为回归问题选择 ML 算法。