用混淆矩阵计算kappa系数

article/2025/8/21 9:16:47

从一篇论文——融合注意力机制和高效网络的糖尿病视网膜病变识别与分类,看到人家除了特异性、敏感性、准确率、混淆矩阵以外,还用了加权kappa系数,所以了解一下kapp系数的知识,加权kappa还没找到更好的资料。。。
资料来源于百度百科词条——kappa系数
Kappa系数用于一致性检验,也可以用于衡量分类精度,但kappa系数的计算是基于混淆矩阵的.
kappa系数是一种衡量分类精度的指标。它是通过把所有地表真实分类中的像元总数(N)乘以混淆矩阵对角线(Xkk)的和,再减去某一类地表真实像元总数与该类中被分类像元总数之积对所有类别求和的结果,再除以总像元数的平方减去某一类地表真实像元总数与该类中被分类像元总数之积对所有类别求和的结果所得到的

计算公式

在这里插入图片描述
在这里插入图片描述

示例(这里的混淆矩阵用百度词条里的,但是好像我常用的是实际是下标,预测类别是上标,注意一下)

在这里插入图片描述
为了计算方便看懂,我重画了一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结果分析

kappa计算结果为-1-1,但通常kappa是落在 0~1 间,可分为五组来表示不同级别的一致性:0.0~0.20极低的一致性(slight)、0.21-0.40一般的一致性(fair)、0.41-0.60 中等的一致性(moderate)、0.61-0.80 高度的一致性(substantial)和0.81-1几乎完全一致(almost perfect)。

matlab代码

下面是我写的matlab代码仅供参考

confusion_matrix=[239 21 16;16 73 4;6 9 280];[row col]=size(confusion_matrix);%获取矩阵的行和列fenleizhengque_yangben=diag(confusion_matrix);%分类正确的样本就是对角线上的值,这是一个列向量yangbenzongshu=sum(confusion_matrix(:));p0=sum(fenleizhengque_yangben)/yangbenzongshu;
%  假设每一类的真实样本个数分别为a1,a2,...,aC,而预测出来的每一类的样本个数分别为b1,b2,...,bC
%在百度词条里的图中,真实样本数就是按列求值,预测出来的样本就是按行求值 
%这里按照kappa系数百度词条里的图来计算,但是我一般用的混淆矩阵图是反过来的。。。这里不管了。。。就用百度词条里的来算
a=sum(confusion_matrix,1);%第2个参数为1是按列求值,把同一列的数加起来,这是行向量
b=sum(confusion_matrix,2);%第2个参数为2是按行求值,把同一行的数加起来,这是列向量
% 我常用的混淆矩阵是这样计算的,虽然结果没有改变。。。
% a=sum(confusion_matrix,2);%第2个参数为2是按行求值,把同一行的数加起来,这是列向量
% b=sum(confusion_matrix,1);%第2个参数为1是按列求值,把同一列的数加起来,这是行向量
pe=(a*b)/(yangbenzongshu*yangbenzongshu); %行向量乘以列向量是一个数
kappaxishu=(p0-pe)/(1-pe);

python 代码好像蛮多的,这边顺便mark一下,没有试过,仅供参考
代码来自 https://blog.csdn.net/qq_34107425/article/details/103692561?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control

def eval_qwk_lgb_regr(y_true, y_pred):# Fast cappa eval function for lgb.dist = Counter(reduce_train['accuracy_group'])for k in dist:dist[k] /= len(reduce_train)reduce_train['accuracy_group'].hist()# reduce_train['accuracy_group']将会分成四组acum = 0bound = {}for i in range(3):acum += dist[i]bound[i] = np.percentile(y_pred, acum * 100)def classify(x):if x <= bound[0]:return 0elif x <= bound[1]:return 1elif x <= bound[2]:return 2else:return 3y_pred = np.array(list(map(classify, y_pred))).reshape(y_true.shape)return 'cappa', cohen_kappa_score(y_true, y_pred, weights='quadratic'), True

关于加权kappa系数,其实我具体的还是没怎么搞明白,
不过我找到了一篇说的很好的博客:https://blog.csdn.net/gltangwq/article/details/106357443
感觉加权kappa就是赋予权重,博客中说的很好,如果一个病人没用病,但是一个医生A预测他得了重病,一个医生B预测他得了轻病,那么普通的kappa来说,他们都错了,错的程度一样,这显然不符合常识,而加权kappa可以说明A预测的错误更大,这样更符合常识,博客中也说了对于一些有序关系的级别得分,可见加权kappa适用于有序的关系,并不是说加权kappa和普通kappa就一定有哪个比较好。


http://chatgpt.dhexx.cn/article/yUI2REGD.shtml

相关文章

kappa 一致性系数计算实例

本文转载自新浪博客&#xff0c;网址&#xff1a;http://blog.sina.com.cn/s/blog_4aa4593d0100rwjd.html kappa系数在遥感分类图像的精度评估方面有重要的应用&#xff0c;因此学会计算kappa系数是必要的&#xff0c;但是从最近搜索的国内外网页和文献中都对kappa系数描述的不…

混淆矩阵(交叉表)及Kappa系数的计算

交叉分类表&#xff0c;是以两个不同时期的地理实体类型为横纵坐标的表格。 ①用于参照的时期的类型位于表格的上方&#xff0c;按照横方向排列 ②用以比较的时期的类型位于表格的左方&#xff0c;垂直排列 ③在横纵坐标上类型的排列顺序一致 ④位于对角线上的方格中记录…

【卡帕一致性检验(Kappa)】基于SPSS软件实现

利用WB和ELASA方法分别检测&#xff0c;利用Kappa系数分析2种方法的一致性。 1.SPSS操作 &#xff08;1&#xff09;在“数据视图”中输入数据&#xff0c;其中WB结果包括两类&#xff1a;positive和negative&#xff0c;即可以分别用1和2表示 &#xff08;2&#xff09;在“变…

kappa系数在评测中的应用

◆版权声明&#xff1a;本文出自胖喵~的博客&#xff0c;转载必须注明出处。 转载请注明出处&#xff1a;http://www.cnblogs.com/by-dream/p/7091315.html 前言 最近打算把翻译质量的人工评测好好的做一做。 首先废话几句&#xff0c;介绍下我这边翻译质量的人工评测怎么做。先…

一致性检验 -- Kappa 系数

一、Kappa 检验方法 在做数据分析时&#xff0c;我们经常会面临一致性检验问题&#xff0c;即判断不同的模型或者分析方法在预测结果上是否具有一致性、模型的结果与实际结果是否具有一致性等。另外&#xff0c;一致性检验在临床实验中也有着广泛的应用。对于两个或多个医务工作…

kappa系数---学习笔记

kappa系数是一个用于一致性检验的指标&#xff0c;也可用于衡量分类的效果对于分类问题&#xff0c;所谓一致性就是模型预测结果和实际分类结果是否一致。kappa系数的计算是基于混淆矩阵的&#xff0c;取值为-1到1之间,通常大于0。基于混淆矩阵的kappa系数计算公式如下&#xf…

总体分类精度和kappa系数计算实例详细介绍!

为啥要算总体分类精度和kappa系数呢&#xff1f;想必大家都知道是为了精度评价&#xff0c;当我们没有实测数据的时候&#xff0c;那么总体分类精度和kappa系数就派上用场了&#xff01;我们没有实测数据&#xff0c;依旧能够评价自己的方法和模型的优良性。博客写的有点啰嗦~啊…

使用cohen kappa系数衡量分类精度

在诊断试验中&#xff0c;研究者希望考察不同诊断方法在诊断结果上是否具有一致性。如评价两个医务工作者对同一组病人的诊断结论的一致性、同一医务工作者对同一组病人前后进行两次观察作出诊断的一致性。1960年Cohen等提出用Kappa值作为评价判断的一致性程度的指标。实践证明…

每日一学 kappa系数

1.定义 Kappa系数用于 一致性检验 &#xff0c;也可以用于 衡量分类精度 &#xff0c;kappa系数的计算是 基于混淆矩阵的。 2.具体例子 3.具体指标的分析 kappa计算结果为-1~1&#xff0c;但通常kappa是落在 0~1 间 第一种分析准则--可分为五组来表示不同级别的一致性&…

Kappa系数计算

内容整理自百度百科 kappa系数是一种衡量分类精度的指标。 公式&#xff1a; k p o − p e 1 − p e k\frac{p_o-p_e}{1-p_e} k1−pe​po​−pe​​ 其中&#xff0c; p o p_o po​是每一类正确分类的样本数量之和除以总样本数&#xff0c;也就是总体分类精度 。C是类别总数…

