mindspore.train.ConfusionMatrixMetric

class mindspore.train.ConfusionMatrixMetric(skip_channel=True, metric_name='sensitivity', calculation_method=False, decrease='mean')[source]

Computes metrics related to confusion matrix. The calculation based on full-scale tensor, average values of batch, class channel and iteration are collected. All metrics supported by the interface are listed in comments of metric_name.

If you want to calculate metrics related to confusion matrix, such as ‘PPV’, ‘TPR’, ‘TNR’, use this class. If you only want to calculate confusion matrix, please use mindspore.train.ConfusionMatrix .

Parameters
  • skip_channel (bool) – Whether to skip the measurement calculation on the first channel of the predicted output. Default: True .

  • metric_name (str) – Names of supported metrics , users can also set the industry common aliases for them. Choose from: [“sensitivity”, “specificity”, “precision”, “negative predictive value”, “miss rate”, “fall out”, “false discovery rate”, “false omission rate”, “prevalence threshold”, “threat score”, “accuracy”, “balanced accuracy”, “f1 score”, “matthews correlation coefficient”, “fowlkes mallows index”, “informedness”, “markedness”]. Default: "sensitivity" .

  • calculation_method (bool) – If true, the measurement for each sample will be calculated first. If not, the confusion matrix of all samples will be accumulated first. As for classification task, ‘calculation_method’ should be False. Default: False .

  • decrease (str) – The reduction method on data batch. decrease takes effect only when calculation_method is True. Default: "mean" . Choose from: [“none”, “mean”, “sum”, “mean_batch”, “sum_batch”, “mean_channel”, “sum_channel”].

Supported Platforms:

Ascend GPU CPU

Examples

>>> import numpy as np
>>> from mindspore import Tensor
>>> from mindspore.train import ConfusionMatrixMetric
>>>
>>> metric = ConfusionMatrixMetric(skip_channel=True, metric_name="tpr",
...                                   calculation_method=False, decrease="mean")
>>> metric.clear()
>>> x = Tensor(np.array([[[0], [1]], [[1], [0]]]))
>>> y = Tensor(np.array([[[0], [1]], [[0], [1]]]))
>>> metric.update(x, y)
>>> avg_output = metric.eval()
>>> print(avg_output)
[0.5]
clear()[source]

Clears the internal evaluation result.

eval()[source]

Computes confusion matrix metric.

Returns

ndarray, the computed result.

update(*inputs)[source]

Update state with predictions and targets.

Parameters

inputs (tuple) –

Input y_pred and y. y_pred and y are a Tensor, list or numpy.ndarray.

  • y_pred (ndarray): The batch data shape is \((N, C, ...)\) or \((N, ...)\), representing onehot format or category index format respectively. As for classification tasks, y_pred should have the shape \((B, N)\) where N is larger than 1. As for segmentation tasks, the shape should be \((B, N, H, W)\) or \((B, N, H, W, D)\).

  • y (ndarray): It must be one-hot format. The batch data shape is \((N, C, ...)\).

Raises

ValueError – If the number of the inputs is not 2.