多標籤混淆矩陣#
- sklearn.metrics.multilabel_confusion_matrix(y_true, y_pred, *, sample_weight=None, labels=None, samplewise=False)[原始碼]#
為每個類別或樣本計算混淆矩陣。
於版本 0.21 新增。
計算類別式(預設)或樣本式(samplewise=True)多標籤混淆矩陣,以評估分類的準確性,並輸出每個類別或樣本的混淆矩陣。
在多標籤混淆矩陣 \(MCM\) 中,真正負例的計數是 \(MCM_{:,0,0}\),偽負例是 \(MCM_{:,1,0}\),真正正例是 \(MCM_{:,1,1}\),而偽正例是 \(MCM_{:,0,1}\)。
多類別數據將被視為在 one-vs-rest 轉換下進行二元化處理。返回的混淆矩陣將按照 (y_true, y_pred) 聯集中已排序的唯一標籤順序排列。
請在使用者指南中閱讀更多資訊。
- 參數:
- y_true{類陣列 (array-like), 稀疏矩陣},形狀為 (n_samples, n_outputs) 或 (n_samples,)
真實(正確)的目標值。
- y_pred{類陣列 (array-like), 稀疏矩陣},形狀為 (n_samples, n_outputs) 或 (n_samples,)
分類器返回的估計目標值。
- sample_weight類陣列 (array-like),形狀為 (n_samples,),預設值為 None
樣本權重。
- labels類陣列 (array-like),形狀為 (n_classes,),預設值為 None
類別列表或欄索引,用於選擇部分類別(或強制包含資料中不存在的類別)。
- samplewise布林值 (bool),預設值為 False
在多標籤情況下,這會計算每個樣本的混淆矩陣。
- 返回:
- multi_confusionndarray,形狀為 (n_outputs, 2, 2)
一個 2x2 的混淆矩陣,對應於輸入中的每個輸出。當計算類別式的 multi_confusion(預設)時,則 n_outputs = n_labels;當計算樣本式的 multi_confusion (samplewise=True) 時,則 n_outputs = n_samples。如果定義了
labels
,則結果將按照labels
中指定的順序返回,否則預設將按照排序後的順序返回。
另請參閱
confusion_matrix
計算混淆矩陣以評估分類器的準確性。
註解
multilabel_confusion_matrix
計算類別式或樣本式的多標籤混淆矩陣,在多類別任務中,標籤會以 one-vs-rest 的方式二元化;而confusion_matrix
計算每個類別之間混淆的一個混淆矩陣。範例
多標籤指示器 (Multilabel-indicator) 情況
>>> import numpy as np >>> from sklearn.metrics import multilabel_confusion_matrix >>> y_true = np.array([[1, 0, 1], ... [0, 1, 0]]) >>> y_pred = np.array([[1, 0, 0], ... [0, 1, 1]]) >>> multilabel_confusion_matrix(y_true, y_pred) array([[[1, 0], [0, 1]], [[1, 0], [0, 1]], [[0, 1], [1, 0]]])
多類別 (Multiclass) 情況
>>> y_true = ["cat", "ant", "cat", "cat", "ant", "bird"] >>> y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"] >>> multilabel_confusion_matrix(y_true, y_pred, ... labels=["ant", "bird", "cat"]) array([[[3, 1], [0, 2]], [[5, 0], [1, 0]], [[2, 1], [1, 2]]])