如何理解Quadratic Weighted Kappa?

Motivation

假定我们现在有 N N N个作文样例,以及它们对应的人类评分和GPT评分。评分一共有 C C C个互斥类别,分别是{0,1,2,3}。现在我们要衡量人类评分和GPT评分的一致性。

一个很直观的想法是,画出混淆矩阵,然后将对角线上的值汇总,除以总的样本数:
C o n s i s t e n c y h u m a n − G P T = N 人类评分 = G P T 评分 N 样本总数 Consistency_{human-GPT} = \frac{N_{人类评分=GPT评分}}{N_{样本总数}} Consistencyhuman−GPT=N样本总数N人类评分=GPT评分

这种计算方法没有考虑随机一致性。由于在分类任务中,有时两名评分者可能仅仅因为偶然而达成一致。下面引入的Cohen's kappa指标,不仅仅考虑了观察到的一致性 ,而是通过考虑评分者随机达成一致的概率来调整这种一致性。

Cohen's kappa:最基本的kappa统计

该指标用于衡量评分者之间的一致性。其值位于0和1之间,值越大说明一致性越高。下表解释了不同区间值所代表的一致性程度1

有如下定义:
κ = p o − p e 1 − p e = 1 − 1 − p o 1 − p e \kappa = \frac{p_o - p_e}{1 - p_e} =1-\frac{1 - p_o}{1 - p_e} κ=1−pepo−pe=1−1−pe1−po

其中,
p o p_o po: observed agreement,观察到的评分者间的一致性
p e p_e pe: chance agreement,假定的基于随机选择的评分者间一致性

可以看到,相比于原来的直接使用 p o p_o po来计算一致性,这里分子分母同时剔除了"随机一致性" p e p_e pe。

随机一致性的计算如下:
P 人类评分 = 0 = N 人类评分 = 0 N 样本总数 P_{人类评分=0} = \frac{N_{人类评分=0}}{N_{样本总数}} P人类评分=0=N样本总数N人类评分=0
P G P T 评分 = 0 = N G P T 评分 = 0 N 样本总数 P_{GPT评分=0} = \frac{N_{GPT评分=0}}{N_{样本总数}} PGPT评分=0=N样本总数NGPT评分=0
p e 人类评分 = G P T 评分 = 0 = P 人类评分 = 0 ∗ P G P T 评分 = 0 p_{e_{人类评分=GPT评分=0}} = P_{人类评分=0} * P_{GPT评分=0} pe人类评分=GPT评分=0=P人类评分=0∗PGPT评分=0

得到最终的随机一致性为:
p e = ∑ i C ( P 人类评分 = i ∗ P G P T 评分 = i ) p_e = \sum_i^C{(P_{人类评分=i} * P_{GPT评分=i})} pe=i∑C(P人类评分=i∗PGPT评分=i)

Weighted Kappa

Weighted kappa是Cohen's kappa的扩展,特别适用于有序分类的情境。通过为每一对分类分配一个权重,可以根据不一致的严重性给予不同的惩罚。比如,评分0和3之间的不一致,大于1和2之间的不一致,那么应当给前者更重的惩罚。Quadratic Weighted Kappa,应用了平方权重,通常为分类间的距离的平方:
w i , j = ( i − j ) 2 ( C − 1 ) 2 w_{i,j} = \frac{(i-j)^2}{(C-1)^2} wi,j=(C−1)2(i−j)2

这里使用了归一化权重,分母用了 C − 1 C-1 C−1,是因为两个评分 i i i和 j j j的差异的最大值是 C − 1 C-1 C−1。如此,确保权重的范围在0到1之间。
κ = 1 − ∑ i , j w i , j O i , j ∑ i , j w i , j E i , j \kappa = 1- \frac{\sum_{i,j}{w_{i,j}O_{i,j}}}{\sum_{i,j}{w_{i,j}E_{i,j}}} κ=1−∑i,jwi,jEi,j∑i,jwi,jOi,j

(未完待续)

1 图片源自https://www.statology.org/cohens-kappa-statistic/

相关推荐
CTA终结者9 分钟前
期货量化主力换月程序怎么移仓:天勤 underlying_symbol 与任务切换
python·区块链
马士兵教育11 分钟前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
KaMeidebaby44 分钟前
卡梅德生物技术快报|纯化重组蛋白实操详解
人工智能·python·tcp/ip·算法·机器学习
Cloud_Shy6181 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
天佑木枫1 小时前
15天Python入门系列 · 序
开发语言·python
happylifetree1 小时前
Python017-第二章15.数据容器-dict常用操作
python
装不满的克莱因瓶1 小时前
了解 LangChain 中的 LLM 与 ChatModel 的差异
人工智能·python·ai·langchain·llm·agent·chatmodel
IT知识分享2 小时前
从零开发在线简繁转换工具:OpenCC 实战、避坑经验与方案选型
javascript·python
lunzi_08262 小时前
【学习笔记】《Python编程 从入门到实践》第8章:函数定义、参数传递与模块导入
笔记·python·学习
嘉子的秃头日记3 小时前
TRO 2026|轮椅也能“猜到”用户想往哪走?
大数据·人工智能·机器学习