Salta el contingut
 

Mètriques de regressió

Autor: Joan Puigcerver Ibáñez

Correu electrònic: j.puigcerveribanez@edu.gva.es

Llicència: CC BY-NC-SA 4.0

(Reconeixement - NoComercial - CompartirIgual) 🅭

Mètriques de regressió

Les mètriques són mesures que ens permeten avaluar la qualitat d'un model de regressió, que determinen com de bé s'ajusta el model a les dades i com de precises són les prediccions.

Dades d'exemple

Real (\(Y\)) Predicció (\(\hat{Y}\))
50 52
60 58
70 68
80 85
import pandas as pd

Y = pd.Series([50, 60, 70, 80])
pred_Y = pd.Series([52, 58, 68, 85])

MAE – Error absolut mitjà

L'error absolut mitjà (Mean Absolute Error o MAE) és la mitjana de les diferències absolutes entre les prediccions (\(\hat{y}\)) i els valors reals (\(y\)).

La fórmula per calcular l'error absolut mitjà és:

\[
MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|
\]

Càlcul de l'error absolut mitjà

mae = np.abs(Y - pred_Y).mean()
print(f'MAE with pandas: {mae:.2f}')
from sklearn.metrics import mean_absolute_error

mae = mean_absolute_error(Y, pred_Y)
print(f'MAE with sklearn: {mae:.2f}')
MAE: 2.75

Quan més xicotet siga el MAE, millor serà el model. És fàcil d'interpretar ja que està expressat en les mateixes que la variable dependent.

MSE – Error quadràtic mitjà

L'error quadràtic mitjà (Mean Squared Error o MSE) és la mitjana de les diferències elevades al quadrat entre les prediccions (\(\hat{y}\)) i els valors reals (\(y\)).

La fórmula per calcular l'error quadràtic mitjà és:

\[
MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2
\]

El MSE és més sensible als errors grans que el MAE, ja que eleva al quadrat les diferències. Això fa que els errors més grans tinguin un pes més gran en la mesura.

Càlcul de l'error quadràtic mitjà

mse = ((Y - pred_Y) ** 2).mean()
print(f'MSE with pandas: {mse:.2f}')
from sklearn.metrics import mean_squared_error

mse = mean_squared_error(Y, pred_Y)
print(f'MSE with sklearn: {mse:.2f}')
MSE: 9.25

RMSE – Arrel de l'error quadràtic mitjà

L'arrel de l'error quadràtic mitjà (Root Mean Squared Error o RMSE) és la arrel quadrada del MSE.

\[
RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2}
\]

Aquesta mètrica és equivalent al MSE però més fàcil d'interpretar, ja que expressada en les mateixes unitats que la variable dependent.

Càlcul de l'arrel de l'error quadràtic mitjà

rmse = np.sqrt(((Y - pred_Y) ** 2).mean())
print(f'RMSE with pandas: {rmse:.2f}')
from sklearn.metrics import root_mean_squared_error

rmse = root_mean_squared_error(Y, pred_Y)
print(f'RMSE with sklearn: {rmse:.2f}')
RMSE: 3.04

R² – Coeficient de determinació

El coeficient de determinació (\(R^2\)) és una mesura que indica com de bé s'ajusta el model als valors reals.

El coeficient de determinació pot prendre valors entre 0 i 1, sent 1 el millor valor possible. Un valor de 0 indica que el model no s'ajusta als valors reals.

El coeficient de determinació es pot calcular com:

\[
R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2}
\]

On:

  • \(y_i\) són els valors reals.
  • \(\hat{y}_i\) són les prediccions del model.
  • \(\bar{y}\) és la mitjana dels valors reals.

Càlcul del coeficient de determinació \(R^2\)

r2 = 1 - ((Y - pred_Y) ** 2).sum() / ((Y - Y.mean()) ** 2).sum()
print(f'R^2 with pandas: {r2:.2f}')
from sklearn.metrics import r2_score

r2 = r2_score(Y, pred_Y)
print(f'R^2 with sklearn: {r2:.2f}')
R^2: 0.93