sklearn.metrics.hamming_loss

sklearn.metrics.hamming_loss(y_true, y_pred, *, sample_weight=None)

[源码]

计算平均Hamming loss(汉明损失)。

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

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

参数 说明
y_true 1d array-like, or label indicator array / sparse matrix
真实标签。
y_pred 1d array-like, or label indicator array / sparse matrix
预测标签,由分类器返回。
sample_weight array-like of shape (n_samples,), default=None
样本权重。
版本0.18中的新功能。
返回值 说明
loss float or int,
返回y_true和y_pred元素之间的平均Hamming loss。

另见:

accuracy_score, jaccard_score, zero_one_loss

在多类分类中,当normalize参数设置为True时,汉明损失对应于y_true和y_pred之间的汉明距离,该距离等效于子集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.

2 Wikipedia entry on the Hamming distance

示例

>>> from sklearn.metrics import hamming_loss
>>> y_pred = [1234]
>>> y_true = [2234]
>>> hamming_loss(y_true, y_pred)
0.25

在带有二进制标签指示符的多标签情况下:

>>> import numpy as np
>>> hamming_loss(np.array([[01], [11]]), np.zeros((22)))
0.75

sklearn.metrics.hamming_loss应用示例