机器学习中分类模型的评估方法之--Kappa系数

Kappa系数

首先,我们介绍一下kappa系数: 
kappa系数是用在统计学中评估一致性的一种方法,我们可以用他来进行多分类模型准确度的评估,这个系数的取值范围是[-1,1],实际应用中,一般是[0,1],与ROC曲线中一般不会出现下凸形曲线的原理类似。 
这个系数的值越高,则代表模型实现的分类准确度越高。kappa系数的计算方法可以这样来表示:

 

k=(po−pe)/(1−pe)

其中,p0表示为总的分类准确度; 
pe表示为

 

pe=a1×b1+a2×b2+...+aC×bC/n×n

 

其中,ai代表第i类真实样本个数,bi代表第i类预测出来的样本个数。

例子

例子数据来源:


  https://blog.csdn.net/xtingjie/article/details/72803029

 


对于该表中的数据,则有:

po=(239+73+280)/664=0.8916

 

pe=(261×276+103×93+300×295)/664×664=0.3883

 

k=(po−pe)/(1−pe)=(0.8916−0.3883)/(1−0.3883)=0.8228

代码

用python语言来实现,则有:

 

def kappa(matrix):
    n = np.sum(matrix)
    sum_po = 0
    sum_pe = 0
    for i in range(len(matrix[0])):
        sum_po += matrix[i][i]
        row = np.sum(matrix[i, :])
        col = np.sum(matrix[:, i])
        sum_pe += row * col
    po = sum_po / n
    pe = sum_pe / (n * n)
    # print(po, pe)
    return (po - pe) / (1 - pe)
1234567891011121314

其中,matrix是一个方阵,若共有i个类别,则matrix.shape = (i,i). 
用下面的代码进行测试:

 

import numpy as np
matrix = [
    [239,21,16],
    [16,73,4]
    [6,9,280]]

matrix = np.array(matrix)
print(kappa(matrix))12345678            

转自https://blog.csdn.net/xtingjie/article/details/72803029

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值