快捷方式

torcheval.metrics.functional.multiclass_auprc

torcheval.metrics.functional.multiclass_auprc(input: Tensor, target: Tensor, num_classes: int | None = None, *, average: str | None = 'macro') Tensor

计算 AUPRC,也称为平均精确率,它是多类分类中精确率-召回率曲线下的面积。其类版本为 torcheval.metrics.MulticlassAUPRC

精确率定义为 \(\frac{T_p}{T_p+F_p}\),它是模型做出正预测为真阳性的概率。召回率定义为 \(\frac{T_p}{T_p+F_n}\),它是真阳性被模型预测为正的概率。

精确率-召回率曲线在 x 轴上绘制召回率,在 y 轴上绘制精确率,两者都介于 0 和 1 之间。此函数返回该图形下的面积。如果面积接近 1,则模型支持一个阈值,该阈值可以正确识别出高百分比的真阳性,同时拒绝足够的假示例,以便大多数真实预测都是真阳性。

在 AUPRC 的多类版本中,目标张量是一维的,包含一个整数条目,表示输入张量中每个示例的类别。每个类别在一对多方式中独立考虑,该类别的示例被标记为条件为真,所有其他类别被视为条件为假。

如果没有平均值,N 类多类 AUPRC 的结果等效于具有 N 个任务的二元 AUPRC,如果

  1. 输入被转置,在二元分类中,示例与列相关联,而在多类分类中,示例与行相关联。

  2. target 从 [1,0,1] 的形式转换为 [[0,1,0], [1,0,1]] 的形式

参数:
  • input (Tensor) – 标签预测的二维张量,应为概率或 logits,形状为 (n_sample, n_class)。

  • target (Tensor) – 形状为 (n_samples,) 的真实标签的一维张量。

  • num_classes (int) – 类别数。

  • average (str, 可选) –

    • 'macro' [默认]

      分别计算每个类别的指标,并返回它们的未加权平均值。

    • None'none'

      分别计算每个类别的指标,并返回每个类别的指标。

示例:
>>> import torch
>>> from torcheval.metrics.functional import multiclass_auprc
>>> input = tensor([[0.5647, 0.2726],
                    [0.9143, 0.1895],
                    [0.7782, 0.3082]])
>>> target = tensor([0, 1, 0])
>>> multiclass_auprc(input, target, average=None)
tensor([0.5833, 0.3333])
>>> multiclass_auprc(input, target)
tensor(0.4583)
>>> input = torch.tensor([[0.1, 1],
                          [0.5, 1],
                          [0.7, 1],
                          [0.8, 0]])
>>> target = torch.tensor([1, 0, 0, 1])
>>> multiclass_auprc(input, target, 2, average=None)
tensor([0.5833, 0.4167])

与二元的关系 >>> from torcheval.metrics.functional import binary_auprc >>> input = torch.tensor([[0.1, 0.5, 0.7, 0.8], >>> [1, 1, 1, 0]]) >>> target = torch.tensor([[0, 1, 1, 0], >>> [1, 0, 0, 1]]) >>> binary_auprc(input, target, num_tasks=2) tensor([0.5833, 0.4167])

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源