海明损失#
- sklearn.metrics.hamming_loss(y_true, y_pred, *, sample_weight=None)[源码]#
计算平均海明损失。
海明损失是指被错误预测的标签占总标签的比例。
更多信息请参阅用户指南。
- 参数:
- y_true1维类数组,或标签指示器数组 / 稀疏矩阵
真实(正确)标签。
- y_pred1维类数组,或标签指示器数组 / 稀疏矩阵
预测标签,由分类器返回。
- sample_weight形状为 (n_samples,) 的类数组,默认为 None
样本权重。
0.18 版本新增。
- 返回:
- loss浮点数或整数
返回
y_true
和y_pred
元素之间的平均海明损失。
另请参阅
accuracy_score
计算准确率分数。默认情况下,该函数将返回正确预测的数量除以总预测数量的比例。
jaccard_score
计算 Jaccard 相似系数分数。
zero_one_loss
计算零一分类损失。默认情况下,该函数将返回不完美预测子集的百分比。
注释
在多分类中,海明损失对应于
y_true
和y_pred
之间的海明距离,这等同于当normalize
参数设置为 True 时的子集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]示例
>>> 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