cohen_kappa_score#

sklearn.metrics.cohen_kappa_score(y1, y2, *, labels=None, weights=None, sample_weight=None, replace_undefined_by=nan)[source]#

计算 Cohen’s kappa:一种衡量标注者间一致性的统计量。

此函数用于计算 Cohen’s kappa [1],该得分表示分类问题中两位标注者之间的一致性水平。其定义如下:

\[\kappa = (p_o - p_e) / (1 - p_e)\]

其中 \(p_o\) 是对任意样本分配标签时的一致性经验概率(观察到的一致性比率),\(p_e\) 是当两位标注者随机分配标签时预期的致性。\(p_e\) 是通过使用每个标注者在类标签上的经验先验分布来估计的 [2]

用户指南 中阅读更多内容。

参数:
y1形状为 (n_samples,) 的类数组对象

由第一位标注者分配的标签。

y2形状为 (n_samples,) 的类数组对象

由第二位标注者分配的标签。kappa 统计量是对称的,因此交换 y1y2 不会改变其值。

labels形状为 (n_classes,) 的类数组对象, 默认为 None

用于索引矩阵的标签列表。这可用于选择标签的子集。如果为 None,则使用在 y1y2 中至少出现一次的所有标签。请注意,即使此函数不区分 y1y2 的顺序,labels 中至少有一个标签必须存在于 y1 中。

weights{‘linear’, ‘quadratic’}, 默认=None

计算得分时使用的加权类型。None 表示不加权;“linear” 表示线性加权;“quadratic” 表示二次加权。

sample_weightshape 为 (n_samples,) 的 array-like, default=None

样本权重。

replace_undefined_bynp.nan, 范围在 [-1.0, 1.0] 之间的浮点数, 默认=np.nan

设置指标未定义时的返回值。当第二位标注者未分配任何关注的标签(如 labels 参数中所定义),或者当 y1y2 只有一个共同的标签且该标签也在 labels 中时,可能会发生这种情况。在这些情况下,会引发 UndefinedMetricWarning。可取以下值:

  • np.nan 返回 np.nan

  • 范围在 [-1.0, 1.0] 之间的浮点值以返回特定值

1.9 版本中新增。

返回:
kappafloat

kappa 统计量,是一个介于 -1.0 到 1.0 之间的数字。最大值意味着完全一致;最小值意味着完全不一致;0.0 表示一致性程度不高于偶然预期。

References

示例

>>> from sklearn.metrics import cohen_kappa_score
>>> y1 = ["negative", "positive", "negative", "neutral", "positive"]
>>> y2 = ["negative", "positive", "negative", "neutral", "negative"]
>>> cohen_kappa_score(y1, y2)
0.6875