El coeficiente de determinación, también denominado puntuación R 2 , se utiliza para evaluar el rendimiento de un modelo de regresión lineal. Es la cantidad de variación en el atributo dependiente de salida que es predecible a partir de la(s) variable(s) independiente(s) de entrada. Se utiliza para comprobar qué tan bien observados son reproducidos por el modelo, dependiendo de la proporción de desviación total de los resultados descritos por el modelo.
Fórmula matemática:
R2= 1- SSres / SStot
Donde,
SS res es la suma de los cuadrados de los errores residuales.
SS tot es la suma total de los errores.
Interpretación de la puntuación de R 2
: Suponga que R 2 = 0,68
Se puede hacer referencia a que el modelo puede explicar el 68 % de la variabilidad del atributo de salida dependiente, mientras que el 32 % restante de la variabilidad aún no se tiene en cuenta.
R 2 indica la proporción de puntos de datos que se encuentran dentro de la línea creada por la ecuación de regresión. Es deseable un valor más alto de R 2 ya que indica mejores resultados.
Ejemplos
Caso 1 El modelo da resultados precisos
R2 = 1- 0/200 = 1
El modelo del caso 2 siempre da los mismos resultados
R2 = 1- 200/200 = 0Case 3 Model gives ambiguous results
R2 = 1- 600/200 = -2We can import r2_score from sklearn.metrics in Python to compute R2 score.
Python Implementation:
Code 1: Import r2_score from sklearn.metrics
from
sklearn.metrics
import
r2_score
Code 2: Calculate R2 score for all the above cases.
### Assume y is the actual value and f is the predicted values
y
=
[
10
,
20
,
30
]
f
=
[
10
,
20
,
30
]
r2
=
r2_score(y, f)
(
'r2 score for perfect model is'
, r2)
Output:
r2 score for perfect model is 1.0
### Assume y is the actual value and f is the predicted values
y
=
[
10
,
20
,
30
]
f
=
[
20
,
20
,
20
]
r2
=
r2_score(y, f)
(
'r2 score for a model which predicts mean value always is'
, r2)
Output:
r2 score for a model which predicts mean value always is 0.0Code 3:
### Assume y is the actual value and f is the predicted values
y
=
[
10
,
20
,
30
]
f
=
[
30
,
10
,
20
]
r2
=
r2_score(y, f)
(
'r2 score for a worse model is'
, r2)
Output:
r2 score for a worse model is -2.0Conclusion:
- The best possible score is 1 which is obtained when the predicted values are the same as the actual values.
- R2 score of baseline model is 0.
- During the worse cases, R2 score can even be negative.