机器学习 Cohen s Kappa,Quadratic Weighted Kappa 详解

首先需要明确,Kappa系数既可用于统计中的一致性检验,也可以用于机器学习中来衡量分类精度。它们的本质是一样的,但是理解方式略有不同,本文将从机器学习的角度来阐述Kappa系数。

一、基本思想

一般来说,对于机器学习中的分类问题,最简单粗暴的衡量指标就是准确率(accuracy),但是对于样本标签分布极其不均衡的数据,准确率就会出现误导了。
比如对于如下数据集,100个样本中10个是猫,10个是狗,需要预测每个样本是猫还是狗。当我们直接预测所有样本都是狗时,我们的预测率就可以达到90%。
这个准确率会造成分类结果很好的误导,那么我们是否可以考虑构造一个新的指标,把这个90%的准确率作为baseline(定义其为0),而全部分类正确时定义为1,得到如下图中My_score的指标。
在这里插入图片描述
在这里插入图片描述
这个指标基本接近Kappa系数了,只是Kappa系数的baseline计算方式不同。

二、Kappa系数定义

1.一致性检验中对kappa系数的定义

这里借鉴一下一致性检验中对kappa的定义来理解,假设下图中的R1是预测的样本分布,R2是真实样本分布。OA是R1的预测准确率,AC是在现有的预测样本数量分布既定的情况下,随机打乱计算得到的平均正确率baseline。
那么Kappa系数就可以解释为预测准确率减去Baseline得到的额外正确率,除以1减去baseline得到的剩余可提升正确率。

原始频连接https://www.youtube.com/watch?v=fOR_8gkU3UE

2.机器学习视角的公式

对于每个预测结果,计算Kappa系数的baseline都不一样。如下公式所述。accuracy就是预测结果的准确率;
P_e是baseline,它的含义是如果随机打乱提交的结果,那么平均准确率会使多少?它可以通过下面的公式计算得到,其中k是第k个预测类别,n_k1和n_k2分别是真实值和预测值在第K个类别的个数。
如假设我们预测结果中有20个猫和80个狗,那么可以计算得到Baseline是0.74,它意味着即使我在100个样本中随机指定20个为猫,其余的为狗,平均准确率也可以达到0.74.

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

3.进一步调整公式

由于1-accuracy其实就等于错误率,所以可以将刚才的公式改写为:
在这里插入图片描述

二、Weighted Kappa系数定义

1.Weighted Error

要理解加权的kappa系数,我们首先要理解加权误差
假设我们有如下数据集,并且我们认为在猫和狗之间分类错是相对可以理解的,但是将老虎分类成猫/狗就很不好了。
为了将这个想法数字化,我们可以构造一个加权的错误矩阵,猫狗之间分类错误的系数是1,老虎分类错误的系数是10。这样对老虎分类错误会导致这个样本的误差乘以10.
在这里插入图片描述

2.Weighted error和Weighted Kappa

具体来说,我们怎么计算加权误差呢?
我们可以按照下图中的方式计算
左边的混淆矩阵是预测值和真实值的分布,右边的权重矩阵是每个分类结果的误差权重系数,总加权误差就等于每个格子的两两乘积之和。
在这里插入图片描述
从而我们就得到了加权Kappa系数的公式
在这里插入图片描述

3.Linear Weighted Kappa 和 Quadratic Weighted Kappa

在大多数情况下,我们会以一种比较简单通用的方式定义误差权重。
例如,对于有顺序的多标签分类问题(有顺序是指标签类别之间是有大小顺序的,如预测用户会点击1次,2次,3次三个类别),我们通常会将标签分类为:1,2,3。这种情况下预测值与真实值间隔越远其实是更严重的,所以这就是我们的误差权重派上用场的地方了!

常见的权重主要有两种形式:

  • 线性权重:误差系数等于两个label之间差的绝对值,如将1预测为3误差权重为2
  • 二次权重:误差系数等于两个label之间差的平方,如将1预测为3误差权重为4

很明显,二次权重对判断错误更大的项惩罚更重,一般也使用得更广泛
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章