Este projeto faz parte da minha linha de pesquisa no Mestrado em Inteligência Computacional pela UFJF. Ele tem como objetivo desenvolver uma arquitetura reprodutível, modular e automatizada para a criação de modelos LSTM aplicados à previsão de preços no mercado financeiro (ações, criptomoedas, etc).
O projeto foi desenvolvido para permitir:
- 🔍 Testes automatizados de múltiplos hiperparâmetros
- 🔁 Treinamentos com 2 GPUs RTX em paralelo
- 🚀 Armazenamento estruturado de métricas, gráficos e resultados
- 📉 Reprodutibilidade total via arquivo de configuração .json
O projeto é estruturado de forma limpa e escalável, com base em orientação a objetos. Para uma descrição detalhada da arquitetura, acesse o arquivo:
O projeto oferece uma série de recursos para facilitar o desenvolvimento, a experimentação e a aplicação de modelos LSTM no mercado financeiro:
-
✅ Grid Search Automatizado
Execução paralela para encontrar os melhores hiperparâmetros com suporte a retomada. -
🧠 Treinamento de Modelos
Estrutura modular com salvamento automático de logs, checkpoints e métricas. -
📊 Avaliação de Modelos
Geração de métricas detalhadas e gráficos de performance (loss, erro, etc). -
🔁 Live Run (Execução Online)
Processamento em tempo real com dados de mercado para simulação de operação ao vivo. -
💾 Salvamento de Métricas e Gráficos
Todos os resultados são exportados automaticamente em.csve.png. -
🧱 Salvamento de Modelos Treinados
Persistência dos modelos.h5para reuso, inferência ou retreinamento. -
⚙️ Customização Total via Configuração
Controle de hiperparâmetros, fontes de dados, janelas e modo de execução com apenas um arquivo.jsonou.env.
Antes de começar, certifique-se de ter as seguintes ferramentas instaladas:
- [Linguagem/Framework] versão 3.10
- NumPy / Pandas
- Keras/tensorflow
- Matplotlib
- CUDA (para uso com GPUs RTX)
Siga as etapas abaixo para configurar o projeto em sua máquina local:
- Clone o repositório:
git clone https://github.com/IMNascimento/LOSO.git
- Navegue até o diretório do projeto:
cd LOSO - Crie e ative o ambiente virtual:
python -m venv venv source venv/bin/activate # Para Linux/MacOS .\venv\Scripts\activate # Para Windows
- Instale as dependências:
pip install -r requirements.txt
Após a instalação, você pode iniciar o treino a aplicação com o seguinte comando:
cd src
# Execute o treinamento
python scripts/train.py
# Ou execute com grid search
python scripts/train_grid.py
# Ou execute a execução online
python scripts/live_run.pyDepois de treinado você vai ter em result as metricas e plots e modelo salvo. Dentro dessa pasta script são todos os script de funcionalidades sendo eles o evaluate.py para avaliar modelo já treinado ou qualquer outro modelo, o live_run.py para poder fazer o processamento online para predição dos preços dos ativos, o train_grid.py para você procurar os melhores hiperparametros e ja treina os modelos.
Antes de iniciar qualquer execução, siga estas etapas para garantir que tudo funcione corretamente:
-
Configure suas credenciais
Crie o arquivo.envcom suas variáveis de ambiente.
Para facilitar, foi incluído o arquivo.env.example. Basta duplicá-lo, renomear para.enve preencher com suas credenciais e configurações. -
Prepare o banco de dados com dados históricos do Bitcoin
É necessário criar o banco de dados com base nas informações fornecidas.
Dentro do projeto, há uma pasta contendo scripts SQL com os preços históricos do Bitcoin até o final de 2024. -
Somente após isso, execute qualquer script
Isso garante que todo o ambiente e as dependências estejam corretamente configurados, evitando falhas de execução.
Durante a execução de uma busca por hiperparâmetros com Grid Search, pode acontecer de uma das GPUs travar por falta de memória (caso algum conjunto de hiperparâmetros exija mais recursos do que disponível).
Para lidar com isso, utilize o script no-process-grid.py, que:
- Analisa quais combinações de hiperparâmetros já foram testadas
- Detecta automaticamente quais ainda estão pendentes
- Reexecuta apenas os experimentos faltantes, aproveitando as duas GPUs disponíveis
Esse script garante que o processo de busca continue de forma eficiente e que nenhum experimento seja repetido ou perdido.
Contribuições são bem-vindas! Por favor, siga as diretrizes em CONTRIBUTING.md para fazer um pull request.
Distribuído sob a licença MIT. Veja LICENSE para mais informações.
Igor Nascimento - Desenvolvedor Principal - GitHub
Este projeto foi possível graças a:
📚 Keras e TensorFlow – por abstrações poderosas para deep learning
🧪 Pandas, NumPy, Matplotlib – por acelerarem análise e visualização
⚙️ Open source – por tornar acessível o que antes era impossível
🙌 Deus – por sabedoria, foco e capacidade de realização