这两个的概念其实很简单,不会涉及到很高深的数学知识。

文章目录

  • 1. Kappa系数
    • 1.1 公式介绍
    • 1.2 结果分析
    • 1.3 举例
  • 2. 混淆矩阵 (Confusion Matrix)

1. Kappa系数

参考https://baike.baidu.com/item/kappa%E7%B3%BB%E6%95%B0/9385025?fr=aladdin
https://www.cnblogs.com/by-dream/p/7091315.html

1.1 公式介绍

kappa系数是一种衡量分类精度的指标。其计算公式如下
k=Po−Pe1−Pek = \frac{P_o-P_e}{1-P_e} k=1−Pe​Po​−Pe​​
其中,p0p_0p0​是每一类正确分类的样本数量之和除以总样本数,也就是总体分类精度 。

假设每一类的真实样本个数分别为a1,a2,...,aCa1,a2,...,aCa1,a2,...,aC, 而预测出来的每一类的样本个数分别为b1,b2,...,bCb1,b2,...,bCb1,b2,...,bC
总样本个数为nnn,则有:
pe=a1∗b1+a2∗b2+...+aC∗bCn∗npe = \frac{a_1*b_1+a_2*b_2+...+aC*bC}{n*n} pe=n∗na1​∗b1​+a2​∗b2​+...+aC∗bC​

1.2 结果分析

kappa计算结果为[-1,1],但通常kappa是落在 [0, 1] 间,可分为五组来表示不同级别的一致性:

  • [0.00, 0.20] 极低的一致性(slight)
  • [0.21, 0.40] 一般的一致性(fair)
  • [0.41, 0.60] 中等的一致性(moderate)
  • [0.61, 0.80] 高度的一致性(substantial)
  • [0.81, 1.00] 几乎完全一致(almost perfect)。

1.3 举例

下表为混淆矩阵 (接下来会讲混淆矩阵)

类别 实际为A 实际为B 实际为C
预测为A 239 21 16
预测为B 16 73 4
预测为C 6 9 280

首先计算P0P_0P0​, 是每一类正确分类的样本数量之和除以总样本数.
po=239+73+280664=0.8916p_o = \frac{239 +73+280}{664} = 0.8916 po​=664239+73+280​=0.8916
然后计算PeP_ePe​

# 竖着相加
239+16+6=261
21+73+9=103
16+4+280=300
# 横着相加
239+21+16 = 276
16+73+4 = 93
6+9+280 = 295

pe=261×276+103×93+300×295664×664=0.3883p_e = \frac{261×276+103×93+300 ×295}{664 ×664} = 0.3883 pe​=664×664261×276+103×93+300×295​=0.3883
因此
kappa=0.8916−0.38831−0.3883kappa = \frac{0.8916 -0.3883}{1-0.3883} kappa=1−0.38830.8916−0.3883​

代码

from sklearn.metrics import confusion_matrix
import pandas as pd
import numpy as np# y_true: 标注数据(真实标签)
# y_pred: 模型预测结果
def get_kappa(y_true, y_pred):# 计算混淆矩阵confusion_matrix = confusion_matrix(y_true, y_pred)# 一个混淆矩阵的例子# confusion_matrix = np.array(# [[10,  5,  5], #  [ 2, 35,  2],#  [ 8, 5,  15]])# 可以调试一下这些分别都是什么# 该公式主要来自于https://www.cnblogs.com/by-dream/p/7091315.htmlall_sum = sum(sum(confusion_matrix))Po = sum(np.diagonal(confusion_matrix)) / all_suma = sum(confusion_matrix)b = sum(confusion_matrix.T)Pe = sum(a*b)/ (all_sum*all_sum)kappa = (Po - Pe)/(1-Pe)return kappay_true = [1,2,3]y_pred = [1,3,2]

2. 混淆矩阵 (Confusion Matrix)

参考https://baike.baidu.com/item/%E6%B7%B7%E6%B7%86%E7%9F%A9%E9%98%B5/10087822

混淆矩阵中

  • 每一列代表了预测类别
  • 每一行代表了·真实类别·

每一列中的数值表示真实数据被预测为该类的数目,如下表所示

类别 实际为A 实际为B 实际为C
预测为A 239 21 16
预测为B 16 73 4
预测为C 6 9 280

第一行第一列中的239表示有239个实际归属第一类的实例被预测为第一类;同理,第一行第二列的21表示有21个实际归属为第一类的实例被错误预测为第二类;以此类推

一致性检验Kappa 与 混淆矩阵相关推荐

  1. (笔记)Kappa系数 混淆矩阵

    遥感图像的分类解译结果往往需要一定的精度评价指标进行精度验证,只有进行精度验证,我们才能知道分类解译的结果是否准确可靠. Kappa系数就经常被用于影像分类的空间一致性检验,是一种衡量分类精度的指标. ...

  2. R语言使用yardstick包的conf_mat函数计算多分类(Multiclass)模型的混淆矩阵、并使用summary函数基于混淆矩阵输出分类模型评估的其它详细指标(kappa、npv等13个)

    R语言使用yardstick包的conf_mat函数计算多分类(Multiclass)模型的混淆矩阵(confusion matrix).并使用summary函数基于混淆矩阵输出分类模型评估的其它详细 ...

  3. [机器学习] 混淆矩阵和kappa系数

    两篇非常非常优秀的博客 4.4.2分类模型评判指标(一) - 混淆矩阵(Confusion Matrix) Kappa系数

  4. R语言使用lightgbm包构建多分类的LightGBM模型、caret包的confusionMatrix函数输出多分类混淆矩阵(包含:准确率及其置信区、p值、Kappa、特异度、灵敏度等)

    R语言使用lightgbm包构建多分类的LightGBM模型.caret包的confusionMatrix函数输出多分类混淆矩阵(包含:准确率及其置信区.p值.Kappa.特异度.灵敏度等) 目录

  5. MFC实现ENVI分类影像混淆矩阵(Confusion Matrix)及精度计算(Overall Accuracy和Kappa Coefficient)

    混淆矩阵(Confusion Matrix) 混淆矩阵计算代码: // 打开两幅待比较的分类影像 CFile datClassifyImg(ImgPath1, CFile::modeRead | CF ...

  6. matlab计算混淆矩阵及kappa系数

    前言 本科过程中学习或多或少涉及到分类的基础知识,分类过程中肯定回涉及到精度检验.这里就涉及到混淆矩阵的知识. 原理介绍 记混淆矩阵如下图所示: 矩阵xijx_{ij}xij​中主对交线表示分类正确的 ...

  7. 利用混淆矩阵及Kappa系数评价土地利用分类精度

    文章目录 一.准备工作 二.处理步骤 2.1 Arcmap:栅格转点+多值提取到点 栅格转点 多值提取至点 2.2 Excel:计算混淆矩阵 三.Excel计算模板下载地址 一.准备工作 土地利用类型 ...

  8. 计算混淆矩阵和Kappa系数

    1.        将envi中影像转化为tif格式,导入到arcmap中,fileàsave file as àTiff/geo tiff 2.        在arcmap中用arctollbox ...

  9. 分类器评价与在R中的实现:混淆矩阵

    分类模型评价一般有以下几种方法:混淆矩阵(Confusion Matrix).收益图(Gain Chart).提升图(Lift Chart).KS图(KS Chart).接受者操作特性曲线(ROC C ...

  10. 【转】误差矩阵(混淆矩阵)评价法

    原文地址:erdas分类精度评价作者:依暧白鲸 误差矩阵(混淆矩阵)评价法 基于误差矩阵的分类精度评价方法 误差矩阵(error matrix)又称混淆矩阵(confusion matrix),是一个 ...

最新文章

  1. 【linux基础】CMake如何生成动态链接库文件
  2. 【产品干货】APP留存率多少才合格——全面解析留存率
  3. Python保存最后N个元素
  4. YbtOJ#752-最优分组【笛卡尔树,线段树】
  5. javascript 打开新窗口
  6. makeObjectsPerformSelector 方法的用法
  7. php调用一个c语言写的接口问题
  8. 代码对比工具,我就用这5个
  9. [单片机框架][drivers层][ADC] fuelgauge 软件电量计(二)
  10. 【HAVENT原创】Salesforce (JSforce) 调用示例
  11. 分销系统开发 三级分销技术开发
  12. php webim的开发,WebIM H5 Demo 介绍
  13. ISV在“淘宝”上淘宝
  14. 《解释的工具:生活中的经济学原理》读书笔记4
  15. 计算机操作系统--网络操作系统和嵌入式操作系统
  16. 2018 CodeM资格赛 下单
  17. bat脚本实现监控进程功能-自动重启
  18. java ncso发送电邮_如何在Windows中从命令行发送电子邮件(无需额外的软件)
  19. 网络规划---网络计划软件
  20. C++日期和时间编程总结

热门文章

  1. STM3210B_EVAL U盘功能 USB + SPI +SD 增加对SDHC卡支持
  2. Git使用笔记[持续更新]
  3. java date the type is ambiguous_一个java ambiguous method 的问题
  4. 从鸿蒙操作系统的发布,经Minix认识微内核
  5. 电力GIS技术应用及若干相关问题
  6. 5个最好用的GIF制作软件
  7. java string替换最后一个字符_sed替换每行最后一个字符
  8. 2019 计蒜之道 初赛 第三场 阿里巴巴协助征战SARS(python做法,费马小定理+快速幂)
  9. 随机效应估算与固定效应估算_面板数据分析中固定效应和随机效应的估计结果完全一致,与OLS差别不大...
  10. 计算机网络电缆是什么,很多人不知道,计算机电缆和光缆有什么区别