Propomos um novo método para codificar recursos categóricos especificamente adaptados para aplicativos de previsão. Em essência, essa abordagem codifica recursos categóricos modelando a tendência das quantidades associadas a cada categoria. Em nossos experimentos, essa abordagem mostra benefícios substanciais de desempenho, tanto em termos de precisão de previsão quanto de viés, pois permite que os modelos de conjunto baseados em árvore modelem e extrapolem melhor as tendências.
Introdução
A motivação para esse trabalho surgiu de vários projetos de previsão de clientes no site Artefact , nos quais nossos modelos de reforço apresentavam alta tendência 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 de conjunto decorria de seus desafios em modelar com precisão as tendências e os níveis flutuantes.
A seguir, demonstraremos por que e como usamos uma nova abordagem para codificar recursos categóricos. Com base em nossos experimentos envolvendo um projeto de previsão de varejo de um cliente e vários conjuntos de dados públicos, provamos que essa técnica pode efetivamente atenuar o viés e aumentar a precisão.
Boosting e tendências, por que é complexo?
Os algoritmos de reforço têm dificuldade para extrapolar
Os algoritmos de reforço têm dificuldade para modelar e extrapolar tendências, pois não podem prever novos valores não vistos no conjunto de treinamento/ausentes nas folhas. Os modelos de "Árvore Linear" tentam aliviar esse problema, mas nossos testes produziram resultados inconclusivos com esse método.
Codificações clássicas levam a previsões estáticas
Os métodos de codificação mais comuns empregados no boosting promovem relações estáticas entre variáveis independentes e dependentes, o que, por sua vez, contribui para aumentar o viés na presença de tendências. O diagrama abaixo ilustra esse fenômeno:

Representação visual simplificada que destaca a natureza estática da codificação de características categóricas empregada em algoritmos de reforço
Reconhecemos que a representação acima é uma simplificação exagerada, pois as árvores de decisão são mais complexas e capazes de identificar relações não lineares com base em vários 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 todos os momentos. Mas vamos dar uma olhada no quadro geral:
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 uma frase, nosso método de codificação de recursos categóricos poderia ser descrito como: modelamos o componente de tendência de cada categoria e usamos esses valores de tendência para codificar esse recurso categórico.
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.

Ilustração que mostra o princípio de codificação dinâmica, que envolve a modelagem de tendências para cada categoria
Em nossos experimentos, optamos por usar o Prophet para extrair o componente de tendência. Naturalmente, também é possível considerar 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 estão em um nível médio de 100 unidades/mês em qualquer momento. A codificação dinâmica, por outro lado, permite a contabilização da tendência de aumento observada nos itens pretos e é capaz de extrapolá-la no futuro. Uma afirmação semelhante pode ser feita com relação aos itens de ouro. Portanto, nossa abordagem será especialmente útil em conjuntos de dados em que a variável-alvo a ser prevista segue tendências acentuadas nas diversas categorias disponíveis.
Nosso foco principal é permitir que o modelo se adapte mais facilmente às relações mutáveis 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 recursos numéricos. 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 com o tempo e seguir uma tendência de vendas específica. No contexto de uma crise econômica, por exemplo, os produtos acessíveis podem seguir uma tendência de aumento de vendas, enquanto os caros podem seguir uma tendência de redução. Considerando "acessível" como uma categoria e "caro" como outra, poderíamos propor uma codificação dinâmica para o recurso de preço, assim como fizemos com as cores.
É importante observar que, para recursos numéricos, tanto as variáveis de base quanto as codificadas dinamicamente podem ser usadas no modelo, pois elas fornecerão diferentes tipos de informações.
Dar mais importância aos recursos dinâmicos (v2 com nível de item)
Embora esse novo método de codificação seja uma melhoria, muitas vezes a importância dos recursos categóricos não é alta o suficiente para afetar significativamente as previsões ao examinar a importância dos recursos. Para dar mais importância aos recursos dinâmicos e, assim, promover uma melhor modelagem e extrapolação de tendências, adaptamos os valores de codificação a cada série temporal/item individualmente.

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, com 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 individuais anteriores.

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
Usamos nossa abordagem para prever as vendas de um de nossos clientes do setor de varejo. Validamos completamente nosso método em uma ampla gama de escopos para garantir sua eficácia. Aqui estão alguns data pontos referentes ao contexto experimental:

De modo geral, o método se mostrou altamente eficiente, resultando em uma redução absoluta média de 9,82% no viés e um aumento absoluto médio de 6,29% na precisão da previsão nos 9 escopos de produtos e 5 dobras de validação cruzada.
A próxima seção valida a relevância do nosso método testando-o em um conjunto de dados públicos.
Conjunto de dados de vendas de lojas públicas
Neste estudo de caso simplificado, usamos o conjunto de dados do Kaggle Store Sales - Time Series Forecasting. Esse conjunto de dados apresenta uma tendência acentuada ao examinar a série temporal média de vendas, o que torna nosso método particularmente relevante. Além disso, o horizonte de previsão escolhido é de três meses, o que é distante o suficiente para se beneficiar dos recursos de extrapolação extra da codificação dinâmica. Para fins de demonstração, limitamos o conjunto de dados a 31 de março de 2016, logo antes da ocorrência de um terremoto, o que fez com que a curva de vendas ficasse plana.
Antes de qualquer codificação, nosso conjunto de dados inicial é composto por aproximadamente 75% de recursos numéricos, abrangendo defasagens, médias móveis, recursos de calendário e eventos de feriados. Os 25% restantes consistem em atributos categóricos, como família de produtos, número da loja, cidade e outros.
Dois modelos distintos são treinados: um emprega os recursos categóricos que foram codificados dinamicamente usando nosso método personalizado, enquanto o outro usa o tratamento nativo de recursos categóricos do LightGBM.
Ao compararmos seu desempenho, observamos um aprimoramento significativo na abordagem de codificação dinâmica. A tabela a seguir apresenta um resumo dos resultados:

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

Média de vendas semanais + previsões de 3 meses (codificação dinâmica vs. método de codificação LightGBM)
Conforme demonstrado no gráfico acima, o modelo que incorpora codificações dinâmicas captura efetivamente a tendência e a extrapola, enquanto o modelo alternativo tem dificuldade para fazer isso.
Uso e limites
Nosso método se mostra especialmente valioso em cenários em que a série temporal apresenta tendências pronunciadas e o horizonte de previsão é distante o suficiente para se beneficiar da extrapolação de tendências. Além disso, à medida que codificamos e incorporamos dinamicamente mais recursos categóricos com poder preditivo significativo no modelo, o efeito obtido com nossa abordagem nas previsões aumenta. Entretanto, é 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 os dois tipos de codificação para obter resultados potencialmente melhores.
Conclusão
Temos planos de publicar um artigo nos próximos meses, que incluirá detalhes completos de nossa abordagem e implementação. Fique atento às próximas atualizações!