¿Cómo aplicar la red neuronal al pronóstico de series de tiempo?

83

Soy nuevo en el aprendizaje automático, y he estado tratando de descubrir cómo aplicar la red neuronal al pronóstico de series temporales. He encontrado recursos relacionados con mi consulta, pero parece que todavía estoy un poco perdido. Creo que una explicación básica sin demasiados detalles ayudaría.

Digamos que tengo algunos valores de precios para cada mes durante algunos años, y quiero predecir nuevos valores de precios. Podría obtener una lista de precios de los últimos meses y luego tratar de encontrar tendencias similares en el pasado usando K-Nearest-Neighbour. Podría utilizar la tasa de cambio o alguna otra propiedad de las tendencias pasadas para intentar predecir nuevos precios. Lo que estoy tratando de averiguar es cómo puedo aplicar la red neuronal a este mismo problema.

solartica
fuente
@solartic, solo curiosidad, ¿has implementado con éxito este método?
Saggy Manatee And Swan Folk

Respuestas:

102

Aquí hay una receta simple que puede ayudarlo a comenzar a escribir código y probar ideas ...

Supongamos que tiene datos mensuales registrados durante varios años, por lo que tiene 36 valores. Supongamos también que solo le importa predecir un mes (valor) por adelantado.

  1. Análisis exploratorio de datos: aplique algunos de los métodos tradicionales de análisis de series temporales para estimar la dependencia del retraso en los datos (por ejemplo, gráficos de autocorrelación y autocorrelación parcial, transformaciones, diferenciación). Digamos que encuentra que el valor de un mes dado está correlacionado con los datos de los últimos tres meses, pero no mucho más allá de eso.
  2. Particione sus datos en conjuntos de entrenamiento y validación: tome los primeros 24 puntos como sus valores de entrenamiento y los puntos restantes como el conjunto de validación.
  3. Cree el diseño de la red neuronal: tomará los valores de los últimos tres meses como entradas y desea predecir el valor del próximo mes. Por lo tanto, necesita una red neuronal con una capa de entrada que contenga tres nodos y una capa de salida que contenga un nodo. Probablemente debería tener una capa oculta con al menos un par de nodos. Desafortunadamente, elegir el número de capas ocultas, y su número respectivo de nodos, no es algo para lo que haya pautas claras. Empezaría con algo pequeño, como 3: 2: 1.
  4. x1,x2,x24
    pattern1:x1,x2,x3,x4
    pattern2:x2,x3,x4,x5
    pattern21:x21,x22,x23,x24
  5. Entrenar a la red neuronal en estos patrones
  6. Pruebe la red en el conjunto de validación (meses 25-36): Aquí pasará los tres valores que la red neuronal necesita para la capa de entrada y verá en qué se configura el nodo de salida. Entonces, para ver qué tan bien la red neuronal capacitada puede predecir el valor del mes 32, pasará los valores de los meses 29, 30 y 31

Esta receta es obviamente de alto nivel y puede rascarse la cabeza al principio al intentar mapear su contexto en diferentes bibliotecas / programas de software. Pero, con suerte, esto esboza el punto principal: debe crear patrones de entrenamiento que contengan razonablemente la estructura de correlación de la serie que está tratando de pronosticar. Y si realiza el pronóstico con una red neuronal o un modelo ARIMA, el trabajo exploratorio para determinar cuál es esa estructura es a menudo la parte más difícil y que requiere más tiempo.

En mi experiencia, las redes neuronales pueden proporcionar una excelente clasificación y funcionalidad de pronóstico, pero su configuración puede llevar mucho tiempo. En el ejemplo anterior, puede encontrar que 21 patrones de entrenamiento no son suficientes; diferentes transformaciones de datos de entrada conducen a pronósticos mejores / peores; variar el número de capas ocultas y los nodos de capas ocultas afecta en gran medida los pronósticos; etc.

Recomiendo consultar el sitio web neural_forecasting , que contiene toneladas de información sobre concursos de pronóstico de redes neuronales. La página de Motivaciones es especialmente útil.

Josh Hemann
fuente
12
+1 a esta respuesta, pero también agrega que incluso si los últimos 3 meses son los únicos que se correlacionan con la respuesta, también podría haber factores como el mismo mes del año en los últimos 5 años anteriores que son insumos útiles ( por ejemplo, si los Decembers tienden a parecerse a los Decembers anteriores, por lo general).
rossdavidh
1
Gran respuesta. Encontré esto muy útil. Una explicación de alto nivel es exactamente lo que quería. @rossdavidh: Buen punto +1.
solartic
2
Sería genial obtener algunos códigos de ejemplo aquí.
Léo Léopold Hertz 준영
1
Lo interesante sería un conjunto de datos multivariante de series de tiempo, junto con regresores ..
Tommaso Guerrini
1
¿Alguien sabe algo de papel con una aplicación a datos reales y una comparación con el método de serie temporal "tradicional"?
Marco Fumagalli