sklearn.metrics.r2_score

sklearn.metrics.r2_score()

Función de puntuación de regresión \(R^2\) (coeficiente de determinación).

La mejor puntuación posible es 1.0 y puede ser negativa (porque el modelo puede ser arbitrariamente peor). Un modelo constante que siempre predice el valor esperado de y, sin tener en cuenta las características de entrada, obtendría una puntuación \(R^2\) de 0.0.

Lee más en el Manual de Usuario.

Parámetros
y_truearray-like de forma (n_samples,) o (n_samples, n_outputs)

Valores objetivo (correctos) de verdad fundamental.

y_predarray-like de forma (n_samples,) o (n_samples, n_outputs)

Valores objetivo estimados.

sample_weightarray-like de forma (n_samples,), default=None

Ponderaciones de la muestra.

multioutput{“raw_values”, “uniform_average”, “variance_weighted”}, array-like de forma (n_outputs,) o None, default=”uniform_average”

Define la agregación de múltiples puntuaciones de salida. El valor de array-like define los pesos utilizados para promediar las puntuaciones. Por defecto es «uniform_average».

“raw_values” :

Devuelve un conjunto completo de puntuaciones en el caso de la entrada de salida múltiple.

“uniform_average” :

Las puntuaciones de todas las salidas se promedian con una ponderación uniforme.

“variance_weighted” :

Las puntuaciones de todas las salidas se promedian, ponderadas por las varianzas de cada salida individual.

Distinto en la versión 0.19: El valor predeterminado de multioutput es “uniform_average”.

Devuelve
zflotante o ndarray de flotantes

La puntuación \(R^2\) o el ndarray de las puntuaciones si “multioutput” es “raw_values”.

Notas

Esta no es una función simétrica.

A diferencia de la mayoría de las otras puntuaciones, la puntuación \(R^2\) puede ser negativa (no es necesario que sea el cuadrado de una cantidad R).

Esta métrica no está bien definida para muestras individuales y devolverá un valor NaN si n_samples es menor que dos.

Referencias

1

Entrada de Wikipedia en el Coeficiente de determinación

Ejemplos

>>> from sklearn.metrics import r2_score
>>> y_true = [3, -0.5, 2, 7]
>>> y_pred = [2.5, 0.0, 2, 8]
>>> r2_score(y_true, y_pred)
0.948...
>>> y_true = [[0.5, 1], [-1, 1], [7, -6]]
>>> y_pred = [[0, 2], [-1, 2], [8, -5]]
>>> r2_score(y_true, y_pred,
...          multioutput='variance_weighted')
0.938...
>>> y_true = [1, 2, 3]
>>> y_pred = [1, 2, 3]
>>> r2_score(y_true, y_pred)
1.0
>>> y_true = [1, 2, 3]
>>> y_pred = [2, 2, 2]
>>> r2_score(y_true, y_pred)
0.0
>>> y_true = [1, 2, 3]
>>> y_pred = [3, 2, 1]
>>> r2_score(y_true, y_pred)
-3.0

Ejemplos utilizando sklearn.metrics.r2_score