事情本身不复杂,线索都在日志里。两名标注员各标 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 属于中等偏弱,先看混淆矩阵再谈阈值,盲目换公式只会换一个数字。如果同一现象隔几天又出现,说明根因没找到,别当偶发处理。
