Skip to content

criação de Network Deep Learning LSTM customizavel com Orientação a Objetos

License

Notifications You must be signed in to change notification settings

IMNascimento/LOSO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LOSO

Build Status License Version

Introdução

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

🧱 Arquitetura do Projeto

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:

📄 src/PROJECT.md


🚀 Funcionalidades

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 .csv e .png.

  • 🧱 Salvamento de Modelos Treinados
    Persistência dos modelos .h5 para 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 .json ou .env.

Pré-requisitos

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)

Instalação

Siga as etapas abaixo para configurar o projeto em sua máquina local:

  1. Clone o repositório:
    git clone https://github.com/IMNascimento/LOSO.git
  2. Navegue até o diretório do projeto:
    cd LOSO
  3. Crie e ative o ambiente virtual:
    python -m venv venv
    source venv/bin/activate  # Para Linux/MacOS
    .\venv\Scripts\activate  # Para Windows
  4. Instale as dependências:
    pip install -r requirements.txt

Uso

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.py

Depois 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.


💡 Dicas importantes

Antes de iniciar qualquer execução, siga estas etapas para garantir que tudo funcione corretamente:

  1. Configure suas credenciais
    Crie o arquivo .env com suas variáveis de ambiente.
    Para facilitar, foi incluído o arquivo .env.example. Basta duplicá-lo, renomear para .env e preencher com suas credenciais e configurações.

  2. 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.

  3. 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.


⚠️ Script auxiliar: no-process-grid.py

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.


Contribuindo

Contribuições são bem-vindas! Por favor, siga as diretrizes em CONTRIBUTING.md para fazer um pull request.

Licença

Distribuído sob a licença MIT. Veja LICENSE para mais informações.

Autores

Igor Nascimento - Desenvolvedor Principal - GitHub

Agradecimentos

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

About

criação de Network Deep Learning LSTM customizavel com Orientação a Objetos

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages