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.
- 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.
- 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.
- 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.
X1, x2... , x24
p un t t e r n 1 : x1, x2, x3, x4 4
pattern2:x2,x3,x4,x5
…
pattern21:x21,x22,x23,x24
- Entrenar a la red neuronal en estos patrones
- 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.