Propomos um método inovador para codificar características categóricas, especificamente adaptado para aplicações de previsão. Em essência, essa abordagem codifica características categóricas modelando a tendência das quantidades associadas a cada categoria. Em nossos experimentos, essa abordagem demonstra benefícios substanciais de desempenho — tanto em termos de precisão de previsão quanto de viés —, pois permite que modelos de conjunto baseados em árvores modelem e extrapolem tendências com maior eficácia.

Leia nosso artigo sobre

class="lazyload

.

Introdução

A motivação para este trabalho surgiu de vários projetos de previsão para clientes na Artefact nossos modelos de boosting apresentaram um alto viés no momento da previsão. Por meio de uma fase de diagnóstico, identificamos que uma das principais fontes de viés nos modelos de aprendizado em conjunto decorria das dificuldades que estes enfrentavam para modelar com precisão as tendências e os níveis flutuantes.

A seguir, demonstraremospor queecomoutilizamos uma nova abordagem para codificar características categóricas. Com base em nossos experimentos envolvendo um projeto de previsão de vendas no varejo para um cliente e vários conjuntos de dados públicos, comprovamos que essa técnica pode mitigar eficazmente o viés e aumentar a precisão.

Impulsionamento e tendências: por que é tão complexo?

Os algoritmos de reforço têm dificuldade em extrapolar

Os algoritmos de reforço têm dificuldade em modelar e extrapolar tendências, uma vez que não conseguem prever novos valores que não constam no conjunto de treinamento ou que estão ausentes nas folhas. Os modelosde “árvore linear”tentam amenizar esse problema; no entanto, nossos testes não produziram resultados conclusivos com esse método.

As codificações clássicas tendem a gerar previsões estáticas

Os métodos de codificação mais comuns utilizados no boosting promovem relações estáticas entre variáveis independentes e dependentes, o que, por sua vez, contribui para um aumento do viés na presença de tendências. O diagrama abaixo ilustra esse fenômeno:

As codificações clássicas tendem a gerar previsões estáticas

Representação visual simplificada que destaca a natureza estática da codificação de características categóricas empregada em algoritmos de boosting

Reconhecemos que a representação acima é uma simplificação excessiva, já que as árvores de decisão são mais complexas e capazes de identificar relações não lineares com base em múltiplos fatores. De fato, a condição “a cor é preta” poderia estar associada a “o mês é junho”. Nesse caso, o fato de a cor ser preta não teria o mesmo impacto em todas as ocasiões. Mas vamos analisar o panorama geral:

  • Atribuir um único impacto ao fato de a cor ser preta em junho ainda não é o ideal, pois o impacto em junho de 2021 pode diferir do impacto em junho de 2022. Mesmo que incluíssemos o ano, em primeiro lugar, o limite de decisão se tornaria complexo demais para ser construído e identificado; além disso, o que aconteceria se os data de treinamento data em 2022 e fosse necessário fazer previsões para 2023?

  • A engenharia de características tem como objetivo ajudar o modelo a identificar relações com mais facilidade. Se pudermos ajudar o modelo a associar o impacto da cor preta em qualquer momento, sem a necessidade de identificar relações complexas, isso seria altamente vantajoso para o modelo. Portanto…

Nossa nova abordagem: codificação dinâmica de características categóricas

Base da codificação dinâmica (v1 sem nível de item)

Em resumo, nosso método para codificar características categóricas poderia ser descrito da seguinte forma:modelamos a componente de tendência de cada categoria e usamos esses valores de tendência para codificar essa característica categórica.

O diagrama abaixo ilustra a diferença entre uma codificação média estática e uma codificação baseada em tendências para duas categorias de cores: preto e dourado.

class="lazyload

Ilustração que demonstra o princípio da codificação dinâmica, que envolve a modelagem de tendências para cada categoria

Em nossos experimentos, optamos por utilizar o Prophet para extrair a componente de tendência. Naturalmente, é possível considerar também outros modelos de previsão de séries temporais.

Observe que a codificação média estática implica que as vendas de itens pretos se situam em um nível médio de 100 unidades/mês em qualquer momento. A codificação dinâmica, por outro lado, permite levar em conta a tendência de crescimento observada nos itens pretos e é capaz de extrapolá-la para o futuro. O mesmo se aplica aos itens dourados. Assim, nossa abordagem será especialmente útil em conjuntos de dados em que a variável-alvo a ser prevista apresente tendências acentuadas nas diversas categorias disponíveis.

Nosso foco principal é permitir que o modelo se adapte mais facilmente às relações em constante mudança entre as variáveis independentes e a variável dependente a ser prevista. Portanto, esse método de codificação dinâmica também poderia ser aplicado a características numéricas. Considere o exemplo do preço. Embora o preço seja numérico e o modelo possa criar regras diretamente com base nele, as preferências das pessoas por itens baratos ou caros ainda podem evoluir ao longo do tempo e seguir uma tendência específica de vendas. No contexto de uma crise econômica, por exemplo, produtos acessíveis podem seguir uma tendência de aumento nas vendas, enquanto os caros podem seguir uma tendência de queda. Considerando “acessível” como uma categoria e “caro” como outra, poderíamos propor uma codificação dinâmica para a característica de preço, assim como fizemos para as cores.

