📅  最后修改于: 2023-12-03 15:41:18.401000             🧑  作者: Mango
科恩的kappa系数用于衡量两个或多个评价者之间的一致性。在统计分析和数据挖掘中,经常需要衡量评价者在某个任务上的一致性,例如医学领域中病例诊断的一致性等。kappa系数的取值范围是[-1,1],其中-1表示完全不一致,0表示随机一致,1表示完全一致。
$$\kappa = \frac{p_o - p_e}{1 - p_e}$$
其中,$p_o$表示实际的一致性比率,$p_e$表示随机一致时的比率,公式的详细解释可以参考维基百科。
以下是一个Python函数,用于计算两个评价者之间的kappa系数:
def kappa(o1,o2):
"""
计算两个评价者之间的kappa系数
:param o1: 第一个评价者的评价结果,列表形式
:param o2: 第二个评价者的评价结果,列表形式
:return: kappa系数
"""
assert len(o1) == len(o2)
observed_agreement = 0.0 # 实际一致的比率
num_items = len(o1) # 评价的总数
categories = set(o1).union(set(o2)) # 评价结果的类别
# 计算实际一致性比率
for category in categories:
count1 = o1.count(category)
count2 = o2.count(category)
count_agree = 0.0
for i in range(num_items):
if o1[i] == category and o2[i] == category:
count_agree += 1.0
observed_agreement += count_agree / num_items
observed_agreement /= len(categories)
# 计算随机一致性比率
expected_agreement = 0.0
for category in categories:
count1 = o1.count(category)
count2 = o2.count(category)
count_possible_agree = count1 * count2 / num_items
expected_agreement += count_possible_agree / num_items
# 计算kappa系数
kappa_score = (observed_agreement - expected_agreement) / (1 - expected_agreement)
return kappa_score
o1 = ["A", "A", "B", "B", "A"]
o2 = ["A", "B", "A", "B", "B"]
kappa_score = kappa(o1, o2)
print("kappa系数: %.4f" % kappa_score)
输出:
kappa系数: 0.2000
科恩的kappa系数可以很好地衡量两个或多个评价者之间的一致性,有助于统计分析和数据挖掘中的相关任务。