Explorando Previsões em Séries Temporais de um E-commerce de Moda
Recentemente, mergulhei de cabeça em um projeto desafiador que envolveu a análise de séries temporais em minutos para um e-commerce de roupas (que manterei anônimo por questões de confidencialidade). Quero compartilhar com vocês essa jornada, os objetivos que alcancei, os desafios que enfrentei e os benefícios que obtive ao final.
Objetivos do Projeto
O principal objetivo era desenvolver um modelo preditivo capaz de analisar tendências baseadas no tempo em sessões de visitantes, eventos de “Add to Cart” (ATC) e conversões no site. Em outras palavras, eu queria prever como os usuários interagiam com a plataforma ao longo do tempo, minuto a minuto, e identificar padrões que pudessem ser utilizados para melhorar a experiência do usuário e, consequentemente, aumentar as vendas.
Os Desafios Encontrados
Trabalhar com séries temporais em minutos não é brincadeira. A granularidade dos dados em intervalos tão curtos aumenta significativamente o volume de informações e a complexidade das análises. Aqui estão alguns dos principais desafios que enfrentei:
- Dimensionalidade dos Dados: Com dados coletados a cada minuto, o número de observações e variáveis aumentou exponencialmente. Isso tornou o processamento e a modelagem computacionalmente intensivos.
- Criação de Features de Lag: Para capturar as dependências temporais, precisei criar várias features de lag (valores anteriores das variáveis). Decidir quantos lags usar e gerenciar o aumento de dimensionalidade foi um equilíbrio delicado.
- Escolha do Modelo Adequado: Testei vários modelos, desde o XGBoost até redes neurais LSTM. Encontrar o modelo que melhor capturasse os padrões nos dados sem overfitting foi um desafio constante.
- Tempo de Processamento: Modelos complexos com muitos hiperparâmetros para ajustar podem levar horas (ou dias!) para treinar. Otimizar o tempo de processamento sem sacrificar a qualidade do modelo exigiu várias iterações.
A Jornada
Comecei explorando os dados e fazendo a limpeza necessária: tratei valores nulos, outliers e criei novas features que poderiam ser relevantes, como a proporção de carrinhos adicionados por sessão e pedidos por sessão.
Em seguida, criei features de lag para capturar as dependências temporais. Decidi inicialmente usar 60 lags, o que representava uma hora de histórico para cada ponto de dados. Isso aumentou muito o número de variáveis, mas acreditava que esses lags seriam essenciais para captar padrões sazonais e tendências.
O primeiro modelo que utilizei foi o STL, não tive bons resultados com ele e sem seguida usei XGBoost, conhecido por sua performance em problemas tabulares e capacidade de lidar com grandes conjuntos de dados. Após várias tentativas e erros com a seleção de hiperparâmetros, consegui atingir um R² de 0,6520, o que considerei um bom resultado dado a complexidade do problema.
Empolgado com o progresso, decidi experimentar um modelo LSTM (Long Short-Term Memory), uma rede neural recorrente adequada para séries temporais. Infelizmente, os resultados não foram tão bons quanto esperava. Suspeito que o tamanho do conjunto de dados e a complexidade do modelo tenham contribuído para o desempenho abaixo do esperado.
Também tentei reduzir a dimensionalidade usando Análise de Componentes Principais (PCA), mas isso acabou piorando os resultados. Percebi que, ao aplicar o PCA, estava perdendo informações importantes sobre a estrutura temporal dos dados.
Benefícios Alcançados
Apesar dos desafios e dos caminhos que não deram certo, o projeto trouxe vários benefícios:
- Compreensão Profunda dos Dados: A análise me permitiu entender melhor o comportamento dos usuários no site, identificando horários de pico e como as ações dos usuários evoluíam ao longo do tempo.
- Modelo Preditivo Eficiente: O modelo final baseado no XGBoost pode ser utilizado pela empresa para prever tendências e ajustar estratégias de marketing em tempo real.
- Aprendizado sobre Técnicas Avançadas: A experiência reforçou meu conhecimento em modelagem de séries temporais, engenharia de features e ajuste de hiperparâmetros.
- Otimização de Recursos: Ao identificar que modelos mais complexos como LSTM não traziam benefícios significativos neste caso, pude focar em soluções mais simples e eficientes.
Reflexões Finais
Trabalhar com séries temporais em minutos foi, sem dúvida, um dos projetos mais desafiadores que já enfrentei. Cada etapa exigiu cuidado e paciência, desde o processamento dos dados até o ajuste fino dos modelos. Mas, no final, ver um modelo que consegue prever com precisão razoável o comportamento dos usuários é extremamente gratificante.
Este projeto também me ensinou a importância de iterar e não desistir diante dos obstáculos. Nem sempre a solução mais sofisticada é a melhor, e às vezes precisamos dar um passo atrás para encontrar o caminho certo.
Se você está pensando em se aventurar no mundo das séries temporais ou tem um projeto semelhante, minha dica é: mergulhe fundo nos dados, não tenha medo de testar diferentes abordagens e, principalmente, aprenda com cada tentativa.
Até a próxima aventura analítica!
- Algoritmos de Machine Learning – Random Forest - 4 de dezembro de 2024
- O Diferencial do Cientista de Dados Moderno - 2 de dezembro de 2024
- Algoritmos de Machine Learning – XGBoost (Extreme Gradient Boosting) - 29 de novembro de 2024