语义分割指标_混淆矩阵计算指标

1、混淆矩阵

2、准确率

在数据集不平衡时,准确率将不能很好地表示模型的性能。可能会存在准确率很高,而少数类样本全分错的情况,此时应选择其它模型评价指标。

3、精确率(查准率)和召回率(查全率)

positive class的精确率表示在预测为positive的样本中真实类别为positive的样本所占比例;positive class的召回率表示在真实为positive的样本中模型成功预测出的样本所占比例。

4、F1和Fβ

在β=1时,Fβ就是F1值,此时Fβ认为精确率和召回率一样重要;当β>1时,Fβ认为召回率更重要;当0<β<1时,Fβ认为精确率更重要。除了F1值之外,常用的还有F2和F0.5。

5、iou

6、例子

        例1

        例2——(多类别)

我们将尝试计算 A 类的TP(True Positive)、FP(False Positive)、False Positive 和 FN(False Negative)的值

TruePositive(A):它告诉实际值和预测值相同。 A 类的TP只不过是实际值和预测值相同,这意味着单元格 1 的值为 15。

FalsePositive(A):它告诉实际值是负的,在我们的例子中它是 B 类和 C 类,但模型预测它是正的,即 A 类。它是除了 TP 值之外的相应列的值的相加。

FalsePositive(A) = (单元格 4 + 单元格 7):7+2=9

TrueNegative(A):实际值和预测值的含义相同,对于 A:B 类和 C 类是负分类。 它是所有非A行和列的值相加。

TrueNegative(A) = (单元格 5 + 单元格 6 + 单元格 8 + 单元格 9):15 + 8 +3 + 45= 71

FalseNegative(A):实际值在我们的例子中是正的,它是 A 类,但模型预测它是负的,即 B 类和 C 类。可以通过除 TP 值之外的相邻行来计算的。

FalseNegative(A) = (单元格 2 + 单元格 3): 2 + 3= 5

常用指标

现在是计算 A 类的 Precision、Recall 和 Accuracy 的时候了。

精度Precision:“模型认为正确且确实是正确的样本占模型认为正确的所有样本的概率”

Precision (A) = 正确预测 / 总预测 = 15/24 = 0.625

召回Recall :“模型认为正确且确实是正确的样本占模型认为正确的所有样本的概率”

Recall (A)= 正确分类 / 总实际值 = 15/20 = 0.75

正确率Accuracy :被分对的样本数除以所有的样本数

Accuracy (A) = 正确分类的总数 / 实际分类的总数 = (15 + 15+ 45)/100 = 0.75

iou = TP/(FP+TP+FN)=15/(7+2+15+2+3)= 0.5172

参考:

https://www.csdn.net/tags/NtjaUgxsMDMyOTctYmxvZwO0O0OO0O0O.html

https://www.csdn.net/tags/MtTaEgxsMzUxNDAyLWJsb2cO0O0O.html

什么是混淆矩阵(confusion matrix)-SofaSofa

多分类任务的混淆矩阵 - overfit.cn

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
语义分割混淆矩阵计算是通过比较预测结果和真实标签来评估模型的性能。混淆矩阵是一个n×n的矩阵,其中n是类别的数量。它记录了模型对每个类别的预测结果与真实标签的对应关系。根据引用[2]中提供的代码,以下是计算混淆矩阵的步骤: 1. 首先,要有预测结果和真实标签的数组,分别是label_pred和label_true。 2. 创建一个布尔掩码,用于过滤掉无效的预测结果和真实标签。布尔掩码的条件是label_true大于等于0且小于类别数量n_class,即mask = (label_true >= 0) & (label_true < n_class)。 3. 使用np.bincount函数计算直方图,该函数会统计在指定范围内的每个整数值出现的次数。在这里,我们将预测结果和真实标签组合成一个多维数组作为输入,然后将其展平为一维数组。通过指定minlength参数为n_class的平方,确保输出的直方图是一个n×n的矩阵。具体代码是:hist = np.bincount(n_class * label_true[mask].astype(int) + label_pred[mask], minlength=n_class ** 2)。 4. 将一维数组重塑为n×n的矩阵,以得到最终的混淆矩阵。具体代码是:hist = hist.reshape(n_class, n_class)。 这样,就能够得到语义分割混淆矩阵混淆矩阵可以帮助我们了解模型在每个类别上的性能,包括准确率、召回率和F1分数等指标。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [语义分割评价指标代码:混淆矩阵计算详解](https://blog.csdn.net/weixin_43143670/article/details/104722381)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值