Descrição
N-BEATS é um modelo sofisticado baseado em rede neural, projetado especificamente para previsão de séries temporais univariadas. Representa uma contribuição significativa da ServiceNow Research, com origens que remontam à Element AI. O projeto visa fornecer uma implementação robusta do algoritmo N-BEATS, permitindo que pesquisadores e praticantes reproduzam os resultados experimentais apresentados no artigo associado.
O repositório é estruturado para facilitar o acesso e o uso. A implementação principal do modelo N-BEATS em PyTorch pode ser encontrada no arquivo `models/nbeats.py`. Para o manuseio de dados, os carregadores de dataset para vários datasets utilizados no artigo estão localizados no diretório `datasets/*.py`. O diretório `experiments/*` abriga as configurações experimentais necessárias para replicar os resultados do artigo, cada um contendo um script `main.py` para a lógica de treinamento e previsão, juntamente com arquivos de configuração para variantes de modelo genéricas e interpretáveis.
Resultados e métricas de desempenho são documentados no diretório `notebooks`, com um notebook dedicado para cada experimento. Esses notebooks exibem pontuações finais e insights sobre a eficácia de diferentes tamanhos de ensemble, observando que ensembles menores frequentemente produzem resultados comparáveis aos maiores. Esta implementação é descrita como uma versão 'mais leve' do N-BEATS original, oferecendo desempenho que geralmente está no mesmo nível de ponta, com variações ocasionais nos resultados.
O projeto enfatiza a reprodutibilidade através do Docker, tornando-o acessível para usuários com ou sem GPUs NVIDIA. O `Makefile` fornece comandos para inicializar a imagem Docker, baixar datasets, executar testes, construir experimentos e executar previsões tanto em CPU quanto em GPU. Instruções detalhadas são fornecidas para configurar o ambiente, construir a imagem Docker, baixar datasets e executar experimentos com parâmetros personalizáveis, como repetições e períodos de lookback. A saída dos experimentos, incluindo logs, perdas, snapshots e previsões finais, é armazenada no diretório `storage/experiments`.
N-BEATS é particularmente valioso para cientistas de dados, engenheiros de machine learning e pesquisadores envolvidos em análise de séries temporais, previsão e modelagem preditiva. Sua natureza interpretável e desempenho de ponta o tornam uma ferramenta poderosa para entender e prever tendências futuras em dados univariados em vários domínios.
Destaques de N-BEATS
Modelo baseado em rede neural para previsão de séries temporais univariadas
Implementação do algoritmo N-BEATS
Resultados experimentais reproduzíveis
Implementação em PyTorch disponível
Carregadores de dataset para vários datasets
Arquivos de configuração para modelos genéricos e interpretáveis
Suporte Docker para configuração de ambiente
Suporte para execução em CPU e GPU
Instruções detalhadas para reprodução
Armazenamento para logs de experimentos, perdas e previsões
Primeiros passos com N-BEATS
Configurar ambiente: Certifique-se de que o Docker está instalado e ajuste o Makefile para o seu ambiente.
Construir imagem Docker: Execute `make init` para construir a imagem Docker.
Baixar datasets: Execute `make dataset` para baixar os datasets necessários.
Construir um experimento: Use `make build config=<caminho_para_config.gin>` para gerar configurações de experimento.
Executar experimentos: Utilize `make run command=<caminho_para_comando>` para CPU ou `make run command=<caminho_para_comando> gpu=<id_gpu>` para GPU.
Obter estatísticas do experimento: Execute um notebook JupyterLab via `make notebook port=<porta>` para analisar o desempenho.
Casos de uso de N-BEATS
- Previsão de séries temporais
- Análise preditiva
- Previsão de demanda
- Previsão financeira
- Planejamento de recursos







