5 votos

¿Es posible calcular el RMSE de forma iterativa?

Estoy trabajando en la evaluación continua de un modelo de regresión sobre datos de flujo de los sensores. Creo que el Error Absoluto Medio (MAE) se puede averiguar de forma iterativa de forma similar a este enlace para promediar. $$ MAE_{t} = \left(\frac{N_t-1}{N_t}\right) MAE_{t-1} + \left(\frac{1}{N_t}\right) \left|y_t^{true}-y_t^{pred} \right| $$ Prefiero el error cuadrático medio (RMSE) al MAE, ya que penaliza más los valores de error más altos (como se menciona en ¿Error medio absoluto o error medio cuadrático? )

¿Existe un método para hallar el error cuadrático medio (RMSE) de forma similar?

He pensado en las siguientes formas:

  1. Mantenga una ventana grande de valores anteriores y calcule el RMSE continuamente cada vez que llegue un nuevo dato. (Esto es costoso tanto en tiempo como en complejidad espacial)

  2. Llevar la cuenta de los errores al cuadrado, es decir $$SqSum_{t} = SqSum_{t-1}+ \left(y_t^{true}-y_t^{pred} \right)^{2}$$ y encontrar $$ RMSE_t= \sqrt{\frac{Sum_{t}}{N_t}}$$ En este enfoque, me temo que la suma al cuadrado puede desbordar el límite de números para los más grandes $N_t$ .

¿Existe una forma mejor de encontrar el RMSE?

Agradecería que hubiera enfoques que dieran más peso a los errores de las predicciones más recientes.

4voto

RossC Puntos 3725

Una fórmula de actualización similar a la que proporcionaste para actualizar el MAE sería:

$$ RMSE_t = \sqrt{\frac{t-1}{t}RMSE_{t-1}^2 + \frac{(y_t^{true}-y_t^{pred})^2}{t}} $$

Aquí asumo que has tenido $t$ observaciones a través del tiempo $t$ (alias $N_t = t$ utilizando la notación de su pregunta). Esta fórmula nunca requiere que se calcule o almacene la suma de los residuos al cuadrado en todas las predicciones.

La derivación es bastante sencilla:

\begin{align*} RMSE_t &= \sqrt{\frac{\sum_{i=1}^t (y_i^{true}-y_i^{pred})^2}{t}} \\ &= \sqrt{\frac{\sum_{i=1}^{t-1} (y_i^{true}-y_i^{pred})^2}{t} + \frac{(y_t^{true}-y_t^{pred})^2}{t}} \\ &= \sqrt{\frac{t-1}{t}\frac{\sum_{i=1}^{t-1} (y_i^{true}-y_i^{pred})^2}{t-1} + \frac{(y_t^{true}-y_t^{pred})^2}{t}} \\ &= \sqrt{\frac{t-1}{t}\bigg(\sqrt{\frac{\sum_{i=1}^{t-1} (y_i^{true}-y_i^{pred})^2}{t-1}}\bigg)^2 + \frac{(y_t^{true}-y_t^{pred})^2}{t}} \\ &= \sqrt{\frac{t-1}{t}RMSE_{t-1}^2 + \frac{(y_t^{true}-y_t^{pred})^2}{t}} \end{align*}

Agradecería que hubiera enfoques que dieran más peso a los errores de las predicciones más recientes.

En este momento se puede pensar en la fórmula de actualización como una asignación de peso $\frac{t-1}{t}$ al error cuadrático medio de la primera $t-1$ predicciones y asignación de peso $\frac{1}{t}$ al error cuadrático medio de la predicción más reciente. Podría simplemente cambiar estas dos ponderaciones (asegurándose de que siempre sumen 1) para cambiar el grado de ponderación de las observaciones recientes. Un enfoque popular es alisamiento exponencial :

$$ wRMSE_t = \sqrt{(1-\alpha)wRMSE_{t-1}^2 + \alpha(y_t^{true}-y_t^{pred})^2} $$

Más grande $\alpha$ asignan más peso a las observaciones recientes.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X