sklearn.metrics.multilabel_confusion_matrix

sklearn.metrics.multilabel_confusion_matrix(y_true, y_pred, *, sample_weight=None, labels=None, samplewise=False)

[源码]

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

0.21版中的新功能。

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

在多标签混淆矩阵MCM中,真负例计数为,假负例计数为,真正例计数为,假正例计数为

多类数据将视为被一对多转换为二值化。返回的混淆矩阵将按照(y_true,y_pred)的并集中唯一标签的排序顺序。

用户指南中阅读更多内容。

参数 说明
y_true 1d array-like, or label indicator array / sparse matrix
(n_samples,n_outputs)或(n_samples,)形状的真实目标值。
y_pred 1d array-like, or label indicator array / sparse matrix
(n_samples,n_outputs)或(n_samples,)形状的分类器返回的估计目标。
sample_weight array-like of shape (n_samples,), default=None
样本权重。
labels array-like
类或列索引的列表,用于选择某些类(或强制包含数据中不存在的类)
samplewise bool, default=False
在多标签的情况下,计算每个样品的混淆矩阵
返回值 说明
multi_confusion array, shape (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计算逐类或逐样例多标签混淆矩阵,在多类任务中,标签以“一对多”的方式进行二值化; 而confusion_matrix为每两类之间的混淆计算一个混淆矩阵。

示例

多标签指示器案例:

>>> import numpy as np
>>> from sklearn.metrics import multilabel_confusion_matrix
>>> y_true = np.array([[101],
...                    [010]])
>>> y_pred = np.array([[100],
...                    [011]])
>>> multilabel_confusion_matrix(y_true, y_pred)
array([[[10],
        [01]],
<BLANKLINE>
       [[10],
        [01]],
<BLANKLINE>
       [[01],
        [10]]])

多类的例子:

>>> 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([[[31],
        [02]],
<BLANKLINE>
       [[50],
        [10]],
<BLANKLINE>
       [[21],
        [12]]])