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中指定的顺序返回,否则默认情况下将按排序顺序返回结果。 |
另见:
注
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]],
<BLANKLINE>
[[1, 0],
[0, 1]],
<BLANKLINE>
[[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]],
<BLANKLINE>
[[5, 0],
[1, 0]],
<BLANKLINE>
[[2, 1],
[1, 2]]])