我不了解在 sklearn.metrics 模块中可用的 scikit learn 中如何计算 coverage_error。文档中的解释如下:
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_true 中的所有标签。所以覆盖误差 = 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
为什么两种情况下的错误都是一样的?