代码编织梦想

Label:L

0123112234

Prediction: P

0123151214

Step 1 乘法加法

n × L + P

07142171113141928

        n指的是标签类别的数量,这里一共6个类别,n=6

        第三行,第三列,这个14这样来的。6 × 2 + 2 = 14。就是这样算,没错。

Step 2 bincount统计频数

L和P是分类结果,一共6类,所以取值范围是0-5。那么第三行的 n × L + P 取值范围是什么?6×0+0=0,这是最小值。6×5+5=35,这是最大值,取值范围是0到35.我们把第三行的值的一个频数统计,如下表。第一行是所有可能的取值,第二行是每种取值在我们这个数据里出现的次数

这个表格就是代码里bin_count这个函数干的事情,函数里的bin这个关键字代表可能数字的个数=max(n×L+P)+1。这里之所以用max是因为n×L+P这个式子里面的L和P的取值的你分类的标签,是变量,你分出来哪个就是哪个,我取最大的那个n和L算出来的(n×L+P)。这里是35+1=36个类别。

012345678910111213141516171819202122232425262728..35
10000002000101200001010000001..0

Step 3 转成混淆矩阵

下面把这个bincount计数变成一个二维的形式。上面那36个数,按照一行6个来,就是一个6×6的矩阵,像下面这样

012345
01
121
212
311
41
5

列对应的是预测的标签,行对应的是真实的标签

        举个例子,带着你看看一看。以第二行,行标签为1的这一行为例。意思是真实为1,有2个被分类成了1,有1个被你分类成了5。

        现在去最开始的两行label和prediction里面看看,下面黄色标注了,和我说的一样。

Label:L

0123112234

Prediction: P

0123151214

这里有同学要问了,那用的找你这么麻烦,我遍历L,把每个category出现的prediction的类别和数字统计好就行了,用得着你这个吗?

但是你说的这种方法的的时间复杂度没有我的小。因此用我这个。

Step 4 根据混淆矩阵计算评估指标

PA(Pixel Accuracy)

        只有对角线上的元素,表示我分类正确对了。

        所以,PA=对角线和 / 总和

MPA(Mean Pixel Accuracy)

        均类像素精度,统计每个类内部的像素精度,然后这些类再做平均。(因为数据大多存在imbalance的问题,他的目的是弱化样本过多的类别对score的影响,提高样本量过少的类别对score的影响)

        做法:每一行求和出来一个长度为6的向量,然后再拿着对角线这6个数组成的向量去除以前面那个向量。

IoU(Intersection over Union)

        交集比并集 

        对角线/(行和+列和-对角线)

                对角线的维度是6,整行求和出来的维度是6,整列求和的维度也是6,对角线的维度也是6

                行和+列和的时候对角线被加了2遍,所以要删掉一个,好比删掉intersection

        注意这里IoU出来是,一个向量是6个label的IoU。

MIoU(Mean Intersection over Union)

        上面这玩意,各类别求均值。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Albert233333/article/details/127151921

混淆矩阵confusion matrix的创建方式(可视化)-爱代码爱编程

1.分类准确率及其局限性 分类准确率是预测正确的样本数与总样本数的比值 即:分类准确率 = 预测正确的样本数 / 总样本数 错误率即: 错误率 = 1 - 分类准确率 分类准确率看上去是一个不错的评判标准,但在实际当中往往却存在着一些问题。其主要问题在于它隐藏了我们需要的细节,从而阻碍我们更好地理解分类模型的性能。 有两个最常见的例子: 当我们

MFC实现ENVI分类影像混淆矩阵(Confusion Matrix)及精度计算(Overall Accuracy和Kappa Coefficient)-爱代码爱编程

混淆矩阵(Confusion Matrix) 混淆矩阵计算代码: // 打开两幅待比较的分类影像 CFile datClassifyImg(ImgPath1, CFile::modeRead | CFile::typeBinary);// ImgPath1:路径根据自己的路径更换 CFile datGroundTruth(ImgPath2, CFile

模型效果评价—混淆矩阵(原理及Python实现)-爱代码爱编程

  对于分类模型,在建立好模型后,我们想对模型进行评价,常见的指标有混淆矩阵、KS曲线、ROC曲线、AUC面积等。也可以自己定义函数,把模型结果分割成n(100)份,计算top1的准确率、覆盖率。      本文详细阐述混淆矩阵的原理和Python实现实例,其它指标会在后续文章中详尽阐述,敬请期待。    文章目录 一、什么是混淆矩阵二、混淆矩阵

CNN中的混淆矩阵 | PyTorch系列(二十三)-爱代码爱编程

点击上方“AI算法与图像处理”,选择加"星标"或“置顶” 重磅干货,第一时间送达 文 |AI_study 原标题:CNN Confusion Matrix With PyTorch - Neural Network Programming 在这节课中,我们将建立一些函数,让我们能够得到训练集中每个样本的预测张量。然后,我们会看到如何使用这

python画二分类混淆矩阵(confusion_matrix)代码-爱代码爱编程

二分类任务,在最后的实验部分需要画混淆矩阵,来说明实验的结果。 import matplotlib.pyplot as plt guess = ["normal","cancer"] fact = [ "normal","cancer"] classes = list(set(fact)) classes.sort(reverse=True)

python绘制二分类混淆矩阵_详解使用python绘制混淆矩阵(confusion_matrix)-爱代码爱编程

Summary 涉及到分类问题,我们经常需要通过可视化混淆矩阵来分析实验结果进而得出调参思路,本文介绍如何利用python绘制混淆矩阵(confusion_matrix),本文只提供代码,给出必要注释。 Code​ # -*-coding:utf-8-*- from sklearn.metrics import confusion_matrix

python绘制二分类混淆矩阵_模型评估之混淆矩阵(confusion_matrix)含义及Python代码实现...-爱代码爱编程

由于系统编辑器限制,加粗的无序列表代表代码行! 在前面的文章中我们讲到了回归模型和分类模型的评估指标,区分了准确率和精确率的区别,并且比较了精确率和召回率内在的联系。本篇文章我们再来学习另外一个评估方法,即混淆矩阵(confusion_matrix)。 在讲矩阵之前,我们先复习下之前在讲分类评估指标中定义的一些符号含义,如下: TP(True P

sklearn 统计多分类和单分类结果的混淆矩阵API 写法 confusion_matrix 左边为真实值 上边为预测值-爱代码爱编程

分析代码源自 from sklearn.metrics import confusion_matrix 如何写混淆矩阵 手动分析如下 一 将y_true y_pred写成列向量的形式 y_true y_pre 是否匹配(真实值与预测值是否匹配) 0 1 n 1 1 y 0

深度学习之眼睛状态识别&&混淆矩阵的绘制-爱代码爱编程

本次实验基于自己搭建的CNN网络实现眼睛状态的分类,本来是打算迁移学习利用VGG16网络进行分类的,但是实验效果特别差,而且速度很慢,应该是博主自己的问题。而自己搭建的CNN网络的模型准确率也很高,运行速度很快。本文的重点在于混淆矩阵的绘制,这是之前没有接触过的东西。 1.导入库 import tensorflow as tf import numpy

基于sklearn库支持向量机(SVM)的模型构建并实现混淆矩阵-爱代码爱编程

1、导入所需库 from sklearn import svm from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.metrics import confusion_matrix from skle

机器学习---Confusion Matrix混淆矩阵-爱代码爱编程

目录 一、混淆矩阵Confusion Matrix 1.1.一级指标(最底层的): 1.2.二级指标 1.3.P-R曲线 1.4.三级指标  (1)F1_score    (2)Fβ_Score 二、ROC曲线  2.1.分类阈值对Precision/Recall的影响 2.2.ROC曲线的定义 2.3.ROC与PR曲线的对比  三

机器学习——混淆矩阵详细原理介绍-爱代码爱编程

在机器学习领域,混淆矩阵(confusion matrix),又称为可能性表格或是错误矩阵。它是一种特定的矩阵用来呈现算法性能的可视化效果,通常用于对监督学习中的分类问题进行评估。这个名字来源于它可以非常容易的表明多个类别在预测时的混淆情况(也就是某一个class被预测成另一个class)。 前面一篇文章我们已经介绍过,在分类问题中,我们的预测结

python数据分析与机器学习20- 逻辑回归项目实战4-模型评估方法:混淆矩阵_只是甲的博客-爱代码爱编程

文章目录 一. 模型评价指标——Precision/Recall1.1 准确率、精确率、召回率、F值对比1.2 精确率、召回率计算公式1.2.1 精确率计算公式1.2.2 召回率计算公式1.2.3 F1 score指标1.3 代码二. 模型评估——混淆矩阵(Confusion Matrix)2.1 案例4.2 代码实现4.2.1 在下采样测试集中计