hamming_loss#

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

计算平均 Hamming 损失。

Hamming loss 是错误预测的标签的比例。

用户指南 中了解更多。

参数:
y_true1d array-like, or label indicator array / sparse matrix

真实的(正确的)标签。稀疏矩阵仅在目标为 多标签 类型时支持。

y_pred1d array-like, or label indicator array / sparse matrix

预测的标签,由分类器返回。稀疏矩阵仅在目标为 多标签 类型时支持。

sample_weightshape 为 (n_samples,) 的 array-like, default=None

样本权重。

版本 0.18 新增。

返回:
loss浮点数

返回 `y_true` 和 `y_pred` 元素之间的平均 Hamming loss。

另请参阅

accuracy_score

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

jaccard_score

计算 Jaccard 相似系数分数。

zero_one_loss

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

注意事项

在多类分类中,Hamming loss 对应于 `y_true` 和 `y_pred` 之间的 Hamming 距离,这等同于当 `normalize` 参数设置为 True 时的子集 `zero_one_loss` 函数。

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

当 `normalize` 参数设置为 True 时,Hamming loss 的上限是子集零一损失。它始终在 0 和 1 之间,越低越好。

References

[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