Shortcuts

Label Ranking Average Precision

Module Interface

class torchmetrics.LabelRankingAveragePrecision(**kwargs)[source]

Computes label ranking average precision score for multilabel data [1].

The score is the average over each ground truth label assigned to each sample of the ratio of true vs. total labels with lower score. Best score is 1.

Parameters

kwargs (Any) – Additional keyword arguments, see Advanced metric settings for more info.

Example

>>> from torchmetrics import LabelRankingAveragePrecision
>>> _ = torch.manual_seed(42)
>>> preds = torch.rand(10, 5)
>>> target = torch.randint(2, (10, 5))
>>> metric = LabelRankingAveragePrecision()
>>> metric(preds, target)
tensor(0.7744)

References

[1] Tsoumakas, G., Katakis, I., & Vlahavas, I. (2010). Mining multi-label data. In Data mining and knowledge discovery handbook (pp. 667-685). Springer US.

Initializes internal Module state, shared by both nn.Module and ScriptModule.

compute()[source]

Computes the label ranking average precision score.

Return type

Tensor

update(preds, target, sample_weight=None)[source]
Parameters
  • preds (Tensor) – tensor of shape [N,L] where N is the number of samples and L is the number of labels. Should either be probabilities of the positive class or corresponding logits

  • target (Tensor) – tensor of shape [N,L] where N is the number of samples and L is the number of labels. Should only contain binary labels.

  • sample_weight (Optional[Tensor]) – tensor of shape N where N is the number of samples. How much each sample should be weighted in the final score.

Return type

None

Functional Interface

torchmetrics.functional.label_ranking_average_precision(preds, target, sample_weight=None)[source]

Computes label ranking average precision score for multilabel data [1]. The score is the average over each ground truth label assigned to each sample of the ratio of true vs. total labels with lower score. Best score is 1.

Parameters
  • preds (Tensor) – tensor of shape [N,L] where N is the number of samples and L is the number of labels. Should either be probabilities of the positive class or corresponding logits

  • target (Tensor) – tensor of shape [N,L] where N is the number of samples and L is the number of labels. Should only contain binary labels.

  • sample_weight (Optional[Tensor]) – tensor of shape N where N is the number of samples. How much each sample should be weighted in the final score.

Example

>>> from torchmetrics.functional import label_ranking_average_precision
>>> _ = torch.manual_seed(42)
>>> preds = torch.rand(10, 5)
>>> target = torch.randint(2, (10, 5))
>>> label_ranking_average_precision(preds, target)
tensor(0.7744)

References

[1] Tsoumakas, G., Katakis, I., & Vlahavas, I. (2010). Mining multi-label data. In Data mining and knowledge discovery handbook (pp. 667-685). Springer US.

Return type

Tensor