3 hechos sobre el pronóstico de series temporales que sorprenden a los profesionales experimentados en aprendizaje automático.

La predicción de series temporales es algo oscura en el campo de la ciencia de datos:

Es una de las técnicas de ciencia de datos más aplicadas en los negocios, utilizada ampliamente en finanzas, en la gestión de la cadena de suministro y en la planificación de producción e inventario, y tiene una base teórica bien establecida en estadística y teoría de sistemas dinámicos.

Sin embargo, conserva algo de un estado externo en comparación con los temas de Machine Learning más recientes y populares, como el reconocimiento de imágenes y el procesamiento del lenguaje natural, y recibe poco o ningún tratamiento en los cursos introductorios a la ciencia de datos y el Machine Learning.

La capacitación es en redes neuronales y otros métodos de Machine Learning, pero gravité hacia los métodos de series temporales después de que mi carrera me condujo al rol de especialista en pronósticos de demanda.

En las últimas semanas, como parte del esfuerzo de mi equipo para expandirme más allá de las series temporales tradicionales predicción de capacidades y en un enfoque basado en Machine Learning borader para nuestro negocio.

Me encontré teniendo varias conversaciones con ingenieros de Machine Learning experimentados, que eran muy buenos en Machine Learning en general, pero no tenían mucha experiencia con los métodos de series de tiempo.

Me di cuenta de esas discusiones que había varias cosas específicas para la previsión de series de tiempo que la comunidad de pronósticos da por sentado pero que son muy sorprendentes ng a otros practicantes de Machine Learning y científicos de datos, especialmente cuando se compara con la forma en que se abordan los problemas estándar de Machine Learning.

En el quid de esta desconexión, la previsión de series temporales puede considerarse un problema de aprendizaje supervisado y, por lo tanto, todo el arsenal de Métodos Machine Learning: regresión, redes neuronales, máquinas de vectores de soporte, bosques aleatorios, XGBoost, etc. – puede ser arrojado a eso.

Pero al mismo tiempo, los problemas de pronóstico de series de tiempo tienen varias singularidades e idiosincrasias que los diferencian de los enfoques típicos de los problemas de aprendizaje supervisado, que requieren que los ingenieros de Machine Learning repensen sus enfoques para construir y evaluar modelos.

Basado en mis discusiones recientes , aquí están las 3 mayores sorpresas que enfrentan los profesionales de la Machine Learning cuando enfrentan desafíos de pronóstico:

Necesita volver a entrenar su modelo cada vez que quiera generar una nueva predicción:

Para la mayoría de los modelos Machine Learning, entrene un modelo, pruebe esto, vuelva a entrenarlo si es necesario hasta que obtenga resultados satisfactorios, y luego evalúelo en un conjunto de datos de espera. Una vez que esté satisfecho con el rendimiento del modelo, luego impleméntelo en producción.

Una vez que esté en producción, obtendrá nuevos datos a medida que ingrese. Eventualmente después de unos meses, es posible que desee actualizar su modelo si ingresa una cantidad importante de nuevos datos de capacitación.

La capacitación con modelos es una actividad de una sola vez, o como máximo a intervalos periódicos para mantener el rendimiento del modelo para tomar en cuenta nueva información.

Para los modelos de series temporales, este no es el caso. En cambio, tenemos que volver a capacitar a nuestro modelo cada vez que queremos generar un nuevo pronóstico. Para entender por qué ocurre esto, consulte el siguiente ejemplo:

Utilizaremos los modelos ARIMA para pronosticar las ventas trimestrales de cerveza australianas (el conjunto de datos se toma del paquete Pronóstico de Hyndman en R).

Primero formaremos un modelo de datos de 1956 a 1970 y luego lo probaremos con datos de 1970 a 1973. Utilizando un modelo estacional de ARIMA (1,1,1) (0,1,1) podemos obtener un pronóstico razonablemente bueno ( MAPE = 1.94%) (Fig. 1).

A continuación, utilizaremos el mismo modelo para pronosticar las ventas hasta 1993. Puede ver en la figura 2 que el pronóstico ya no es tan bueno: el pronóstico continúa seguir el mismo patrón que tuvo en 1970 ~ 1973.

Pero el patrón de los actuales ha cambiado: la tendencia constante que podemos ver desde 1956 a 1974 comienza a disminuir después de 1974, y las variaciones estacionales comienzan a variar en amplitud como bien.

Si utiliza el mismo ARIMA (1,1,1) (0,1,1) para pronosticar las ventas de 1990 a 1993, obtendrá una precisión peor (MAPE = 44,92%).

En lugar de eso tendríamos que reacondicionarlo un segundo modelo que toma en cuenta los nuevos datos y los cambios en el patrón de las ventas.

Esta vez, entrenaremos un modelo ARIMA (1,1,1) (1,1,2) en los datos de 1956 a 1990 y lo usaremos para pronosticar los valores de 1990 ~ 1993, luego obtenemos un valor de MAPE más razonable más cercano al obtenido en nuestro primer experimento (MAPE = 5.22%).

Para obtener una comprensión intuitiva de por qué sucede esto, primero considere una tarea clásica de Machine Learning: Clasificar imágenes de gatos.

Las propiedades visuales de los gatos son estables con el tiempo (a menos que comencemos a buscar escalas de tiempo evolutivas), así que cuando entrenamos una red neuronal para reconocer imágenes de gatos, una suposición implícita es que las características que definen a los gatos seguirán siendo las mismas el futuro previsible.

No esperamos que los gatos se vean diferentes la próxima semana, o el próximo año, o incluso dentro de diez años. Con suficientes datos, el modelo que formamos esta semana también es suficiente para el futuro previsible.

En términos estadísticos, decimos que la distribución de las características de la imagen del gato es una distribución estacionaria, lo que significa que sus propiedades tales como su media y la desviación estándar sigue siendo la misma a lo largo del tiempo.

Ahora recuerde que una falla común en los proyectos Machine Learning ocurre cuando la distribución del conjunto de datos de desarrollo y la distribución del conjunto de datos de producción no son iguales, lo que hace que el modelo falle en la producción.

Bueno para las series temporales, casi siempre el conjunto de datos de desarrollo y el conjunto de datos de producción no provienen de la misma distribución, porque los datos de la serie temporal del mundo real (como las ventas de cerveza de Australia) son no estacionario, y las propiedades estadísticas de su distribución seguirán cambiando a medida que aparezcan nuevos datos reales.

La única forma de evitar esto es reciclar su modelo cada vez que obtenga datos nuevos. Tenga en cuenta que esto no es lo mismo que el aprendizaje continuo, donde un modelo ya entrenado se actualiza a medida que ingresan nuevos datos.

En realidad, está reentrenamiento de un nuevo modelo desde cero cada vez que desea generar un nuevo pronóstico (aunque sería un tema de investigación interesante para ver si el aprendizaje continuo se puede aplicar a la predicción de series de tiempo).

Desde un punto de vista práctico, esto significa que la implementación de algoritmos de previsión para la producción es muy diferente ya que se implementan otros modelos Machine Learning.

No se puede simplemente implementar un modelo estático y calificarlo, el concepto de servir modelo no tiene sentido para la predicción de series de tiempo.

En su lugar, debe asegurarse de que la capacitación y la selección del modelo se puedan realizar sobre la marcha durante la producción, y debe asegurarse de que todo su conjunto de capacitación pueda almacenarse y procesarse en producción.

Lo que me lleva a nuestro segundo punto de la publicación del blog:

A veces, tienes que terminar con divisiones de tren / prueba:

Volvamos al enfoque básico para encontrar un modelo Machine Learning: generalmente creas un modelo usando un conjunto de trenes y luego evaluarlo en un conjunto de prueba. Esto requiere que tenga suficientes datos para apartar un conjunto de prueba y aún tener datos para construir un modelo.

Pero los datos de series de tiempo suelen ser muy pequeños en comparación con los conjuntos de datos utilizados en el procesamiento de imágenes o PNL. Dos años de datos de ventas semanales para un producto en una ubicación determinada son solo 104 puntos de datos (apenas suficientes para capturar cualquier estacionalidad).

A Los datos del indicador económico trimestral, tomados a lo largo de 10 años, son solo 40 puntos de datos. Con conjuntos de datos tan pequeños como este, no podemos darnos el lujo de reservar el 20% o el 30% de los datos para fines de prueba.

Tampoco es muy útil la validación cruzada, ya que, según el algoritmo que desee utilizar, CV es, en el mejor de los casos, difícil de configurar para los modelos de series de tiempo y, en el peor de los casos, no es aplicable en absoluto (Piénselo: no tiene sentido trate de pronosticar valores para febrero usando datos de entrenamiento de enero y marzo, eso equivaldría a una fuga).

Por lo tanto, recurrimos a utilizar criterios de información como el AIC, el AICc o el BIC. Estas son métricas de selección de modelo, que esencialmente intentan aproximar el paso de prueba analíticamente. La idea es que no tenemos una forma empírica de determinar el error de generalización de un modelo, pero podemos estimar este error utilizando consideraciones teóricas de información.

En la práctica, entrenamos un conjunto predeterminado de modelos y seleccionamos el uno que tiene el AIC o BIC más bajo. Además de permitir el entrenamiento de modelos con datos limitados, usar dichos criterios para la selección de modelos es muy conveniente cuando queremos automatizar la generación de pronósticos.

Por ejemplo, en el comercio minorista no es inusual que tengamos que generar pronósticos para millones de series temporales individuales: un gran retransmisor transportará productos de 20K ~ 30K en varias ubicaciones cazadas, lo que resulta en millones de series de tiempos individuales (una para cada combinación prodcut / ubicación) .

