根据scikit learn文档,cohen kappa得分可以按照以下方式计算:
from sklearn.metrics import cohen_kappa_score
y_true = [1, 0, 1, 1, 1, 1]
y_pred = [1, 0, 1, 1, 1, 1]
print(cohen_kappa_score(y_true, y_pred)
1
这里的0和1是由注释者分配的标签。
然而,如果两个注释者都没有分配第二个标签(比如0),那么分数会变成nan!但其实这种情况下应该是1(如果我没记错的话),因为两个注释者是一致的。
from sklearn.metrics import cohen_kappa_score
y_true = [1, 1, 1, 1, 1, 1]
y_pred = [1, 1, 1, 1, 1, 1]
print(cohen_kappa_score(y_true, y_pred)
packages/sklearn/metrics/_classification.py:604: RuntimeWarning: invalid value encountered in true_divide
k = np.sum(w_mat * confusion) / np.sum(w_mat * expected)
nan
我错过了什么吗?
更新: 我在Github的问题中找到了这个链接: https://github.com/scikit-learn/scikit-learn/issues/9624
我仍然不明白这是一个完全随机的完美协议,应该将其视为正确的注释。