事情本身不复杂,线索都在日志里。两名标注员各标 500 条三分类数据,用 sklearn 的 cohen_kappa_score 算出 0.55,业务方问这个数能不能作为验收依据,换成 weighted kappa 结果又不一样。

第一反应是「类别本身有序却用了无序 kappa」,验证下来不成立。

原因不止一个,得分开看。三分类用了二分类的直觉判断,基准概率没扣掉。另一种情况是两名标注员标的是不同子集,样本不对齐。

不容易想到的是,一致性按条算但类别分布极度不均。

先确认两人标注的样本完全对齐

python -c "import json;a=json.load(open('a.json'));b=json.load(open('b.json'));print(len(set(a)&set(b)))"

算混淆矩阵看分歧集中在哪两类

python -c "from sklearn.metrics import confusion_matrix;print(confusion_matrix(ya,yb))"

有序类别改用加权 kappa

python -c "from sklearn.metrics import cohen_kappa_score;print(cohen_kappa_score(ya,yb,weights='quadratic'))"

等前面都确认过,再按类别分别算一致性找薄弱类

python eval_iaa.py --by-class --report iaa.json

恢复的判定其实很直接。对齐后 kappa 提升到 0.7 以上,混淆矩阵显示分歧集中在相邻两类,薄弱类补完规范后复标达到验收线。

这里还有个坑。kappa 已经扣过随机一致,0.55 属于中等偏弱,先看混淆矩阵再谈阈值,盲目换公式只会换一个数字。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。

作者 9823189