Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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
Scikit learn scikit学习中的覆盖率错误度量说明_Scikit Learn_Multilabel Classification - Fatal编程技术网

Scikit learn scikit学习中的覆盖率错误度量说明

Scikit learn scikit学习中的覆盖率错误度量说明,scikit-learn,multilabel-classification,Scikit Learn,Multilabel Classification,我不理解scikit learn中的覆盖率错误是如何计算的,可在sklearn.metrics模块中找到。文件中的说明如下: coverage_error函数计算最终预测中必须包含的标签的平均数量,以便预测所有真实标签 例如: import numpy as np from sklearn.metrics import coverage_error y_true = np.array([[1, 0, 0], [0, 1, 1]]) y_score = np.array([[1, 0, 0], [

我不理解scikit learn中的覆盖率错误是如何计算的,可在sklearn.metrics模块中找到。文件中的说明如下:

coverage_error函数计算最终预测中必须包含的标签的平均数量,以便预测所有真实标签

例如:

import numpy as np
from sklearn.metrics import coverage_error
y_true = np.array([[1, 0, 0], [0, 1, 1]])
y_score = np.array([[1, 0, 0], [0, 1, 1]])
print coverage_error(y_true, y_score)
1.5
根据我的理解,这里我们需要包括预测中的3个标签,以使y_中的所有标签都为真。所以覆盖率误差=3/2,即1.5。但我无法理解在以下情况下会发生什么:

>>> y_score = np.array([[1, 0, 0], [0, 0, 1]])
>>> print coverage_error(y_true, y_score)
2.0
>>> y_score = np.array([[1, 0, 1], [0, 1, 1]])
>>> print coverage_error(y_true, y_score)
2.0
为什么这两种情况下的错误是相同的?

您可以查看

您需要注意的一件事是如何计算排名,并在排名中打破联系
y_得分

具体而言,第一种情况:

In [4]: y_true
Out[4]:
array([[1, 0, 0],
       [0, 1, 1]])

In [5]: y_score
Out[5]:
array([[1, 0, 0],
       [0, 0, 1]])
  • 对于第一个样本,第一个真标签为真,第一个分数的排名为1
  • 对于2ed样本,2ed和3rd true标签为true,得分等级分别为3和1,因此最大等级为3
  • 平均值为(3+1)/2=2
  • 第二种情况:

    In [7]: y_score
    Out[7]:
    array([[1, 0, 1],
           [0, 1, 1]])
    
  • 对于第一个样本,第一个真标签为真,第一个分数的排名为2
  • 对于2ed样本,2ed和3rd true标签为true,得分等级分别为2和2,因此最大等级为2
  • 平均值为(2+2)/2=2
  • 编辑:

    排名在
    y\u得分的一个样本范围内
    。该公式表示标签的排名是分数大于或等于其分数的标签(包括标签本身)的数量

    这就像按照
    y_分数对标签进行排序一样,分数最大的标签排名1,第二大的标签排名2,第三大的标签排名3,等等。但是如果第二大和第三大标签的分数相同,它们都排名3

    请注意,
    y_分数

    目标分数可以是正类的概率估计、置信值或二元决策

    我们的目标是预测所有真实标签,因此我们需要包括所有分数高于或等于真实标签的标签。

    您可以查看

    您需要注意的一件事是如何计算排名,并在排名中打破联系
    y_得分

    具体而言,第一种情况:

    In [4]: y_true
    Out[4]:
    array([[1, 0, 0],
           [0, 1, 1]])
    
    In [5]: y_score
    Out[5]:
    array([[1, 0, 0],
           [0, 0, 1]])
    
  • 对于第一个样本,第一个真标签为真,第一个分数的排名为1
  • 对于2ed样本,2ed和3rd true标签为true,得分等级分别为3和1,因此最大等级为3
  • 平均值为(3+1)/2=2
  • 第二种情况:

    In [7]: y_score
    Out[7]:
    array([[1, 0, 1],
           [0, 1, 1]])
    
  • 对于第一个样本,第一个真标签为真,第一个分数的排名为2
  • 对于2ed样本,2ed和3rd true标签为true,得分等级分别为2和2,因此最大等级为2
  • 平均值为(2+2)/2=2
  • 编辑:

    排名在
    y\u得分的一个样本范围内
    。该公式表示标签的排名是分数大于或等于其分数的标签(包括标签本身)的数量

    这就像按照
    y_分数对标签进行排序一样,分数最大的标签排名1,第二大的标签排名2,第三大的标签排名3,等等。但是如果第二大和第三大标签的分数相同,它们都排名3

    请注意,
    y_分数

    目标分数可以是正类的概率估计、置信值或二元决策


    我们的目标是预测所有真实标签,因此我们需要包括所有分数高于或等于真实标签的标签。

    您能解释排名部分是如何计算的吗?我无法从公式中理解它。谢谢。现在明白了。你能解释一下排名部分是如何计算的吗?我无法从公式中理解它。谢谢。现在我明白了。