multilabel_confusion_matrix#
- sklearn.metrics.multilabel_confusion_matrix(y_true, y_pred, *, sample_weight=None, labels=None, samplewise=False)[source]#
为每个类别或样本计算混淆矩阵。
0.21 版本新增。
计算类别级别(默认)或样本级别(samplewise=True)的多标签混淆矩阵,以评估分类的准确性,并为每个类别或样本输出混淆矩阵。
在多标签混淆矩阵 \(MCM\) 中,真负例计数为 \(MCM_{:,0,0}\),假负例计数为 \(MCM_{:,1,0}\),真正例计数为 \(MCM_{:,1,1}\),假正例计数为 \(MCM_{:,0,1}\)。
多类别数据将被视为在“一对多”转换下进行二值化。返回的混淆矩阵将按照 (y_true, y_pred) 联合中唯一标签的排序顺序排列。
欲了解更多信息,请参阅用户指南。
- 参数:
- y_true{类数组, 稀疏矩阵} 形状为 (n_samples, n_outputs) 或 (n_samples,)
真实(正确)的目标值。
- y_pred{类数组, 稀疏矩阵} 形状为 (n_samples, n_outputs) 或 (n_samples,)
分类器返回的估计目标。
- sample_weight类数组,形状为 (n_samples,), 默认值为 None
样本权重。
- labels类数组,形状为 (n_classes,), 默认值为 None
一个类别或列索引列表,用于选择部分(或强制包含数据中不存在的类别)。
- samplewise布尔值, 默认值为 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
计算类别级别或样本级别的多标签混淆矩阵,在多类别任务中,标签以“一对多”的方式进行二值化;而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]]])