Python中的跨等级协议(Cohen's Kappa)

2024-09-26 18:10:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三个评分员对60个案例的评分。它们在按文档组织的列表中—第一个元素指的是第一个文档的评级,第二个文档的评级,依此类推:

rater1 = [-8,-7,8,6,2,-5,...]
rater2 = [-3,-5,3,3,2,-2,...]
rater3 = [-4,-2,1,0,0,-2,...]

有没有Cohen'sKappa的python实现?我在纽比或希比找不到任何东西,在斯塔克弗洛夫也找不到,但也许我错过了?这是一个很常见的统计数据,所以我很惊讶对于Python这样的语言找不到它。


Tags: 文档语言元素列表评分案例统计数据cohen
3条回答

在scikit learn 0.17中引入了Cohen's kappa

sklearn.metrics.cohen_kappa_score(y1, y2, labels=None, weights=None)

Example

from sklearn.metrics import cohen_kappa_score
labeler1 = [2, 0, 2, 2, 0, 1]
labeler2 = [0, 0, 2, 2, 0, 2]
cohen_kappa_score(labeler1, labeler2)

作为提醒,从{1}:

enter image description here


参考文献:

旧问题,但作为参考,Kappa可以在skll metrics包中找到。

http://skll.readthedocs.org/en/latest/api/metrics.html#skll.metrics.kappa

您还可以使用nltk.metrics.agreement。下面是相同的代码段

from nltk import agreement
rater1 = [1,1,1]
rater2 = [1,1,0]
rater3 = [0,1,1]

taskdata=[[0,str(i),str(rater1[i])] for i in range(0,len(rater1))]+[[1,str(i),str(rater2[i])] for i in range(0,len(rater2))]+[[2,str(i),str(rater3[i])] for i in range(0,len(rater3))]
ratingtask = agreement.AnnotationTask(data=taskdata)
print("kappa " +str(ratingtask.kappa()))
print("fleiss " + str(ratingtask.multi_kappa()))
print("alpha " +str(ratingtask.alpha()))
print("scotts " + str(ratingtask.pi()))

有关其他示例,请参见http://courses.washington.edu/cmling/lab7.html

相关问题 更多 >

    热门问题