Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 与Cohen Kappa签订的多标签注释者协议_Python_Scikit Learn_Kappa - Fatal编程技术网

Python 与Cohen Kappa签订的多标签注释者协议

Python 与Cohen Kappa签订的多标签注释者协议,python,scikit-learn,kappa,Python,Scikit Learn,Kappa,假设我想为文档添加注释。每个文档都可以使用多个标签进行注释。在本例中,我有两个注释器(a和b),它们分别标记两个文档 from sklearn.metrics import cohen_kappa_score annotator_a = [ ["a","b","c"], ["d","e"] ] annotator_b = [ ["b","c"], ["f"] ] 注释器a使用标签a、b和c标记文档1。注释者用标签b和c标记文档1 我尝试使用以下公式计算注释者协

假设我想为文档添加注释。每个文档都可以使用多个标签进行注释。在本例中,我有两个注释器(a和b),它们分别标记两个文档

from sklearn.metrics import cohen_kappa_score
annotator_a = [ 
    ["a","b","c"],
    ["d","e"]
]
annotator_b = [
    ["b","c"],
    ["f"]
]
注释器a使用标签a、b和c标记文档1。注释者用标签b和c标记文档1

我尝试使用以下公式计算注释者协议:

cohen_kappa_score(annotator_a, annotator_b)
但这会导致一个错误:

ValueError: You appear to be using a legacy multi-label data representation. Sequence of sequences are no longer supported; use a binary array or sparse matrix instead.

关于如何在此集合上计算注释器协议,有什么想法吗?

具体错误是由于多标签输出的表示不受支持(请参阅sklearn函数的文档)。 即使是正确的多标签输出,您仍然会得到错误,因为
cohen_kappa_分数
不支持多标签输入(见下文)。事实上,它仅适用于独占的类的多类问题,多标签输出根据定义是非独占的

您可以为每个标签使用一个二进制分类器,并计算每个标签的Cohen kappa。如果您需要表示协议的唯一数字,您可以计算标签上的平均kappa

示例:Cohen的多标签kappa 输出:

a_dict: {'a': [1, 0], 'b': [1, 0], 'c': [1, 0], 'd': [0, 1], 'e': [0, 1], 'f': [0, 0]}
b_dict: {'a': [0, 0], 'b': [1, 0], 'c': [1, 0], 'd': [0, 0], 'e': [0, 0], 'f': [0, 1]}
cohen_dict: {'a': 0.0, 'b': 1.0, 'c': 1.0, 'd': 0.0, 'e': 0.0, 'f': 0.0}
cohen_avg: 0.3333333333333333
a_multi:
[[1 1 1 0 0 0]
 [0 0 0 1 1 0]]
b_multi:
[[0 1 1 0 0 0]
 [0 0 0 0 0 1]]
...
ValueError: multilabel-indicator is not supported
如何转换为序列序列以更正多标签表示 输出:

a_dict: {'a': [1, 0], 'b': [1, 0], 'c': [1, 0], 'd': [0, 1], 'e': [0, 1], 'f': [0, 0]}
b_dict: {'a': [0, 0], 'b': [1, 0], 'c': [1, 0], 'd': [0, 0], 'e': [0, 0], 'f': [0, 1]}
cohen_dict: {'a': 0.0, 'b': 1.0, 'c': 1.0, 'd': 0.0, 'e': 0.0, 'f': 0.0}
cohen_avg: 0.3333333333333333
a_multi:
[[1 1 1 0 0 0]
 [0 0 0 1 1 0]]
b_multi:
[[0 1 1 0 0 0]
 [0 0 0 0 0 1]]
...
ValueError: multilabel-indicator is not supported

Cohen的Kappa不支持多标签输入。我们可以用克里彭多夫的阿尔法代替科恩的卡帕。此度量支持评分者之间的一致性、缺失值和非排他性主题。可从以下网址获得: