Previsão de Demanda em Mobilidade Urbana com RNNs
SimpleRNN, LSTM e GRU comparados para prever a demanda horária de bicicletas compartilhadas — 17.379 registros do Capital Bikeshare, Washington D.C.
O problema
Uma empresa de mobilidade urbana opera bicicletas compartilhadas em uma grande cidade e precisa prever a demanda nas próximas horas para:
- Reposicionar bicicletas entre estações antes dos picos
- Planejar equipes de manutenção e redistribuição
- Antecipar horários de pico e melhorar disponibilidade
- Reduzir estações vazias ou superlotadas
- Apoiar decisões operacionais com dados climáticos e temporais
Dataset: Bike Sharing Dataset (UCI Machine Learning Repository) — 17.379 registros horários do Capital Bikeshare, Washington D.C. (2011–2012). Variáveis: hora, temperatura, umidade, velocidade do vento, estação, feriado e demanda total.
A solução
Três arquiteturas recorrentes foram construídas e comparadas para o mesmo objetivo — prever a quantidade total de bicicletas alugadas na próxima hora:
- SimpleRNN: recorrência básica, captura dependências de curto prazo mas sofre com gradientes que desaparecem em sequências longas.
- LSTM (Long Short-Term Memory): células com portas de entrada, saída e esquecimento — capta dependências de longo prazo de forma eficaz.
- GRU (Gated Recurrent Unit): versão simplificada do LSTM, menos parâmetros, frequentemente comparável em desempenho com menor custo computacional.
O pré-processamento incluiu normalização das variáveis, construção de janelas temporais com lookback de 24h e divisão temporal treino/validação/teste. Os três modelos foram avaliados pelas mesmas métricas (MAE, RMSE) e comparados no gráfico Real × Previsto.
Stack
O que foi alcançado
LSTM e GRU superaram o SimpleRNN na previsão da demanda horária, demonstrando a vantagem das portas de memória em séries temporais com dependências de médio prazo. O GRU apresentou desempenho comparável ao LSTM com menor tempo de treinamento — um trade-off relevante em produção.
Pipeline completo coberto: visualização inicial da série temporal, pré-processamento multivariado, construção das janelas, treinamento dos três modelos, comparação de métricas e discussão sobre limitações de cada arquitetura (ex.: SimpleRNN com vanishing gradient em sequências longas).