hamming_loss#

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

计算平均汉明损失。

汉明损失是错误预测标签的比例。

更多信息请参阅 用户指南

Parameters:
y_true1d array-like, 或标签指示器数组 / 稀疏矩阵

真实标签(正确的)。

y_pred1d array-like, 或标签指示器数组 / 稀疏矩阵

分类器返回的预测标签。

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

样本权重。

Added in version 0.18.

Returns:
lossfloat 或 int

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

See also

accuracy_score

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

jaccard_score

计算 Jaccard 相似系数得分。

zero_one_loss

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

Notes

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

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

normalize 参数设置为 True 时,汉明损失的上限是子集零一损失。它的值总是在 0 和 1 之间,越低越好。

References

[1]

Grigorios Tsoumakas, Ioannis Katakis. 多标签分类:概述。国际数据仓库与挖掘杂志, 3(3), 1-13, 2007年7-9月。

Examples

>>> 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