汉明损失#

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

计算平均汉明损失。

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

更多信息请参考 用户指南.

参数:
y_true一维数组或标签指示数组/稀疏矩阵

真实标签。

y_pred一维数组或标签指示数组/稀疏矩阵

分类器预测的标签。

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. 多标签分类:概述。国际数据仓库与挖掘杂志,3(3),1-13,2007 年 7 月 - 9 月。

示例

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