É importante observar que, no caso de características numéricas, tanto as variáveis básicas quanto as codificadas dinamicamente podem ser utilizadas no modelo, uma vez que fornecem diferentes tipos de informação.

Dando mais ênfase aos recursos dinâmicos (v2 com nível de item)

Embora esse novo método de codificação represente uma melhoria, muitas vezes a importância das características categóricas não é suficiente para influenciar significativamente as previsões ao analisar a importância das características. Para atribuir maior importância às características dinâmicas e, assim, promover uma melhor modelagem e extrapolação de tendências, adaptamos os valores de codificação individualmente a cada série temporal/item.

class="lazyload

Fórmula que representa os dois componentes da codificação dinâmica: nível de categoria e nível de item

Voltando ao nosso exemplo de cores, considerando dois itens pretos diferentes, isso permite que a codificação dinâmica da categoria “preto” para cada item seja diferente, com base em suas vendas anteriores individuais.

Tabela que ilustra o cálculo da codificação dinâmica por meio de um exemplo simples

Tabela que ilustra o cálculo da codificação dinâmica por meio de um exemplo simples

Experimentos e resultados

Conjunto de dados do cliente

Utilizamos nossa abordagem para prever as vendas de um de nossos clientes do setor de varejo. Validamos exaustivamente nosso método em uma ampla variedade de cenários para garantir sua eficácia. Aqui estão alguns data relativos ao contexto experimental:

  • Foram realizadas experiências em nove diferentes categorias de produtos, com um modelo de otimização (LightGBM) para cada categoria.
  • Para cada domínio, foi realizada uma validação cruzada k-fold com janela expansiva (k=5).

  • Horizonte de previsão: Dia+1 a Dia+180.

  • O desempenho foi avaliado com base em dois indicadores:

class="lazyload

De modo geral, o método revelou-se altamente eficiente,resultando em uma redução média absoluta do viés de 9,82% e um aumento médio absoluto na precisão da previsão de 6,29%nos 9 escopos de produtos e nas 5 dobras de validação cruzada.

A próxima seção comprova a relevância do nosso método, testando-o em um conjunto de dados público.

Conjunto de dados sobre vendas em lojas físicas

Neste estudo de caso simplificado, utilizamos o conjunto de dados“Store Sales — Time Series Forecasting”do Kaggle. Esse conjunto de dados apresenta uma tendência acentuada quando se analisa a série temporal das vendas médias, o que torna nosso método particularmente relevante. Além disso, o horizonte de previsão escolhido é de três meses, o que é suficientemente distante para aproveitar os recursos extras de extrapolação da codificação dinâmica. Para fins de demonstração, limitamos o conjunto de dados até 31 de março de 2016, pouco antes de ocorrer um terremoto, o que fez com que a curva de vendas se achatasse.

Antes de qualquer codificação, nosso conjunto de dados inicial é composto por aproximadamente 75% de características numéricas, incluindo defasagens, médias móveis, características de calendário e feriados. Os 25% restantes consistem em atributos categóricos, como família de produtos, número da loja, cidade e outros.

São treinados dois modelos distintos: um utiliza as características categóricas que foram codificadas dinamicamente por meio de nosso método personalizado, enquanto o outro utiliza o tratamento nativo de características categóricas do LightGBM.

Ao comparar o desempenho das duas abordagens, observamos uma melhoria significativa na abordagem de codificação dinâmica. A tabela a seguir apresenta um resumo dos resultados:

Comparação entre o RMSE, o FA e o %Bias do método de codificação LightGBM e da codificação dinâmica

Comparação entre o RMSE, o FA e o %Bias do método de codificação LightGBM e da codificação dinâmica

class="lazyload

Vendas semanais médias + previsões para os próximos 3 meses (codificação dinâmica vs. método de codificação LightGBM)

Conforme ilustrado no gráfico acima, o modelo que incorpora codificações dinâmicascapta com eficácia a tendência e a extrapola, enquanto o modelo alternativo tem dificuldade em fazer isso.

Utilização e limites

Nosso método revela-se especialmente valioso em cenários em que a série temporal apresentatendências pronunciadase ohorizonte de previsão é suficientemente distante para se beneficiar da extrapolação de tendências. Além disso, à medida que codificamos dinamicamente e incorporamos ao modelomais características categóricascom poderpreditivo significativo,o efeito alcançado por nossa abordagem nas previsões aumenta. No entanto, é importante reconhecer que outros métodos de codificação têm suas próprias vantagens e podem ser mais vantajosos em diferentes contextos. Além disso, existe a possibilidade de combinar ambos os tipos de codificação para obter resultados potencialmente melhores.

Conclusão

  • As técnicas convencionais de codificação para características categóricas não são ideais para previsão, especialmente quando as séries temporais apresentam tendências acentuadas e o horizonte de previsão é distante.
  • Nosso método é uma variação do empilhamento de modelos, pois utilizamos um modelo Prophet — que possui capacidades superiores para modelar e extrapolar tendências — para construir a codificação das características categóricas.

  • Nossas experiências demonstraram as vantagens de reduzir o viés e aumentar a precisão das previsões.

Temos planos de publicar um artigo nos próximos meses, que incluirá todos os detalhes sobre nossa abordagem e implementação. Fiquem ligados para mais novidades!

class="lazyload

Blog do Medium pela Artefact.

Este artigo foi publicado originalmente no Medium.com.
Siga-nos no nosso blog no Medium!