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

概述

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

  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 有一个生成混淆矩阵的函数。

相关推荐
小馒头学python4 分钟前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
正义的彬彬侠16 分钟前
《XGBoost算法的原理推导》12-14决策树复杂度的正则化项 公式解析
人工智能·决策树·机器学习·集成学习·boosting·xgboost
羊小猪~~32 分钟前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
软工菜鸡1 小时前
预训练语言模型BERT——PaddleNLP中的预训练模型
大数据·人工智能·深度学习·算法·语言模型·自然语言处理·bert
正义的彬彬侠1 小时前
【scikit-learn 1.2版本后】sklearn.datasets中load_boston报错 使用 fetch_openml 函数来加载波士顿房价
python·机器学习·sklearn
资源补给站2 小时前
论文2—《基于柔顺控制的智能神经导航手术机器人系统设计》文献阅读分析报告
机器学习·机器人·手术机器人
哔哩哔哩技术2 小时前
B站S赛直播中的关键事件识别与应用
深度学习
武子康2 小时前
大数据-212 数据挖掘 机器学习理论 - 无监督学习算法 KMeans 基本原理 簇内误差平方和
大数据·人工智能·学习·算法·机器学习·数据挖掘
deephub2 小时前
Tokenformer:基于参数标记化的高效可扩展Transformer架构
人工智能·python·深度学习·架构·transformer
___Dream2 小时前
【CTFN】基于耦合翻译融合网络的多模态情感分析的层次学习
人工智能·深度学习·机器学习·transformer·人机交互