Saiba mais sobre Previsão de vendas: Desafios e soluções com Machine Learning.
A melhoria na previsão de vendas é capaz de otimizar processos operacionais e gerar resultados financeiros significativos, algumas vezes na ordem de dezenas de milhões de reais.
Porém, existem desafios técnicos e de know-how que precisam ser superados na maioria das empresas, mas que podem ser endereçados em 6-9 meses com tecnologia e consultoria.
Na Carpa Analytics, solucionamos esses desafios usando uma metodologia de identificação de pontos críticos no processo de negócio e automatizamos a previsão de vendas com a criação de um pipeline de dados e modelos de Machine Learning.
![Desafios técnicos e de know-how](https://static.wixstatic.com/media/839763_cd995c3cd00343999d093511630a1e89~mv2.png/v1/fill/w_980,h_277,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/839763_cd995c3cd00343999d093511630a1e89~mv2.png)
Se você quer entender com mais detalhes como ajudamos nossos clientes a superar esses desafios e encontrar alguns casos de sucesso, escrevemos esse artigo para você.
O artigo está dividido em seis seções:
O problema e a oportunidade de negócio;
A solução e expectativa de benefícios;
Os desafios técnicos;
Como uma plataforma tecnológica (no nosso caso a DataRobot) pode ajudar nesses desafios;
Como iniciar a jornada de melhoria da previsão de vendas na sua empresa;
Alguns casos de sucesso publicados por clientes.
O problema e a oportunidade de negócio
Se o planejamento das vendas e da operação é a coluna vertebral de indústrias e varejistas, entre outros, a previsão de vendas é o coração ou o cérebro.
Quando feita com qualidade, suporta a otimização da gestão de estoques de matérias-primas, da programação de produção, do dimensionamento das necessidades de recursos humanos, e também de alguns processos de abastecimento da cadeia de vendas.
Quando melhorada a previsão de vendas, espera-se atingir redução da ruptura e dos excessos de estoque, além da redução de alguns custos operacionais, como custos com armazéns, seguros, transportes emergenciais e de pessoas.
Em outras palavras, uma melhoria na previsão de vendas é capaz de gerar resultados financeiros significativos, algumas vezes na ordem de dezenas de milhões de reais.
![Melhoria na previsão de vendas](https://static.wixstatic.com/media/839763_67dc1a5a0d2a4fde8709dae90c0fadd7~mv2.png/v1/fill/w_980,h_277,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/839763_67dc1a5a0d2a4fde8709dae90c0fadd7~mv2.png)
Por que então todas as empresas nesses setores não melhoram suas previsões, gerando resultados como nos casos de sucesso?
Normalmente o processo de previsão envolve múltiplos produtos, muitas vezes na casa de milhares ou dezenas de milhares de itens. A geração das previsões nesses casos é uma tarefa bastante desafiadora.
Por exemplo, inspeções visuais e numéricas detalhadas, no nível Sku, para obter insights sobre o comportamento das séries históricas e conseguir fazer previsões individualizadas, demandaria um time gigantesco de pessoas.
Na realidade das empresas, esse tipo de análise individual é impraticável e a maioria segue sem processos inteligentes automatizados, gerando previsões a partir de métodos muito simples e genéricos, normalmente com baixa capacidade preditiva.
Como consequência, acontecem erros de estimativas que se transformam em ineficiências operacionais, sobrecarregando as atividades de gestão e demandando reações emergenciais para mitigar a perda de venda por ruptura de estoques ou ações comerciais para equilibrar estoques em excesso. Em ambos os casos, os custos são significativos.
A solução e expectativa de benefícios
A solução para esse problema passa por implementar métodos de explorações e previsões individualizadas, inteligentes e automatizadas. Porém, o desenvolvimento e implantação desses métodos demandam expertise e tecnologias específicas.
A aquisição de uma nova plataforma tecnológica e apoio consultivo para adaptar a tecnologia à realidade de cada negócio são normalmente necessários.
Com as tecnologias que utilizamos e apoio consultivo, é possível construir um pipeline completo e semi-automatizado para a previsão de milhares de séries temporais entre 6 e 9 meses, incluindo pilotos para testar os resultados e ajustes finos.
![Pipeline completo e semi-automatizado](https://static.wixstatic.com/media/839763_eff4e4f37cd741c8a10727cb59aec7d3~mv2.png/v1/fill/w_980,h_277,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/839763_eff4e4f37cd741c8a10727cb59aec7d3~mv2.png)
Os principais benefícios que verificamos são:
![Melhoria da acurácia e agilidade](https://static.wixstatic.com/media/839763_27ca9ac8e50340a2b518d56a63d4bb15~mv2.png/v1/fill/w_980,h_277,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/839763_27ca9ac8e50340a2b518d56a63d4bb15~mv2.png)
Os desafios técnicos
Porém, como mencionamos, essa implantação não é elementar. Alguns dos desafios no desenvolvimento dessa automação são:
Desafio 1. Preparar os dados, considerando toda a variabilidade de comportamentos e as diferentes fontes de dados;
Desafio 2. Analisar a qualidade dos dados e o comportamento das diferentes séries;
Desafio 3. Preparar variáveis com poder preditivo;
Desafio 4. Definir e implementar uma estratégia de avaliação de cada modelo, garantindo boas práticas e a seleção correta da melhor opção;
Desafio 5. Desenvolver e testar abordagens de modelagem diferentes para cada série (ou conjunto de séries), de acordo com as melhores práticas e necessidades técnicas de cada abordagem, garantindo que estamos extraindo o potencial máximo dos dados;
Desafio 6. Avaliar os resultados, tanto do ponto de vista individual quando do todo;
Desafio 7. Implantar e disponibilizar um serviço para fazer previsões que se encaixe dentro das rodadas de planejamento operacional;
Desafio 8. Gerenciar e controlar os custos de tamanho recurso computacional para tantos testes e modelos em produção, garantindo que os custos não cresçam de maneira imprevisível.
Como uma plataforma tecnológica como a DataRobot pode ajudar nesses desafios
Caso queira entender com mais detalhes técnicos onde nós, da Carpa Analytics, vemos valor e nos beneficiamos nesse tipo de projeto com a plataforma DataRobot, abaixo descrevemos algumas funcionalidades/recursos da plataforma e respectivos benefícios.
Desafio 1
O que: Preparar os dados, considerando toda a variabilidade de comportamentos e as diferentes fontes de dados
Funcionalidade: A DataRobot disponibiliza notebooks que permitem o desenvolvimento de todo o pipeline, desde as tarefas de ingestão e pré-processamento, passando pela análise dos dados, configuração e execução da modelagem, realização do deployment e geração das previsões.
Diferentemente dos notebooks tradicionais, o objetivo é um desenvolvimento low-code, focando em um engine da DataRobot. Os notebooks podem ser organizados em codespaces, onde as etapas podem ser desenvolvidas em notebooks separados, mas uma execução sequencial pode ser configurada e agendada. Ferramentas de versionamento de código também estão disponíveis.
Valor/Benefício: Não há necessidade de configurar ambientes nem se preocupar com os custos de nuvem, pois os ambientes estão pré-configurados e são ativados dentro da plataforma.
A existência de notebooks dentro da plataforma (que também pode ser operada de maneira 100% 'no code'), disponibiliza a flexibilidade que a codificação normalmente permite. Porém, como podemos utilizar os recursos de automação da plataforma DataRobot (AutoML e MLOps), garantimos um desenvolvimento low-code, mais ágil e de menor risco.
![Desafio 1 - Notebook Dentro da Plataforma DataRobot](https://static.wixstatic.com/media/839763_683550131a954ea98836a9d51f542557~mv2.png/v1/fill/w_971,h_734,al_c,q_90,enc_auto/839763_683550131a954ea98836a9d51f542557~mv2.png)
Desafio 2
O que: Analisar a qualidade dos dados e o comportamento das diferentes séries
Funcionalidade: Quando os dados são carregados para um projeto de modelagem, o DataRobot realiza a checagem da qualidade dos dados, desde checagens mais tradicionais (verificação de dados faltantes e existência de “outliers”, por exemplo) até outras não tão tradicionais, mas extremamente importantes, como a potencial existência de “target leakage” e a ocorrência de “disguised missing values”.
Esses últimos ocorrem quando há conteúdo em uma célula, mas a célula deveria ser considerada vazia de fato. Por exemplo, em campos com dados faltantes eventualmente são preenchidos códigos não informativos, como: “xxxxx”, “9999”, “@@@”, etc.
Valor/Benefício: A checagem automatizada da qualidade dos dados reduz o tempo de desenvolvimento e impõe um alto padrão e boas práticas no cuidado com os dados.
![Desafio 2 - Checagem da qualidade dos dados pelo DataRobot](https://static.wixstatic.com/media/839763_a5b1b1439d2f4f1ab34276912bd30b9f~mv2.png/v1/fill/w_461,h_572,al_c,q_85,enc_auto/839763_a5b1b1439d2f4f1ab34276912bd30b9f~mv2.png)
Desafio 3
O que: Preparar variáveis com poder preditivo
Funcionalidade: O DataRobot deriva variáveis automaticamente, incluindo variáveis KIA e não KIA, garantindo boas práticas para evitar “target leakage”.
As novas variáveis são derivadas somando ou dividindo as variáveis originais e também tomando os valores das variáveis em pontos anteriores no tempo, as chamadas “lagged features”. Informando se a variável será conhecida ou não no ponto de previsão (ou seja, se ela é KIA ou não KIA), garante-se que as variáveis reproduzam no treinamento as condições nas previsões.
Valor/Benefício: Essa preparação normalmente é muito trabalhosa e passível de erros. Ao tê-la automatizada pela plataforma, podemos explorar de forma muito abrangente as possibilidades de uso das variáveis, sem investir tempo nesse tipo de desenvolvimento, ao mesmo tempo garante que as informações do alvo e variáveis não conhecidas no momento da previsão não sejam “vazadas” para o futuro no momento de treinamento e escolha do modelo.
![Desafio 3 - Derivação de variáveis pelo DataRobot](https://static.wixstatic.com/media/839763_31abdea541f7458c8a2515b89f9cdaab~mv2.png/v1/fill/w_980,h_189,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/839763_31abdea541f7458c8a2515b89f9cdaab~mv2.png)
Desafio 4
O que: Definir e implementar uma estratégia de avaliação de cada modelo, garantindo boas práticas e a seleção correta da melhor opção
Funcionalidade: Pelas características dos dados o DataRobot recomenda a estratégia de validação: backtests e métricas.
Para problemas de previsão de séries temporais, criam-se “backtests”, particionados em dados de treino e validação. Os detalhes da estratégia de validação, como a quantidade de backtests, período de treino e validação, etc, podem ser então ajustados.
Valor/Benefício: Novamente a plataforma garante boas práticas de modelagem, impondo que a validação seja feita treinando os modelos no passado e prevendo no futuro, garantindo que os tratamentos das variáveis respeitem o particionamento evitando "vazamento" de informação.
As condições reais no momento da previsão são, portanto, simuladas, evitando um sobreajuste no treinamento e a geração de resultados artificialmente otimistas.
![Desafio 4 - Criação de “backtests” para validação das previsões](https://static.wixstatic.com/media/839763_cecb123ef2094a27bd9463bcd7aa3de1~mv2.png/v1/fill/w_980,h_711,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/839763_cecb123ef2094a27bd9463bcd7aa3de1~mv2.png)
Desafio 5
O que: Desenvolver e testar abordagens de modelagem diferentes para cada série (ou conjunto de séries), de acordo com as melhores práticas e necessidades técnicas de cada abordagem, garantindo que estamos extraindo o potencial máximo dos dados
Funcionalidade: O DataRobot cria blueprints (ou pipelines, como são referidos em algumas bibliotecas open-source) dinamicamente, conforme os dados carregados.
Esses blueprints contêm as etapas necessárias e possíveis variações para tratar os dados, modelar e fazer previsão para validações. As etapas definem as transformações que serão feitas nos diferentes tipos de dados e os modelos utilizados na geração de estimativas.
A última etapa do blueprint é a aplicação do modelo para gerar previsão para avaliação da capacidade preditiva do modelo.
Outra funcionalidade muito interessante, e bem particular do DataRobot, é a modelagem por segmento de séries (segmentos que podem ser sugeridos pela plataforma ou informados pelo usuário).
As séries agrupadas são modeladas em conjunto e a competição de modelos é feita com base no resultado global deste grupo de séries. Isso reduz o número de modelos no treinamento e, portanto, o custo computacional, mas também auxilia na modelagem das séries com histórico curto.
Não existe fórmula mágica na segmentação das séries e diversas abordagens podem ser testadas. O próprio DataRobot oferece algumas opções de segmentação automática baseado em métodos de "clustering" de séries temporais.
Executando processos em paralelo, são testados dezenas de blueprints para cada segmento. Comparando os resultados dos testes, pode-se então definir a melhor estratégia de modelagem para cada caso.
Valor/Benefício: Essa ampla exploração nas possíveis estratégias de modelagem, que é possível pela forma eficiente com que o DataRobot fornece e gerencia os recursos computacionais, é responsável em grande parte pela melhoria na acurácia das previsões geradas pela plataforma.
E todo esse processo, que pode ser altamente custoso do ponto de vista computacional e muito complexo de ser desenvolvido, é feito de maneira low-code, sendo implementado rapidamente e otimizado automaticamente, sem risco de custos.
![Desafio 5 - “Blueprint” criado pelo DataRobot](https://static.wixstatic.com/media/839763_b7b7703324ce4e5ea9e804007535e452~mv2.png/v1/fill/w_980,h_195,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/839763_b7b7703324ce4e5ea9e804007535e452~mv2.png)
![Desafio 5 - Resultados da modelagem segmentada de múltiplas séries temporais, mostrando o modelo campeão para cada segmento](https://static.wixstatic.com/media/839763_b358cdeb27df4d8492de11fe00390307~mv2.png/v1/fill/w_980,h_483,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/839763_b358cdeb27df4d8492de11fe00390307~mv2.png)
Desafio 6
O que: Avaliar os resultados, tanto do ponto de vista individual quanto do todo
Funcionalidade: Algumas visualizações para a avaliação dos resultados são automaticamente geradas pelo DataRobot.
Na previsão de séries temporais, por exemplo, são produzidos “lift charts” e métricas globais, assim como métricas e gráficos comparativos entre previsto e realizado ao longo do tempo para séries individuais.
Valor/Benefício: Essas visualizações fornecem um alto ganho em agilidade por apresentarem análises completas e amplas dos resultados, dispensando esforço e tempo de desenvolvimento para se gerar manualmente esses visuais.
É possível rapidamente sair do nível macro para o micro, assim como identificar os principais ofensores da qualidade da previsão.
![Desafio 6 - Visão geral dos resultados](https://static.wixstatic.com/media/839763_9aac2c8d21274018b637a9ebce1322e4~mv2.png/v1/fill/w_980,h_383,al_c,q_90,usm_0.66_1.00_0.01,enc_auto/839763_9aac2c8d21274018b637a9ebce1322e4~mv2.png)
Desafio 7
O que: Implantar e disponibilizar um serviço para fazer previsões
Funcionalidade: A DataRobot fornece a criação e disponibilização (deploy) automatizada de serviços 'conteinerizados' com API REST para previsão e monitoramento.
Após a definição do modelo campeão, pode-se realizar dentro da plataforma o deployment do pipeline completo, com alguns clicks ou poucas linhas de código. Os modelos implementados no DataRobot são acompanhados para se identificar possíveis desvios nos dados (“data drift”) ou perda de acurácia.
Há opções para se configurar o retreino automático dos modelos quando a degradação desses é identificada e também é possível comparar a performance do modelo em relação a outros modelos.
O modelo pode eventualmente ser então substituído pelo modelo treinado novamente ou pelo modelo desafiador.
Valor/Benefício: O deployment e disponibilização de um modelo, mesmo sendo de um modelo segmentado (isto é, podem existir até 100 modelos intermitentes), é feito em poucos minutos e de maneira praticamente automática, permitindo a atualização de toda solução dentro dos ciclos de planejamento operacional das organizações, com baixo risco de erro de implementação. Isto é, tem-se um processo rápido e seguro.
![Desafio 7 - Painel inicial de monitoramento dos deployments no DataRobot](https://static.wixstatic.com/media/839763_28b9fc5d6a024fb1837865443dcab808~mv2.png/v1/fill/w_980,h_197,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/839763_28b9fc5d6a024fb1837865443dcab808~mv2.png)
Desafio 8
O que: Gerenciar e controlar os custos computacionais de testes e previsões em produção
Funcionalidade: Na aquisição da plataforma no modelo SaaS, o custo é fixo e engloba todos os recursos computacionais. Basta criar usuários e os cientistas de dados terão acesso a todas as funcionalidades.
Valor/Benefício: Com a DataRobot isso não é um ponto de atenção, o que estimula diferentes testes para se chegar nos melhores resultados.
Como iniciar a jornada de melhoria da previsão de vendas na sua empresa
Nós da Carpa Analytics temos um time especializado em modelagem para previsão de vendas, e temos seguramente o maior know-how do país na plataforma DataRobot. Caso tenha interesse em engajar nessa iniciativa, entre em contato conosco.
Alguns casos de sucesso publicados por clientes da DataRobot nesse tema
Autores do artigo: Frederico Arnoldi e Gabriel Maciel
コメント