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_true
和y_pred
元素之间的平均汉明损失。
See also
accuracy_score
计算准确率得分。默认情况下,函数将返回正确预测的比例除以预测总数。
jaccard_score
计算 Jaccard 相似系数得分。
zero_one_loss
计算零一分类损失。默认情况下,函数将返回不完全预测子集的百分比。
Notes
在多类分类中,汉明损失对应于
y_true
和y_pred
之间的汉明距离,这相当于当normalize
参数设置为 True 时的子集zero_one_loss
函数。在多标签分类中,汉明损失与子集零一损失不同。零一损失认为如果给定样本的标签集不完全匹配真实标签集,则该样本的所有标签都是不正确的。汉明损失则更为宽容,它只惩罚单个标签。
当
normalize
参数设置为 True 时,汉明损失的上限是子集零一损失。它的值总是在 0 和 1 之间,越低越好。References
[1]Grigorios Tsoumakas, Ioannis Katakis. 多标签分类:概述。国际数据仓库与挖掘杂志, 3(3), 1-13, 2007年7-9月。
[2]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