深度神经网络——什么是混淆矩阵?

概述

混淆矩阵是一种在机器学习和数据科学中广泛使用的分析工具,用于评估分类模型的性能。它通过比较实际类别和模型预测的类别来提供模型性能的详细信息。以下是混淆矩阵的一些关键点:

  1. 结构:混淆矩阵是一个表格,通常有两行两列(对于二分类问题)或更多行和列(对于多分类问题)。每一行代表实际类别,每一列代表预测类别。

  2. 元素:矩阵中的元素表示不同类别的样本数量。具体来说:

    • 真阳性(TP):正确预测为正类的样本数量。
    • 假阳性(FP):错误预测为正类的样本数量(即,实际为负类)。
    • 真阴性(TN):正确预测为负类的样本数量。
    • 假阴性(FN):错误预测为负类的样本数量(即,实际为正类)。
  3. 指标:混淆矩阵可以用来计算多种性能指标,包括:

    • 准确率(Accuracy):正确预测的样本占总样本的比例。
    • 精确度(Precision):在所有被预测为正类的样本中,实际为正类的比例。
    • 召回率(Recall)或灵敏度(Sensitivity):在所有实际为正类的样本中,被正确预测为正类的比例。
    • F1分数:精确度和召回率的调和平均值,是两者之间的平衡。
  4. 优势:与其他性能指标(如简单准确度)相比,混淆矩阵提供了更全面的模型性能视图。它可以帮助识别模型在特定类别上的表现,特别是当模型倾向于错误地识别某个类别时。

  5. 局限性:虽然混淆矩阵非常有用,但它也有局限性。例如,它可能不适用于不平衡的数据集,因为少数类别的性能可能被多数类别的性能所掩盖。

  6. 应用:混淆矩阵可以应用于各种分类问题,包括医学诊断、垃圾邮件检测、情感分析等领域。

精确度(Precision)

精确度衡量的是模型预测为正类(阳性)的样本中,实际为正类的比例。它关注的是预测结果的准确性。精确度的计算公式是:

精确度 (Precision) = T P T P + F P \text{精确度 (Precision)} = \frac{TP}{TP + FP} 精确度 (Precision)=TP+FPTP
其中:

  • T P TP TP 是真阳性(True Positives),即模型正确预测为正类的样本数量。
  • F P FP FP 是假阳性(False Positives),即模型错误预测为正类的样本数量。

精确度反映了模型预测为正类的结果中有多少是正确的。一个高精确度意味着模型很少将负类错误地预测为正类。

特异性(Specificity)

特异性衡量的是模型预测为负类(阴性)的样本中,实际为负类的比例。它关注的是模型识别负类样本的能力。特异性的计算公式是:
特异性 (Specificity) = T N T N + F P \text{特异性 (Specificity)} = \frac{TN}{TN + FP} 特异性 (Specificity)=TN+FPTN
其中:

  • (TN) 是真阴性(True Negatives),即模型正确预测为负类的样本数量。
  • (FP) 是假阳性(False Positives),即模型错误预测为正类的样本数量。

特异性反映了模型预测为负类的结果中有多少是正确的。一个高特异性意味着模型很少将正类错误地预测为负类。
在这里插入图片描述

召回率

召回率(也称为敏感度或真正率)实际上是真实阳性(TP)的数量除以真实阳性(TP)和假阴性(FN)的总和。召回率衡量的是模型正确识别所有实际为正类样本的能力。

召回率的公式是:
召回率 (Recall) = T P T P + F N \text{召回率 (Recall)} = \frac{TP}{TP + FN} 召回率 (Recall)=TP+FNTP

这里的“TP”代表真阳性,即模型正确预测为正类的样本数量;“FN”代表假阴性,即模型错误地将正类样本预测为负类的样本数量。

召回率的值范围从0到1。召回率为1意味着模型正确识别了所有的正类样本,没有遗漏任何正类样本。召回率为0则意味着模型没有正确识别出任何正类样本。

召回率是评估分类模型性能的重要指标之一,特别是在那些漏检(即假阴性)比误检(即假阳性)更有害的应用中,如医学诊断、欺诈检测等场景。在这些情况下,高召回率是特别重要的,因为它意味着模型能够捕捉到尽可能多的正类样本。然而,提高召回率可能会降低精确度,因为更多的样本被错误地分类为正类。因此,在实际应用中,通常需要在召回率和精确度之间找到一个平衡点。

混淆矩阵的示例

在定义了精度、召回率、敏感性和特异性等必要术语后,可以检查这些不同的值如何在混淆矩阵中表示。 在分类的情况下会生成混淆矩阵,适用于有两个或多个类别的情况。 生成的混淆矩阵可以根据需要设置高和宽,以容纳任何所需数量的类,但为了简单起见,我们将检查二元分类任务的 2 x 2 混淆矩阵。

作为示例,假设使用分类器来确定患者是否患有疾病。 这些特征将被输入分类器,分类器将返回两种不同分类之一——患者要么没有患病,要么患病。

让从矩阵的左侧开始。 混淆矩阵的左侧表示分类器对各个类所做的预测。 二元分类任务在这里有两行。 关于矩阵的顶部部分,它跟踪数据实例的真实值、实际类标签。

可以通过检查行和列相交的位置来解释混淆矩阵。 根据模型的真实标签检查模型的预测。 在本例中,真实阳性值(正确阳性预测的数量)位于左上角。 误报位于右上角,其中的示例实际上是负面的,但分类器将其标记为正面。

网格的左下角显示分类器标记为负面但实际上是正面的实例。 最后,混淆矩阵的右下角是找到真负值的地方,或者真正错误的例子所在的地方。

当数据集包含两个以上的类时,矩阵会增长相应数量的类。 例如,如果存在三个类,则矩阵将为 3 x 3 矩阵。 无论混淆矩阵有多大,解释它们的方法都是完全相同的。 左侧包含预测值和横跨顶部的实际类别标签。 分类器正确预测的实例从左上角到右下角呈对角线排列。 通过查看矩阵,您可以辨别上面讨论的四个预测指标。

例如,您可以通过将真阳性和假阴性相加,然后除以真阳性示例的数量来计算召回率。 同时,可以通过将假阳性与真阳性相结合,然后将该值除以真阳性总数来计算精度。

虽然人们可以花时间手动计算精度、召回率和特异性等指标,但这些指标非常常用,以至于大多数机器学习库都有显示它们的方法。 例如,Python 的 Scikit-learn 有一个生成混淆矩阵的函数。

  • 48
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知来者逆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值