Kappa系数

Kappa系数用于一致性检验 也可以用于衡量分类精度 kappa系数的计算是基于混淆矩阵的 kappa计算结果为-1~1&#xff0c;但通常kappa是落在 0~1 间&#xff0c;可分为五组来表示不同级别的一致性&#xff1a;0.0~0.20极低的一致性(slight)、0.21~0.40一般的一致性(fair)、0.41~…

嵌入式软件工程师常见面试问题

(嵌入式软件工程师面试题) 1、stm32启动方式&#xff1f; 有三种&#xff1a; ①从Flash启动&#xff0c;将Flash地址0x0800 0000映射到0x00000000,这样启动以后就相当于从0x0800 0000开始的&#xff0c;这是我们最常用的模式&#xff1b; ②从SRAM启动&#xff0c;将SRAM地址…

嵌入式软件工程师和嵌入式硬件工程师有什么区别

什么是嵌入式硬件工程师 随着嵌入式技术的普及&#xff0c;硬件工程师的性质也有所改变。嵌入式硬件工程师与我们平常所说的硬件工程师不同。嵌入式硬件工程不但要求具备硬件工程师的基本技能&#xff0c;还必须完成部分软件工程师的工作&#xff0c;例如&#xff1a; 底层驱动…

学软件嵌入式需要学c语言吗,嵌入式软件工程师需要学什么?

随着智能电子设备的普及,市场对嵌入式开发人员需求增多,嵌入式系统无疑成为了当前最热门极具发展前途的IT应用领域之一。很多人想要入门的同学都想学习这个却不知道嵌入式软件工程师需要学什么?今天传智播客就来说说嵌入式软件工程师需要学什么? 现在学习嵌入式就业的前景也…

如何成为嵌入式软件工程师,成为嵌入式工程师赚不赚钱?

自身对嵌入式软件工程师的感想 前言一、嵌入式软件是什么&#xff1f;一、成为嵌入式工程师赚不赚钱&#xff1f;二、嵌入式工程师不赚钱还做他干啥&#xff1f;三、如何学习&#xff1f;四、尝试自己学习新东西五、总结 前言 我所想阐述的事 在看了很多b站的垃圾推荐“”嵌入…

嵌入式软件工程师笔试面试指南目录

文章目录 必读作者简介嵌入式软件工程师笔试面试指南简介如何使用这份资料你可以得到什么嵌入式软件工程师笔试面试指南的价值某外企面试官对这份资料的评价&#xff08;20210514&#xff09;收获 oppo 联发科 京东offer应届生的评价&#xff08;20210430&#xff09;大疆offer…

什么是嵌入式软件工程师?需具备哪些能力?

计算机嵌入式逐渐被大家认可,然而嵌入式软件工程师到底是什么?做一个好的嵌入式软件工程师又需要具备哪些能力呢?今天尚观教育小编跟大家聊一聊。 1.嵌入式软件工程师是什么? 嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组…

嵌入式软件工程师待遇如何?嵌入式开发越老越吃香吗?

嵌入式软件工程师待遇绝对是领先大多数行业的&#xff0c;而且最近两年出现薪资涨幅大&#xff0c;企业依然招不到人的现象。 口说无凭&#xff0c;我们通过招聘平台的数据来看是最靠谱的。 大家好&#xff0c;我是无际。 一个从事嵌入式单片机开发10年的老工程师&#xff0c…

嵌入式软件工程师是干啥的?

文章目录 前言 一、啥是软件&#xff1f; 二、什么是嵌入式软件 三、嵌入式软件如何开发 三、嵌入式软件工程师知识技能 编程语言知识&#xff1a; 自动控制知识&#xff1a; 硬件基础知识&#xff1a; 开发工具使用&#xff1a; 软件架构设计&#xff1a; 软件开发流程&#x…

医药行业集团集采管理平台深化招投标管理,提升企业采购管理水平

新形势下&#xff0c;中国医药行业正面临着新一轮重大转变&#xff0c;国内的政策环境&#xff0c;产业结构和病患需求都在发生快速变化&#xff0c;加速推动医药行业数字化转型已经成为大势所趋&#xff0c;企业的数字化战略需要迎面解决转型性变化和应对被更多敏锐竞争对手超…