Descripción
N-BEATS es un sofisticado modelo basado en redes neuronales diseñado específicamente para la predicción de series temporales univariadas. Representa una contribución significativa de ServiceNow Research, con sus orígenes que se remontan a Element AI. El proyecto tiene como objetivo proporcionar una implementación robusta del algoritmo N-BEATS, permitiendo a investigadores y profesionales reproducir los resultados experimentales presentados en el artículo asociado.
El repositorio está estructurado para facilitar el acceso y uso. La implementación principal en PyTorch del modelo N-BEATS se encuentra en el archivo `models/nbeats.py`. Para el manejo de datos, los cargadores de conjuntos de datos para varios conjuntos de datos utilizados en el artículo se encuentran en el directorio `datasets/*.py`. El directorio `experiments/*` alberga las configuraciones experimentales necesarias para replicar los resultados del artículo, cada uno conteniendo un script `main.py` para la lógica de entrenamiento y predicción, junto con archivos de configuración para variantes de modelos genéricas e interpretables.
Los resultados y las métricas de rendimiento se documentan en el directorio `notebooks`, con un cuaderno dedicado para cada experimento. Estos cuadernos muestran las puntuaciones finales y ofrecen información sobre la efectividad de diferentes tamaños de ensamblaje, señalando que los ensamblajes más pequeños a menudo producen resultados comparables a los más grandes. Esta implementación se describe como una versión 'más ligera' del N-BEATS original, ofreciendo un rendimiento que generalmente se mantiene al mismo nivel de vanguardia, con variaciones ocasionales en los resultados.
El proyecto enfatiza la reproducibilidad a través de Docker, haciéndolo accesible para usuarios con o sin GPUs NVIDIA. El `Makefile` proporciona comandos para inicializar la imagen de Docker, descargar conjuntos de datos, ejecutar pruebas, construir experimentos y realizar predicciones tanto en CPU como en GPU. Se proporcionan instrucciones detalladas para configurar el entorno, construir la imagen de Docker, descargar conjuntos de datos y ejecutar experimentos con parámetros personalizables como repeticiones y períodos de retroceso. La salida de los experimentos, incluidos registros, pérdidas, instantáneas y predicciones finales, se almacena en el directorio `storage/experiments`.
N-BEATS es particularmente valioso para científicos de datos, ingenieros de aprendizaje automático e investigadores involucrados en el análisis de series temporales, la predicción y el modelado predictivo. Su naturaleza interpretable y su rendimiento de vanguardia lo convierten en una herramienta poderosa para comprender y predecir tendencias futuras en datos univariados en diversos dominios.
Aspectos destacados de N-BEATS
Modelo basado en redes neuronales para predicción de series temporales univariadas
Implementación del algoritmo N-BEATS
Resultados experimentales reproducibles
Implementación en PyTorch disponible
Cargadores de conjuntos de datos para varios conjuntos de datos
Archivos de configuración para modelos genéricos e interpretables
Soporte de Docker para configuración del entorno
Soporte de ejecución en CPU y GPU
Instrucciones detalladas para la reproducción
Almacenamiento para registros de experimentos, pérdidas y predicciones
Primeros pasos con N-BEATS
Configurar entorno: Asegúrese de que Docker esté instalado y ajuste el Makefile para su entorno.
Construir imagen Docker: Ejecute `make init` para construir la imagen Docker.
Descargar conjuntos de datos: Ejecute `make dataset` para descargar los conjuntos de datos requeridos.
Construir un experimento: Use `make build config=<ruta_al_archivo_config.gin>` para generar configuraciones de experimentos.
Ejecutar experimentos: Utilice `make run command=<ruta_al_comando>` para CPU o `make run command=<ruta_al_comando> gpu=<id_gpu>` para GPU.
Obtener estadísticas del experimento: Ejecute un cuaderno JupyterLab a través de `make notebook port=<puerto>` para analizar el rendimiento.
Casos de uso de N-BEATS
- Predicción de series temporales
- Análisis predictivo
- Predicción de demanda
- Predicción financiera
- Planificación de recursos







