海明损失#

sklearn.metrics.hamming_loss(y_true, y_pred, *, sample_weight=None)[源码]#

计算平均海明损失。

海明损失是指被错误预测的标签占总标签的比例。

更多信息请参阅用户指南

参数:
y_true1维类数组,或标签指示器数组 / 稀疏矩阵

真实(正确)标签。

y_pred1维类数组,或标签指示器数组 / 稀疏矩阵

预测标签,由分类器返回。

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

样本权重。

0.18 版本新增。

返回:
loss浮点数或整数

返回 y_truey_pred 元素之间的平均海明损失。

另请参阅

accuracy_score

计算准确率分数。默认情况下,该函数将返回正确预测的数量除以总预测数量的比例。

jaccard_score

计算 Jaccard 相似系数分数。

zero_one_loss

计算零一分类损失。默认情况下,该函数将返回不完美预测子集的百分比。

注释

在多分类中,海明损失对应于 y_truey_pred 之间的海明距离,这等同于当 normalize 参数设置为 True 时的子集 zero_one_loss 函数。

在多标签分类中,海明损失与子集零一损失不同。零一损失认为,如果给定样本的整个标签集与真实标签集不完全匹配,则该标签集是错误的。海明损失更宽容,因为它只惩罚单个标签。

normalize 参数设置为 True 时,海明损失的上限是子集零一损失。它始终介于 0 和 1 之间,值越低越好。

参考文献

[1]

Grigorios Tsoumakas, Ioannis Katakis. Multi-Label Classification: An Overview. International Journal of Data Warehousing & Mining, 3(3), 1-13, July-September 2007.

示例

>>> from sklearn.metrics import hamming_loss
>>> y_pred = [1, 2, 3, 4]
>>> y_true = [2, 2, 3, 4]
>>> hamming_loss(y_true, y_pred)
0.25

在带有二元标签指示符的多标签情况下

>>> import numpy as np
>>> hamming_loss(np.array([[0, 1], [1, 1]]), np.zeros((2, 2)))
0.75