Kappa检测用于测量两次判断的一致性,即两个判断的结果是否相似。
具体如下图(图片取自http://blog.sina.com.cn/s/blog_4aa4593d0100rwjd.html)
表格类似于一个混淆矩阵,第一行第一个数‘4’表示R1和R2都判断为1的个数,
第一行第二个数表示"R1判断为1而R2判断为2"的个数,其他类似。最后的计算方法下图也有表示
对于用Kappa值判断一致性的建议参考标准为:
Kappa =+1,说明两次判断的结果完全一致;
Kappa =-1,说明两次判断的结果完全不一致;
Kappa =0,说明两次判断的结果是机遇造成;
Kappa<0,说明一致程度比机遇造成的还差,两次检查结果很不一致,但在实际应用中无意义;
Kappa>0,此时说明有意义,Kappa愈大,说明一致性愈好;
Kappa≥0.75,说明已经取得相当满意的一致程度;
Kappa<0.4,说明一致程度不够理想;
最后贴段python代码,比较简单,预测类型必须为0~n
import numpy as np
class Kappa:
def metrics(self,pre1,pre2,classN=2):
k1=np.zeros([classN,])
k2=np.zeros([classN,])
kx=np.zeros([classN,])
n=np.size(pre1)
for i in range(n):
p1=pre1[i]
p2=pre2[i]
k1[p1]=k1[p1]+1
k2[p2]=k2[p2]+1
if p1==p2:
kx[p1]= kx[p1]+1
pe=np.sum(k1*k2)/n/n
pa=np.sum(kx)/n
kappa=(pa-pe)/(1-pe)
return kappa