mindspore.nn.ConfusionMatrix

class mindspore.nn.ConfusionMatrix(num_classes, normalize='no_norm', threshold=0.5)[源代码]

计算混淆矩阵(confusion matrix),通常用于评估分类模型的性能,包括二分类和多分类场景。

如果只想使用混淆矩阵,请使用该类。如果想计算”PPV”、”TPR”、”TNR”等,请使用’mindspore.nn.ConfusionMatrixMetric’类。

参数:

  • num_classes (int) - 数据集中的类别数量。

  • normalize (str) - 计算ConfsMatrix的参数支持四种归一化模式,默认值:’no_norm’。

    • “no_norm” (None) - 不使用标准化。

    • “target” (str) - 基于目标值的标准化。

    • “prediction” (str) - 基于预测值的标准化。

    • “all” (str) - 整个矩阵的标准化。

  • threshold (float) - 阈值,用于与输入Tensor进行比较。默认值:0.5。

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> from mindspore import nn, Tensor
>>>
>>> x = Tensor(np.array([1, 0, 1, 0]))
>>> y = Tensor(np.array([1, 0, 0, 1]))
>>> metric = nn.ConfusionMatrix(num_classes=2, normalize='no_norm', threshold=0.5)
>>> metric.clear()
>>> metric.update(x, y)
>>> output = metric.eval()
>>> print(output)
[[1. 1.]
 [1. 1.]]
clear()[源代码]

重置评估结果。

eval()[源代码]

计算混淆矩阵。

返回:

numpy.ndarray,计算的结果。

update(*inputs)[源代码]

使用y_pred和y更新内部评估结果。

参数:

  • *inputs (tuple) - 输入 y_predyy_predyTensor 、列表或数组。 y_pred 是预测值, y 是真实值, y_pred 的shape是 \((N, C, ...)\)\((N, ...)\)y 的shape是 \((N, ...)\)

异常:

  • ValueError - 输入参数的数量不等于2。

  • ValueError - 如果预测值和标签的维度不一致。