mars.learn.metrics.multilabel_confusion_matrix#

mars.learn.metrics.multilabel_confusion_matrix(y_true, y_pred, *, sample_weight=None, labels=None, samplewise=False, session=None, run_kwargs=None)[来源]#

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

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

在多标签混淆矩阵 \(MCM\) 中,真实负样本的数量是 \(MCM_{:,0,0}\),假负样本是 \(MCM_{:,1,0}\),真实正样本是 \(MCM_{:,1,1}\),假正样本是 \(MCM_{:,0,1}\)

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

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

Parameters
  • y_true ({类似数组, 稀疏矩阵},形状为 (样本数, 输出数) 或 (样本数,)) – 真实目标值(正确值)。

  • y_pred ({类数组, 稀疏矩阵},形状为 (样本数量, 输出数量) 或 (样本数量,)) – 分类器返回的估计目标。

  • sample_weight (类数组,形状 (n_samples,), 默认值=None) – 样本权重。

  • labels (类数组形状 (n_classes,), 默认值=None) – 一个类或列索引的列表,用于选择某些类(或强制包含数据中缺失的类)。

  • 按样本计算 (布尔值, 默认=False) – 在多标签情况下,这会针对每个样本计算混淆矩阵。

Returns

multi_confusion – 一个对应于输入中每个输出的2x2混淆矩阵。 当计算基于类别的multi_confusion(默认)时, n_outputs = n_labels;当计算基于样本的multi_confusion (samplewise=True)时,n_outputs = n_samples。如果 labels 被定义, 结果将按照 labels 中指定的顺序返回, 否则结果将按默认的排序顺序返回。

Return type

形状为 (n_outputs, 2, 2) 的 ndarray

另请参阅

confusion_matrix

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

备注

multilabel_confusion_matrix计算逐类或逐样本的多标签混淆矩阵,在多类任务中,标签以一对其余的方式进行二值化;而confusion_matrix()计算每两个类之间的一个混淆矩阵。

示例

多类情况:

>>> import mars.tensor as mt
>>> from mars.learn.metrics import multilabel_confusion_matrix
>>> 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]]])

多标签指示器案例尚未实现。