No setor varejista, o planejamento de estoque e a gestão de fluxo de caixa são pilares críticos para a saúde financeira de qualquer rede de lojas. Decisões baseadas puramente na intuição geram prejuízos severos: o excesso de mercadorias imobiliza capital de giro, enquanto a falta de produtos (stockout) resulta em perda direta de faturamento e insatisfação do cliente.
Neste projeto de portfólio de nível sênior, desenvolvemos um pipeline analítico completo para Previsão de Vendas e Séries Temporais, utilizando dados reais do varejo para estruturar um banco de dados relacional, realizar engenharia de atributos temporais e treinar um modelo preditivo de Machine Learning.
Stack Tecnológica e Arquitetura
- Linguagem: Python (Pandas, Scikit-Learn).
- Banco de Dados: SQLite (persistência e modelagem de dados relacionais locais).
- Linguagem de Consulta: SQL Avançado (agregações temporais e extração de métricas históricas).
- Machine Learning: Random Forest Regressor (
sklearn.ensemble). - Ambiente: Kaggle Notebooks.
Etapas de Desenvolvimento do Projeto
Ingestão e Estruturação no Banco Relacional (ETL)
A partir da base transacional de vendas diárias por loja, criamos um script automatizado de ETL que varre a fonte de dados, extrai as informações brutas e as consolida em uma tabela estruturada dentro de um banco de dados SQLite local (banco_vendas_varejo.db).
Análise Exploratória e Histórico Anual via SQL
Utilizando consultas SQL avançadas, realizamos a extração e o cruzamento dos dados temporais para mapear o comportamento da rede ao longo dos anos:
- Expansão da Rede: Acompanhamento do crescimento do número de lojas ativas de 47 em 2013 para 54 em 2017.
- Volume de Transações: Identificação dos picos de movimentação da rede (ultrapassando 31 milhões de transações anuais entre 2015 e 2016) e análise da média diária estável por unidade (faixa de 1.600 a 1.750 transações/dia).
Engenharia de Atributos Temporais (Feature Engineering)
Em séries temporais, o modelo precisa aprender com o comportamento passado para antecipar o futuro. Consolidamos o total de transações diárias de toda a rede e criamos variáveis explicativas fundamentais:
- (Defasagem de 1 dia): Captura o comportamento e o volume de transações imediatamente anterior.
- (Defasagem de 7 dias): Captura a sazonalidade semanal (o volume de vendas no mesmo dia da semana anterior).
- (Média Móvel de 7 dias): Suaviza flutuações diárias e destaca a tendência de curto prazo da operação.
Divisão Cronológica e Treinamento do Modelo (Machine Learning)
Diferente de problemas tradicionais de classificação, em séries temporais nunca realizamos divisões aleatórias, preservando rigorosamente a ordem cronológica do tempo para evitar vazamento de dados futuros.
- Conjunto de Treino: 80% iniciais da série temporal (passado).
- Conjunto de Teste: 20% finais da série temporal (futuro).
- Algoritmo: Utilizou-se o Random Forest Regressor para capturar relações não lineares complexas entre as defasagens temporais e o volume real de transações.
Resultados e Impacto de Negócio
- Alta Precisão Operacional: O modelo alcançou um Erro Absoluto Médio (MAE) de 5.116,83 transações por dia no conjunto de teste. Considerando o volume massivo de dezenas de milhares de transações diárias da rede, o erro percentual mostra-se altamente controlado e confiável.
- Previsibilidade Logística: A capacidade de antecipar a demanda diária permite que os gestores planejem com antecedência a reposição de estoques, otimizem a escala de colaboradores por loja e evitem rupturas operacionais que prejudicam a receita da empresa.
Gostou do projeto? Veja o código completo e estruturado no meu GitHub
Deixe um comentário
O que você achou deste artigo? Compartilhe sua opinião conosco!