漢明損失#

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

計算平均漢明損失。

漢明損失是錯誤預測的標籤比例。

請閱讀使用者指南以了解更多資訊。

參數
y_true一維類陣列 (1d array-like),或標籤指示陣列 / 稀疏矩陣

真實 (正確) 標籤。

y_pred一維類陣列 (1d array-like),或標籤指示陣列 / 稀疏矩陣

預測標籤,由分類器返回。

sample_weight形狀為 (n_samples,) 的類陣列,預設為 None

樣本權重。

於版本 0.18 新增。

回傳值
loss浮點數 (float) 或整數 (int)

回傳 y_truey_pred 元素之間的平均漢明損失。

另請參閱

accuracy_score

計算準確率 (accuracy score)。預設情況下,此函數將返回正確預測的分數除以預測總數。

jaccard_score

計算 Jaccard 相似係數分數 (Jaccard similarity coefficient score)。

零一損失 (zero_one_loss)

計算零一分類損失 (Zero-one classification loss)。預設情況下,此函數將返回不完美預測子集的百分比。

備註

在多類別分類中,漢明損失對應於 y_truey_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.

範例

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