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)[源代码]

Compute a confusion matrix for each class or sample.

Compute class-wise (default) or sample-wise (samplewise=True) multilabel confusion matrix to evaluate the accuracy of a classification, and output confusion matrices for each class or sample.

In multilabel confusion matrix \(MCM\), the count of true negatives is \(MCM_{:,0,0}\), false negatives is \(MCM_{:,1,0}\), true positives is \(MCM_{:,1,1}\) and false positives is \(MCM_{:,0,1}\).

Multiclass data will be treated as if binarized under a one-vs-rest transformation. Returned confusion matrices will be in the order of sorted unique labels in the union of (y_true, y_pred).

Read more in the User Guide.

参数
  • y_true ({array-like, sparse matrix} of shape (n_samples, n_outputs) or (n_samples,)) – Ground truth (correct) target values.

  • y_pred ({array-like, sparse matrix} of shape (n_samples, n_outputs) or (n_samples,)) – Estimated targets as returned by a classifier.

  • sample_weight (array-like of shape (n_samples,), default=None) – Sample weights.

  • labels (array-like of shape (n_classes,), default=None) – A list of classes or column indices to select some (or to force inclusion of classes absent from the data).

  • samplewise (bool, default=False) – In the multilabel case, this calculates a confusion matrix per sample.

返回

multi_confusion – A 2x2 confusion matrix corresponding to each output in the input. When calculating class-wise multi_confusion (default), then n_outputs = n_labels; when calculating sample-wise multi_confusion (samplewise=True), n_outputs = n_samples. If labels is defined, the results will be returned in the order specified in labels, otherwise the results will be returned in sorted order by default.

返回类型

ndarray of shape (n_outputs, 2, 2)

参见

confusion_matrix

Compute confusion matrix to evaluate the accuracy of a classifier.

提示

The multilabel_confusion_matrix calculates class-wise or sample-wise multilabel confusion matrices, and in multiclass tasks, labels are binarized under a one-vs-rest way; while confusion_matrix() calculates one confusion matrix for confusion between every two classes.

实际案例

Multiclass case:

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

Multilabel-indicator case not implemented yet.