Kappa(cappa)系数只需要看这一篇就够了,算法到python实现

站主近期建立了一个自己的网站来发博文,文章已经搬运到了下面的地址:

【一致性检验指标】Kappa(cappa)系数

1 定义

百度百科的定义:

它是通过把所有地表真实分类中的像元总数(N)乘以混淆矩阵对角线(Xkk)的和,再减去某一类地表真实像元总数与被误分成该类像元总数之积对所有类别求和的结果,再除以总像元数的平方减去某一类中地表真实像元总数与该类中被误分成该类像元总数之积对所有类别求和的结果所得到的。

这对于新手而言可能比较难理解。什么混淆矩阵?什么像元总数?
我们直接从算式入手:
k = p 0 − p e 1 − p e k = \frac{p_0-p_e}{1-p_e} k=1pep0pe
p 0 p_0 p0是每一类正确分类的样本数量之和除以总样本数,也就是总体分类精度
假设每一类的真实样本个数分别为 a 1 , a 2 , . . . , a c a_1,a_2,...,a_c a1,a2,...,ac
而预测出来的每一类的样本个数分别为 b 1 , b 2 , . . . , b c b_1,b_2,...,b_c b1,b2,...,bc
总样本个数为n
则有: p e = a 1 × b 1 + a 2 × b 2 + . . . + a c × b c / n × n p_e=a_1×b_1+a_2×b_2+...+a_c×b_c / n×n pe=a1×b1+a2×b2+...+ac×bc/n×n

1.1 简单例子

学生考试的作文成绩,由两个老师给出 好、中、差三档的打分,现在已知两位老师的打分结果,需要计算两位老师打分之间的相关性kappa系数:
在这里插入图片描述
从上面的公式中,可以知道我们其实只需要计算 p 0 , p e p_0 ,p_e p0,pe即可:

Po = (10+35+15) / 87 = 0.689
a1 = 10+2+8 = 20; a2 = 5+35+5 = 45; a3 = 5+2+15 = 22;
b1 = 10+5+5 = 20; b2 = 2+35+2 = 39; b3 = 8+5+15 = 28;
Pe = (a1b1 + a2b2 + a3b3) / (8787) = 0.455
K = (Po-Pe) / (1-Pe) = 0.4293578

例子引用来自博客,可以说提到kappa网上到处都是两个老师的例子,哈哈

2 指标解释

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)

3 python实现(可直接用于深度网络中)

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 = 0
    bound = {}
    for i in range(3):
        acum += dist[i]
        bound[i] = np.percentile(y_pred, acum * 100)

    def classify(x):
        if x <= bound[0]:
            return 0
        elif x <= bound[1]:
            return 1
        elif x <= bound[2]:
            return 2
        else:
            return 3

    y_pred = np.array(list(map(classify, y_pred))).reshape(y_true.shape)
    return 'cappa', cohen_kappa_score(y_true, y_pred, weights='quadratic'), True

以上代码是本人在kaggle比赛中使用的,因为kappa系数的算法非常好写,但是又要根据实际问题进行微小的调整,所以就不修改了。如果能提供帮助自然好,如果没有头绪的话,就去第一二章节好好看看,理解一下kappa系数的算法。

4 总结

其实kappa系数就是一种检验一致性的方法,可以用在深度网络中的metric函数中,也可以用在统计学上的一致性检验上。

  • 8
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
一. 课程介绍本课程结合Python进行统计与数据分析的原理讲解与实战,涵盖了大部分统计&数据分析模型,特别是当前比较主流的算法:参数估计、假设检验、线性回归、广义线性回归、Lasso、岭回归、广义可加模型、回归样条等;机器学习经常用到的主成分分析、因子分析、典型相关分析、聚类分析等;各种非参数统计模型,包括非参数统计推断、尺度推断、位置推断、非参数核密度估计、非参数回归等。本课程主要针对有一定Python编程基础、即将毕业参加工作的的大三大四学生,或者已经参加工作需要提升自己数据分析能力以及转行从事IT行业尤其是数据&大数据分析工作的初入职场者,或者正在攻读硕博士学位需要学习和掌握量化研究方法的研究生。本课程对于即将从事机器学习深度学习&人工智能相关工作的程序员也有很大帮助,有利于打好坚实的理论基础。二. 课程目录第0章 课程导学第1章 数据描述性分析1.1 描述统计量1.2 数据的分布1.3 概率分布函数的图形1.4 直方图、经验分布函数与QQ图1.5 多元数据的数据特征与相关性分析1.6 多元数据的基本图形表示第2章 参数估计2.1 点估计2.2 区间估计第3章 假设检验3.1 基本原理3.2 参数检验第4章 回归分析4.1 回归分析的概念与一元线性回归4.2 多元线性回归及统计量解析4.3 逐步回归与模型选择4.4 回归诊断4.5 广义线性回归4.6 非线性回归第5章 方差分析5.1 单因素方差分析5.2 双因素方差分析第6章 判别分析与聚类分析6.1 判别分析6.2 聚类分析第7章 主成分分析、因子分析与典型相关分析7.1 主成分分析7.2 因子分析7.3 典型相关分析第8章 非参数统计8.1 经验分布和分布探索8.2 单样本非参数统计推断8.3 两独立样本的位置与尺度判断8.4 多组数据位置推断8.5 分类数据的关联分析8.6 秩相关与分位数回归8.7 非参数密度估计8.8 一元非参数回归三. 讲师简介主讲人李进华博士,本、硕、博皆就读于武汉大学信息管理学院,2005年获博士学位进入211高校任教,2012年受聘为教授。从事信息管理与数据分析方面的教学、科研与系统开发工作20余年,具备深厚理论修养和丰富实战经验。是中国最早从事Java开发的程序员和Oracle数据库的DBA之一。曾带领团队开发《葛洲坝集团三峡工程指挥中心三期工程施工管理系统》、《湖北省财政厅国有企事业单位资产管理系统》等大型MIS。
常用的PROTEL99SE元件库封装库芯片库接插件库739个(PROTEL封装库),Component Count : 739 Component Name ----------------------------------------------- 0.5INCH-DISP 0.8INCH-DISP 1_27_2_40 1.0INCH-DISP 1.8inch-disp 1X6-5.7mm 2EDGK-1P 2EDGK-2P 2EDGK-10P 2EHDRC-2 2EHDRC-3 2P-5.08 2pin-1.27W 2PIN-5.08 2PIN-5.08A 2PIN-5.08B 3.5X2.8X1.9 3P-5.08 3PIN-5.08 3PIN-5.08A 3PIN-5.08B 4BIT_8SEG_LED 4Pin-1.27 4PIN-5.08 4PIN-5.08A 5-PIN PLUG 5-PIN RECEPTACLE 5PIN-5.08 5PIN-5.08A 6-PLCC 6P-5.08 6PIN-5.08 8P-5.08 8PIN CON 8PIN-3.8MM 10k471 14PDL_180 49/S_N 49/U_N 49S-DIP 49S-SMD 430_debug 430-10pin-2.54 430-10pin-2.54 - duplicate 0402LED 0402LED B 0402LED G 0402LED R 0402LED Y 0603 PZ 0603-8P4R 0603LED 0603LED B 0603LED G 0603LED R 0603LED Y 1206LED 1602LCD 1602LCD_C 1602LCD _B 3224W 3296P 3296W 3296X 3296Y 3314J 4028Speaker 12864LCD 12864LCD_B Altium_Logo AM335XZCZ AN6520-245 AUDIO JACKS1 AUDIO JACKS2 AUX-3.5-07 AV3-8.4 AXIAL-0.1 AXIAL-0.2 AXIAL-0.3 AXIAL-0.4 AXIAL-0.5 AXIAL-0.6 AXIAL-0.7 AXIAL-0.8 AXIAL-0.9 AXIAL-1.0 AXIAL-1W AXIAL-5W AXIAL0.4 B0505S BAT_N BAT-socket BGA-16-14 BGA-81 BGA48P6X8 BGA64P-8X8 BGA100P26X26-676 BGA176-10X10 BGA176-15X15 BGA400 BGA441x23 BRIDGE-P4/D10 BRIDGE-P4/DIP BRIDGE-P4/X2.1 C4X4 C4X7 C5X5 C5X7W1 C5X7W2 C5X8 C6.3X6.3 C6X8 C8X8 C8X10 C8X12 C10X10 C10x16 C12.5X20W1 C13X13 C13x20 C16X25 C18X35 C23x20 C40MM C0201 C0402 C0402S C0603 C0805 C1206 C1206A C1210 C2225 C3216 C3528 C6032 C7343 C7361 CAP4MM CAP5X5 CAP6.6X6.6 CAP7.5MM CAPPA14.05-10.5x6.3 CAPPA23.6-18.5x8.5 CAPPA31.6-26.5x12.5 CAPPA35.6-30.5x18.5 CAPPA46.1-41x21.5 CD21 CD23 CD31NP CD32NP CD42NP CD43NP CD52NP CD53NP CD54NP CD73NP CD75NP CD104NP CD105NP CD106NP CLCC-48 CLCC44 CLCC68 COM_MODE_CHOKE CPGA68 CPGA100 CQFP80 CR1220 CR2032 CSX-SEN D-38 D-46_6A D0603 D0805 D1206 DB9_F DB9_F1 DB9_M DB9_M1 DB104 DC Jack DC-6mm DC-091 DC-PJ044A DC-PJ066A DC3.5 DC002 DFN-24 DFN10 DGN-8 DIODE0.4 DIODE0.7 DIP-4 dip6 DIP8 DIP14 DIP16 DIP20 DIP28 DIP40 DIP40_only DO-15 DO-35 DO-41 DO-201AD DO-204AL DO-213AB DRR3016 EC12 EE20-10P EL-817 EP13
### 回答1: Kappa系数是一种用于衡量分类器的精度的统计量,它考虑到了分类器的正确率和误报率。Kappa系数的范围在-1到1之间,其中-1表示完全不一致,0表示随机一致,1表示完全一致。 首先需要计算混淆矩阵,它是一个2x2的矩阵,其中第一行表示实际情况是阳性或阴性,第二行表示分类器的预测结果是阳性或阴性。然后,可以使用下面的公式计算Kappa系数: Kappa = (P_o - P_e) / (1 - P_e) 其中P_o表示观察到的分类器的准确率,P_e表示预期的分类器准确率。P_e的计算方式为: P_e = (a+b/c+d)^2 + (a+c/b+d)^2 其中a表示分类器正确地预测阳性的数量,b表示分类器错误地预测阳性的数量,c表示分类器错误地预测阴性的数量,d表示分类器正确地预测阴性的数量。 Kappa系数越接近1,表示分类器的效果越好。 ### 回答2: Kappa系数是一种常用于衡量分类准确度的统计学指标,可用于评价Envi图像分类的精度。Kappa系数的取值范围为-1到1之间,数值越接近1表示分类结果的一致性越高,数值越接近-1则表示分类结果的一致性越差。 Kappa系数的计算基于实际分类结果和预测分类结果之间的一致性。首先,我们需要创建一个混淆矩阵,该矩阵显示了实际分类和预测分类的对应关系。在混淆矩阵中,对角线上的元素表示分类正确的样本数,而非对角线上的元素表示分类错误的样本数。 通过计算混淆矩阵中各个类别的分类准确率以及总体分类准确率,我们可以得到Kappa系数的计算公式如下: Kappa = (总体分类准确率 - 期望分类准确率) / (1 - 期望分类准确率) 其中,期望分类准确率是基于随机分类假设计算得出的分类准确率。 Kappa系数对于评价分类算法的性能非常有用,特别是在样本不平衡或类别不均衡的情况下。它对于不同类别之间的误差敏感,能够更准确地评估分类的一致性。 综上所述,通过计算混淆矩阵并使用Kappa系数,我们可以客观地评价Envi图像分类算法的精度,为分类结果的一致性提供准确的度量。 ### 回答3: Kappa系数是一种常用的评价分类模型准确度的统计方法,用于衡量两个分类器的一致性程度。在环境精度评价中,Kappa系数可以用来评估一个自动分类模型对环境要素的分类准确度和一致性。 Kappa系数的计算基于混淆矩阵,混淆矩阵是一个二维表格,包含了预测分类结果和实际分类结果之间的交叉项。在环境精度评价中,可以将混淆矩阵的行表示为实际环境要素的类别,列表示为模型预测的分类结果。而每个交叉项则表示了模型正确分类了多少个环境要素,或者错误分类了多少个环境要素。 通过计算混淆矩阵中的各项元素及总和,可以得到模型对环境要素分类的准确度指标。Kappa系数的计算公式为:Kappa = (P0 - Pe) / (1 - Pe),其中P0表示被观察到的分类准确度,Pe表示偶然一致性的期望。 Kappa系数的取值范围为-1到1,其中1表示完全一致,0表示与偶然一致性相同,而-1表示完全不一致。根据Kappa系数的取值,可以对自动分类模型的准确度进行评价。一般而言,Kappa系数在0.61-0.80之间被认为是良好的准确度,而0.81以上则被认为是非常好的准确度。 综上所述,Kappa系数是一种用于评估环境精度评价中自动分类模型准确度和一致性的重要指标。通过对混淆矩阵的计算,能够得到Kappa系数的具体数值,从而对模型的分类准确度进行准确评估。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值