混淆矩陣#

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

計算混淆矩陣以評估分類的準確性。

根據定義,混淆矩陣 \(C\) 使得 \(C_{i, j}\) 等於已知在組別 \(i\) 且預測為組別 \(j\) 的觀察數。

因此,在二元分類中,真陰性的計數是 \(C_{0,0}\),假陰性是 \(C_{1,0}\),真陽性是 \(C_{1,1}\),而假陽性是 \(C_{0,1}\)

使用者指南中閱讀更多資訊。

參數:
y_true形狀為 (n_samples,) 的類陣列

真實(正確)目標值。

y_pred形狀為 (n_samples,) 的類陣列

分類器返回的估計目標。

labels形狀為 (n_classes) 的類陣列,預設值=None

用於索引矩陣的標籤列表。這可用於重新排序或選擇標籤的子集。如果給定 None,則將使用在 y_truey_pred 中至少出現一次的標籤,並依排序順序排列。

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

樣本權重。

在 0.18 版本中新增。

normalize{‘true’, ‘pred’, ‘all’},預設值=None

對真實(行)、預測(列)條件或所有母體的混淆矩陣進行正規化。如果為 None,則不會對混淆矩陣進行正規化。

返回:
C形狀為 (n_classes, n_classes) 的 ndarray

混淆矩陣,其第 i 行和第 j 列的項目表示真實標籤為第 i 個類別且預測標籤為第 j 個類別的樣本數。

另請參閱

ConfusionMatrixDisplay.from_estimator

繪製給定估算器、資料和標籤的混淆矩陣。

ConfusionMatrixDisplay.from_predictions

繪製給定真實和預測標籤的混淆矩陣。

ConfusionMatrixDisplay

混淆矩陣視覺化。

參考文獻

[1]

混淆矩陣的維基百科條目(維基百科和其他參考資料可能會使用不同的軸慣例)。

範例

>>> from sklearn.metrics import confusion_matrix
>>> y_true = [2, 0, 2, 2, 0, 1]
>>> y_pred = [0, 0, 2, 2, 0, 2]
>>> confusion_matrix(y_true, y_pred)
array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]])
>>> y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
>>> y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]
>>> confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"])
array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]])

在二元情況下,我們可以提取真陽性等,如下所示

>>> tn, fp, fn, tp = confusion_matrix([0, 1, 0, 1], [1, 1, 1, 0]).ravel()
>>> (tn, fp, fn, tp)
(np.int64(0), np.int64(2), np.int64(1), np.int64(1))