Python中的评估者协议(Cohen的Kappa)

时间:2012-07-17 17:56:46

标签: python statistics rating

我有3个评分者对60个案例的评分。这些是按文档组织的列表 - 第一个元素是指第一个文档的评级,第二个文档的第二个,依此类推:

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

Cohen的Kappa在某处有python实现吗?我在numpy或scipy中找不到任何东西,而且stackoverflow上没有任何东西,但也许我错过了它?这是一个非常常见的统计数据,所以我很惊讶我找不到像Python这样的语言。

5 个答案:

答案 0 :(得分:12)

您也可以使用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了解其他示例

答案 1 :(得分:7)

Cohen's kappa是在scikit-learn 0.17中引入的:

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

参考文献:

答案 2 :(得分:3)

旧问题,但参考Kappa可以在skll metrics package找到。

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

答案 3 :(得分:2)

我还没有发现它包含在任何主要的库中,但是如果你在google周围,你可以在各种“cookbook”类型的网站上找到实现。以下是包含Cohen's kappaFleiss' kappaKrippendorff's alpha

实施的网页

答案 4 :(得分:0)

statsmodels是一个python库,其中包含Cohen的Kappa和其他评估者之间的协议指标(在statsmodels.stats.inter_rater中)。