NOTÍCIAS / TECNOLOGIA AI

25 de novembro de 2020
Na Artefact, somos tão franceses que decidimos aplicar o aprendizado de máquina aos croissants. Este primeiro artigo de dois explica como decidimos usar o Catboost para prever as vendas de “viennoiseries”. Os recursos mais importantes que impulsionaram as vendas foram as últimas vendas semanais, o fato de o produto estar ou não em promoção e seu preço. Apresentaremos aos senhores alguns recursos interessantes de engenharia, inclusive a canibalização e por que às vezes é necessário atualizar a variável de destino.

O que é isso?

Na Artefact, somos tão franceses que decidimos aplicar o aprendizado de máquina aos croissants. Este primeiro artigo de dois explica como decidimos usar o Catboost para prever as vendas de “viennoiseries”. Os recursos mais importantes que impulsionaram as vendas foram as últimas vendas semanais, o fato de o produto estar ou não em promoção e seu preço.

Apresentaremos aos senhores alguns recursos interessantes de engenharia, incluindo canibalização e por que às vezes é necessário atualizar a variável-alvo. Escolhemos a precisão da previsão e os biais como métricas de avaliação. Nosso segundo artigo explicará como colocamos esse modelo em produção e algumas práticas recomendadas de ML Ops.

Para quem?

  • Cientista Data, engenheiro ML ou amantes Data

Contexto

Desenvolvimento de modelos

Agora que temos um problema bem definido e alguns objetivos a serem alcançados, podemos finalmente começar a escrever um bom código python em nossos notebooks - que comece a diversão!

Solicitação de Data

Como em qualquer projeto científico data, tudo começa com o data. Por experiência própria, recomendamos enfaticamente que o senhor solicite o data o mais rápido possível. Não tenha vergonha de pedir muitos data e, para cada fonte de data, certifique-se de identificar um referente, alguém com quem o senhor possa entrar em contato facilmente e fazer suas perguntas sobre a coleção de data ou sobre como o data está estruturado.

Graças às diversas reuniões, conseguimos fazer uma lista dos data que poderíamos usar:

  • Transacional data incluindo o preço dos produtos.
  • Promoções: uma lista de todas as promoções futuras e seus preços associados.
  • Informações sobre o produto: diferentes características relacionadas aos produtos.

Análise exploratória Data (EDA) e detecção de outliers

Image for post

Da previsão de vendas à previsão ideal de vendas

Um desafio nos levou a atualizar nossa variável de meta. Às vezes, devido a uma influência inesperada ou a uma previsão ruim, o departamento esperava uma falta de produtos antes do final do dia. Então, dois fenômenos podem ocorrer: o cliente que não consegue encontrar seu produto não compra nada ou compra um produto semelhante. Com base no histórico data, inferimos algumas leis de distribuição (estatísticas básicas) que nos ajudaram a modelar esse impacto e atualizamos nossa variável-alvo para não prever as vendas históricas, mas as vendas ideais para um determinado produto.

Essa atualização da variável de destino é complicada porque é realmente difícil saber se a atualização fez sentido. O senhor realmente melhorou a qualidade do data ou a piorou? Uma maneira de quantificar nosso impacto foi pegar as vendas sem falta de estoque e criar uma falsa escassez, por exemplo, remover todas as vendas após as 17 ou 18 horas e, em seguida, tentar reconstruir as vendas. Esse método nos ajuda a voltar a um problema supervisionado clássico que podemos avaliar objetivamente.

Como resultado, conseguimos prever as vendas ideais e evitar que nosso algoritmo aprendesse padrões de escassez.

Nossos modelos

Depois de limpar adequadamente nosso data, podemos finalmente testar e experimentar alguns modelos.

Image for post

Um modelo versus muitos modelos

Em resumo, usamos um algoritmo: Catboost, para prever todas as nossas 10.000 séries temporais, para cada produto e cada loja. Mas e se um item tiver um padrão de vendas realmente particular ou uma loja específica? O algoritmo identificaria e aprenderia esse padrão?

Essas perguntas nos levam à seguinte questão: devemos agrupar nossos produtos e lojas e treinar um algoritmo por agrupamento? Mesmo que o uso de algoritmos de árvore de decisão deva enfrentar esse desafio, observamos limitações em alguns casos específicos.

Os algoritmos de reforço são algoritmos iterativos, baseados em aprendizes fracos que se concentrarão em seus maiores erros. Obviamente, isso é um pouco simplificado demais, mas me ajuda a apontar uma de suas limitações. Se o senhor não normalizar a variável-alvo, o algoritmo se concentrará “apenas” nos produtos com grandes erros, que provavelmente serão aqueles com as maiores vendas. Como resultado, o algoritmo pode se concentrar mais nos produtos ou lojas com maior volume de vendas.

Não encontramos a maneira perfeita de enfrentar esse desafio, mas observamos algumas melhorias ao agrupar nossos produtos/lojas por família ou frequência de vendas.

Como avaliar nosso modelo?

  1.  Validação cruzada

2. A escolha da métrica:

Image for post

Palavras finais, alguns conselhos para qualquer projeto data

Principais conclusões

O senhor tem interesse em digital e data marketing?

Assine o Data Digest, o boletim informativo do Artefact, para receber conselhos práticos, insights e opiniões em sua caixa de entrada todos os meses.

O senhor pode me inscrever!