label_ranking_loss#

sklearn.metrics.label_ranking_loss(y_true, y_score, *, sample_weight=None)[source]#

计算排序损失度量。

计算给定 y_score 的标签对中错误排序的平均数量,该数量按标签集大小和不在标签集中的标签数量加权。

这类似于错误集大小,但按相关和不相关标签的数量加权。当排序损失为零时,性能最佳。

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

0.17 版新增:函数 label_ranking_loss

参数:
y_true形状为 (n_samples, n_labels) 的 {类数组, 稀疏矩阵}

二进制指示器格式的真实二元标签。

y_score形状为 (n_samples, n_labels) 的类数组

目标分数,可以是正类的概率估计、置信值或未阈值化的决策度量(由某些分类器的“decision_function”返回)。对于 decision_function 分数,大于或等于零的值应表示正类。

sample_weight形状为 (n_samples,) 的类数组,默认为 None

样本权重。

返回:
loss浮点数

给定 y_score 的标签对中错误排序的平均数量,该数量按标签集大小和不在标签集中的标签数量加权。

参考文献

[1]

Tsoumakas, G., Katakis, I., & Vlahavas, I. (2010). Mining multi-label data. In Data mining and knowledge discovery handbook (pp. 667-685). Springer US.

示例

>>> from sklearn.metrics import label_ranking_loss
>>> y_true = [[1, 0, 0], [0, 0, 1]]
>>> y_score = [[0.75, 0.5, 1], [1, 0.2, 0.1]]
>>> label_ranking_loss(y_true, y_score)
0.75