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。 |
另见:
注
在多类分类中,当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 = [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