Projeto: Aprendizado de máquinas e séries temporais para prever o consumo de energia elétrica nas próximas horas ou dias.
Este projeto tem como objetivo prever o consumo de energia elétrica nas horas e dias seguintes, utilizando modelos de apredizado de máquina aplicados a séries temporais.
O conjunto de dados utilizados foi o Hourly Energy Consumption (AEP) disponibilizado no Kaggle, contendo leituras horárias de consumo de energia elétrica de uma região dos Estados Unidos por megawatts (MW). Utilizando o arquivo AEP_hourly.csv.
O AEP (American Eletric Power) é uma companhia elétrica dos Estados Unidos, sendo a maior companhia do país atuando em 11 estados.
O foco principal é explorar e comparar diferentes abordagens de regressão, analisando a performace dos modelos e avaliando a qualidade das previsões para uso em cenários reais, como planejamento de demanda energética e otimização de recursos.
O projeto foi dividido em etapas:
- Coleta e Entendimento dos Dados
- Utilizando do dataset
AEP_hourly.csv(consumo energético horários). - Análise emploratória dos padrões temporais (tendências diárias, sazionais, etc.).
- Utilizando do dataset
- Pre Provcessamento dos Atributos
-
A partir da coluna
Datetime, foram criadas novas variáveis para capturar padrẽos temporais:yeas,month,day,hourdayofweek(dia da semana)is_weekend(indicados de fim de semana)
Essas estruturas permitem ao modelo aprender como o consumo varia ao longo do tempo.
-
- Treinamento dos Modelo
- Foram testados dois algoritmos de regressão:
- Regressão Linear
- Random Forest Regressor
- O Processo de validação foi feito utilizando K-fold Cross Validation
- Foram testados dois algoritmos de regressão:
- Avaliação das Métricas
- As ericas utilizadas foram:
- R² (Coeficiente de Determinação) - mede a qualidade do ajuste do modelo, mais perto de 1 melhor o ajuste.
- MAE (Erro Absoluto Médio) - média das diferenças absolutas entre valores reais e previstos.
- MSE (Erro Quadrático Médio) - penaliza grandes erros, tornando mais sensíveis aos outliers.
- RMSE (Raiz do Erro Quadrático Médio) - sensível a grandes erros como o MSE, mas esta na mesma unidade que os dados.
- As ericas utilizadas foram:
| Modelo | R² | MAE | MSE | RMSE |
|---|---|---|---|---|
| Regressão LInear | 0.2984 | 1754 | 4.71e6 | 2170 |
| Random Forest | 0.9950 | 111.1 | 33110 | 181.96 |
O modelo Random Forest apresentou desempenho significativamente superior, capturando de forma eficiente os padrões não lineares do consumo energético.
Os modelos gŕaficos gerados durante o experimento são automaticamente salvos em diretórios:
EnergyForecast/
|
|-- data/
| |-- raw/ # Dados brutos originais (sem alteração)
| | |-- AEP_hourly.csv
| |
| |-- processed/ # Dados intermediários, entre pré-processamento e features, e dados tratados e prontos para modelagem
| | |-- AEP_20XX.csv
| | |-- AEP_ready.csv
| | |-- AEP_hourly_update.csv
|
|-- notebooks/
| |-- 01_exploracao.ipynb
| |-- 02_preprocessamento.ipynb
| |-- 03_modelagem.ipynb
|
|-- reports/
| |-- figures/ # Gráficos e visualizações geradas
| |-- metrics/ # Métricas e resultados de avaliação
| |-- final/ # Resultados finais (gráficos + previsões + relatórios)
| |-- models/ # Modelos salbos (.joblib, .pkl)
| | |-- best_model.joblib
|
|-- src/ # Código-fonte principal do projeto
| |-- data.py
| |-- features.py
| |-- model.py
| |-- utils.py
|
|-- main.py # Script principal para rodar o pipeline completo
|-- requirements.txt
|-- README.md
|-- LICENSE
|-- .gitignore
Clone o repositório:
git clone https://github.com/Joao-gui/EnergyForecast.git
em seguida entre na pasta do do projeto e crie um ambiente virtual (conda/venv).
Após a criação do ambiente virtual para o projeto, instale os requerimentos necessários para a execução e exploração do projeto.
pip install -r requirements.txt
Após estas etapas o proejto estará pronto para executar ou caso queira explorar e fazer alterações.
Para executar:
python main.py
O script fará o carregamento dos dados, executará as etapas de pré-processamento, modelagem e salvará os resultados em reports/final/.
Este projeto está disponível sob a MIT License - veja o arquivo LICENSE para mais detalhes.
Este é um projeto de estudo e exploração, foi feito para por em prática alguns conhecimentos adquiridos no curso de Inteligência Artificial, pela UTFPR, livros e artigos sobre o tema. Projeto simples porém com bastante conhecimento agregado, desde no processo de exploração, pré-processamento e modelagem.
João Guilherme Pellacani - Engenheiro Elétrico com foco em Inteligência Artificial.
“A inteligência é o resultado de milhões de anos de evolução, que não podem ser computados em código binário” – Miguel Nicolelis