分类模型之混淆矩阵(Confusion Matrix)

混淆矩阵简介

混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法。

可以简单理解为:将一个分类模型的预测结果与正确结果做对比,将预测正确的统计量和预测错误的统计量分别写入一张矩阵图中,得到的这张图就是混淆矩阵了。

混淆矩阵的使用情况:因为混淆矩阵是用来评判模型结果的,属于模型评估的一部分。因此,混淆矩阵多用于判断分类器(Classifier)的优劣,适用于分类型的数据模型有:分类树(Classification Tree)、逻辑回归(Logistic Regression)、线性判别分析(Linear Discriminant Analysis)等。

混淆矩阵及其参数

以分类中最简单的二分类为例,我们的模型训练完之后会进行“0”和“1”的判断,专业词语是positive和negative的判断。

我们通过样本可以直接知道真实情况下,哪些数据结果是positive,哪些结果是negative。同时,我们也可以通过神经网络或者其它模型跑出结果,进而可以知道模型认为这些数据哪些是positive,哪些是negative。

这样就能得到这样四个基础指标:

1、真实值是positive,模型认为是positive的数量(True Positive=TP)
2、真实值是positive,模型认为是negative的数量(False Negative=FN):这就是统计学上的第二类错误(Type II Error)
3、真实值是negative,模型认为是positive的数量(False Positive=FP):这就是统计学上的第一类错误(Type I Error)
4、真实值是negative,模型认为是negative的数量(True Negative=TN)

将这四个指标一起呈现在表格中,就能得到如下这样一个矩阵,我们称它为混淆矩阵(Confusion Matrix):

在这里插入图片描述

混淆矩阵的指标意义:

根据四个指标的含义,很容易看出TP和TN的值越大越好;FP和FN的值是越小越好了。

混淆矩阵的其他指标

根据以上四个基本指标,混淆矩阵还延申出了另外四个指标:

准确率(Accuracy)、精确率(Precision)、灵敏度(Sensitivity)、
特异度(Specificity)

四个参数的计算方式和意义如下便所示:
在这里插入图片描述

参考:
https://blog.youkuaiyun.com/upupyon996deqing/article/details/124768166
https://blog.youkuaiyun.com/Orange_Spotty_Cat/article/details/80520839

### 图像分类模型中的混淆矩阵生成与分析 #### 什么是混淆矩阵混淆矩阵是一种用于评估分类模型性能的重要工具。它是一个表格,显示了预测值和真实值之间的关系。对于图像分类任务来说,每一类别的预测情况可以通过混淆矩阵清晰展示。例如,在多类别分类问题中,如果某个样本的真实标签是A,而被错误地预测为B,则该错误会在混淆矩阵中体现。 在Python中,可以利用`sklearn.metrics.confusion_matrix`函数来快速生成混淆矩阵[^1]。 --- #### 如何生成混淆矩阵? 以下是基于Python的代码示例,演示如何生成混淆矩阵: ```python from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay import matplotlib.pyplot as plt import numpy as np # 假设这是真实的标签和预测的结果 y_true = [2, 0, 2, 2, 0, 1] # 真实标签 y_pred = [0, 0, 2, 2, 0, 2] # 预测标签 # 生成混淆矩阵 cm = confusion_matrix(y_true, y_pred) # 可视化混淆矩阵 disp = ConfusionMatrixDisplay(confusion_matrix=cm) disp.plot(cmap=plt.cm.Blues) plt.title('Confusion Matrix') plt.show() ``` 上述代码展示了如何使用`confusion_matrix`函数生成混淆矩阵,并通过`ConfusionMatrixDisplay`将其可视化。注意,这里的输入数据`y_true`和`y_pred`分别代表真实标签和预测标签。 当处理遥感图像或其他复杂场景时,可能需要额外预处理步骤,比如去除背景像素(即值为0的部分)。这一步骤通常涉及过滤掉不需要的数据点[^2]。 --- #### 混淆矩阵的关键指标解析 通过对混淆矩阵进行进一步分析,可以获得多个重要的评价指标,这些指标有助于全面理解模型的表现。常见的指标包括但不限于以下几种: 1. **准确率 (Accuracy)** 表示整体预测正确的比例。 \[ Accuracy = \frac{TP + TN}{TP + FP + FN + TN} \] 2. **精确率 (Precision)** 描述的是正类预测中有多少是真的正类。 \[ Precision = \frac{TP}{TP + FP} \] 3. **召回率 (Recall)** 表示实际正类中有多少被正确识别出来了。 \[ Recall = \frac{TP}{TP + FN} \] 4. **F1分数** 是精确率和召回率的调和平均数。 \[ F1-Score = 2 \cdot \frac{Precision \cdot Recall}{Precision + Recall} \] 以上公式可以直接应用于混淆矩阵中的数值计算得出相应结果[^3]。 --- #### 实际案例:ImageNet 数据集上的应用 假设我们正在训练一个针对ImageNet数据集的图像分类模型,完成训练后希望生成并分析其混淆矩阵。此时需要注意两点: - 如果存在背景值(如像元值为0的情况),应先剔除这部分无意义的数据。 - 对于自定义数据集,需确认文件名或路径是否已包含类别信息以便提取标签。 最终得到的混淆矩阵可以帮助发现哪些类别容易混淆,从而指导后续改进策略。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dream_Bri

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

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

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

打赏作者

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

抵扣说明:

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

余额充值