En una situación como esta, cada conjunto de datos individual es pequeño, pero debe tratar millones de conjuntos de datos, por lo que es imposible que un analista o un ingeniero realice evaluaciones en un conjunto de pruebas para cada serie, y la selección automática del modelo se vuelve esencial.

Muchas herramientas de pronóstico utilizan este enfoque: el popular paquete de pronóstico de Rob Hyndman en R (1) utiliza el AIC para la selección del modelo en su auto.arima () y ets () funciones, y muchas aplicaciones de previsión de demanda comercial, tales como RDF de Oracle, utilizan el BIC para la selección del modelo. Ver Hastie y Tibshirani (2) para una introducción sobre el uso del AIC y el BIC para la selección del modelo.

La ​​incertidumbre del pronóstico es tan importante como, o incluso más, que el pronóstico en sí mismo:

Una cosa más que distingue el pronóstico de otras tareas de aprendizaje supervisado es que sus pronósticos casi siempre van a estar equivocados.

Alguien que trabaje con un problema de clasificación de imágenes o un problema de PNL puede razonablemente esperar que clasifique todos los nuevos ejemplos entrantes con precisión, dados los suficientes datos de capacitación.

Todo lo que tiene que hacer es asegurarse de que sus datos de entrenamiento y los datos del mundo real se muestreen desde la misma distribución.

Como mencioné en mi primer y segundo punto, este no suele ser el caso en las aplicaciones de previsión empresarial, y sus previsiones casi siempre van a ser incorrectas.

¿Cuáles son las posibilidades de que va a predecir exactamente cuántas camisetas Adidas rojas de talla M va a vender la próxima semana?

Por lo tanto, siempre necesita no solo un pronóstico de punto, sino también una medida de la incertidumbre de su pronóstico.

En las aplicaciones de previsión e inventario de demanda, la incertidumbre de su pronóstico es crucial para las aplicaciones que consumen el pronóstico.

La incertidumbre de su pronóstico (representada por intervalos de pronóstico o por cuantiles de pronóstico) es lo que usará para calcular su stock de seguridad, es decir, la cantidad adicional de inventario que desea transportar para asegurarse de no perder ningún cliente. [19659002]

Llevan esta idea un paso más allá en el modelado de series de tiempo financiero, donde en realidad tienen clases de modelos construidos explícitamente para modelar la incertidumbre de una serie temporal, a diferencia de las series de tiempo en sí, como los modelos ARCH y GARCH.

Maridakis y otros (3) habla de la incertidumbre del metro y la incertidumbre del coco. La incertidumbre del coco, una alusión a un coco que inesperadamente cae sobre la cabeza de alguien mientras están en la playa, es la falta de nitidez de “incógnitas desconocidas”, eventos que nunca podrían haber sido pronosticados sin importar cuánto lo intentáramos.

De manera más general, algunas series temporales muestran una incertidumbre de mal comportamiento que es impredecible. La distribución de errores de pronóstico no sigue ninguna distribución conocida. Tal información es útil para tomar decisiones críticas, pero no puede ser modelada y utilizada para la predicción.

Por otro lado, la incertidumbre del metro (una alusión a la incertidumbre de cuánto tiempo tomará pasar de A a B usando el metro) sigue una distribución conocida, como la distribución normal o la distribución de Poisson, y puede modelarse y usarse para consolidar predicciones dentro de un cierto rango, incluso si los valores exactos nunca pueden predecirse.

Aquellos acostumbrados a las precisiones muy altas alcanzables en otros dominios Machine Learning, y lo que es más importante, los tomadores de decisiones y los líderes empresariales atrapados en la exageración actual del Machine Learning, deben entender que muchas veces lo mejor que podemos lograr con un modelo de series temporales es la incertidumbre del metro.

La creencia persistente de que si pudiéramos encontrar el algoritmo correcto y los datos correctos, una red neuronal suficientemente profunda o un conjunto de datos desestructurados lo suficientemente rico, podremos lograr mejores pronósticos es peligrosamente engañoso.

A veces, lo mejor que podemos obtener es una incertidumbre manejable, y debemos construir nuestras líneas de datos y sistemas de apoyo a la decisión en consecuencia.

Referencias:

(1) https://cran.r-project.org/web /packages/forecast/forecast.pdf

(2) Hastie, Tibshirani, Friedman, Elementos de Aprendizaje Estadístico Capítulo 7 (páginas 228-229)

(3) Makridakis, S., Hogarth, RM & Gaba, A. (2009) Predicción e incertidumbre en el mundo económico y empresarial. International Journal of Forecasting


3 datos sobre pronósticos de series de tiempo que sorprenden a los practicantes del Machine Learning. fue publicado originalmente en Towards Data Science en Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.

Dejá un comentario