Shortcuts

torcheval.metrics.functional.r2_score

torcheval.metrics.functional.r2_score(input: Tensor, target: Tensor, *, multioutput: str = 'uniform_average', num_regressors: int = 0) Tensor

计算R平方分数,这是因变量中可由自变量解释的方差比例。 其类版本是torcheval.metrics.R2Score

Parameters:
  • input – 预测值的张量,形状为 (n_sample, n_output)。

  • target – 形状为 (n_sample, n_output) 的真实值张量。

  • multioutput (可选) –

    • 'uniform_average' [默认]:

      返回所有输出的分数,使用统一权重进行平均。

    • 'raw_values':

      返回完整的分数集。

    • variance_weighted:

      返回所有输出的分数,使用每个单独输出的方差进行加权平均。

  • num_regressors (可选) – 使用的独立变量数量,应用于调整后的R平方分数。默认为零(标准R平方分数)。

Raises:

ValueError

  • 如果multioutput的值不存在于(raw_values, uniform_average, variance_weighted)中。 - 如果num_regressors的值不是[0, n_samples - 1]范围内的整数

示例:

>>> import torch
>>> from torcheval.metrics.functional import r2_score
>>> input = torch.tensor([0, 2, 1, 3])
>>> target = torch.tensor([0, 1, 2, 3])
>>> r2_score(input, target)
tensor(0.6)

>>> input = torch.tensor([[0, 2], [1, 6]])
>>> target = torch.tensor([[0, 1], [2, 5]])
>>> r2_score(input, target)
tensor(0.6250)

>>> input = torch.tensor([[0, 2], [1, 6]])
>>> target = torch.tensor([[0, 1], [2, 5]])
>>> r2_score(input, target, multioutput="raw_values")
tensor([0.5000, 0.7500])

>>> input = torch.tensor([[0, 2], [1, 6]])
>>> target = torch.tensor([[0, 1], [2, 5]])
>>> r2_score(input, target, multioutput="variance_weighted")
tensor(0.7000)

>>> input = torch.tensor([1.2, 2.5, 3.6, 4.5, 6])
>>> target = torch.tensor([1, 2, 3, 4, 5])
>>> r2_score(input, target, multioutput="raw_values", num_regressors=2)
tensor(0.6200)