multilabel_confusion_matrix#

sklearn.metrics.multilabel_confusion_matrix(y_true, y_pred, *, sample_weight=None, labels=None, samplewise=False)[源代码]#

为每个类别或样本计算混淆矩阵。

Added in version 0.21.

计算按类别(默认)或按样本(samplewise=True)多标签混淆矩阵以评估分类的准确性,并输出每个类别或样本的混淆矩阵。

在多标签混淆矩阵中 \(MCM\) ,真阴性的计数是 \(MCM_{:,0,0}\) ,假阴性是 \(MCM_{:,1,0}\) ,真正的积极因素是 \(MCM_{:,1,1}\) 假阳性是 \(MCM_{:,0,1}\) .

多类数据将被视为在一对休息转换下二进制化。返回的混淆矩阵将按照(y_true,y_pred)的联合中排序的唯一标签的顺序。

阅读更多的 User Guide .

参数:
y_true形状(n_样本,n_输出)的{类数组,稀疏矩阵}或 (n_样本,)

地面真相(正确)目标值。

y_pred形状(n_样本,n_输出)的{类数组,稀疏矩阵}或 (n_样本,)

分类器返回的估计目标。

sample_weight形状类似数组(n_samples,),默认=无

样本重量。

labels形状类似数组(n_classes,),默认=无

一个类或列索引的列表,用于选择一些(或强制包含数据中不存在的类)。

samplewise布尔,默认=假

在多标签的情况下,它计算每个样本的混淆矩阵。

返回:
multi_confusion形状的nd数组(n_outputs,2,2)

对应于输入中的每个输出的2x 2混淆矩阵。当计算逐类multi_conflict(默认)时,则n_outputs = n_labels;当计算逐类multi_conflict(samplewise=True)时,n_outputs = n_samples。如果 labels 定义,则结果将按照中指定的顺序返回 labels ,否则默认情况下结果将按照排序顺序返回。

参见

confusion_matrix

计算混淆矩阵以评估分类器的准确性。

注意到

multilabel_confusion_matrix 计算逐类或逐样本的多标签混淆矩阵,在多类任务中,标签以一对休息的方式进行二进制化;同时 confusion_matrix 为每两个类之间的混淆计算一个混淆矩阵。

示例

多标签指示器案例:

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

多类案例:

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