Python: puntuación del coeficiente de determinación-R2

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 = 0

Case 3 Model gives ambiguous results

R2 = 1- 600/200 = -2

We 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)
print('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)
print('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.0

Code 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)
print('r2 score for a worse model is', r2)

Output:

r2 score for a worse model is -2.0

Conclusion:

  • 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.

Publicación traducida automáticamente

Artículo escrito por ektamaini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *