Proponemos un método novedoso para codificar características categóricas específicamente adaptado a las aplicaciones de previsión. En esencia, este método codifica las características categóricas modelando la tendencia de las cantidades asociadas a cada categoría. En nuestros experimentos, este enfoque muestra importantes ventajas de rendimiento -tanto en términos de precisión de las previsiones como de sesgo-, ya que permite a los modelos de conjunto basados en árboles modelizar y extrapolar mejor las tendencias.
Introducción
La motivación de este trabajo surgió de numerosos proyectos de previsión de clientes en Artefact en los que nuestros modelos boosting mostraban un elevado sesgo en el momento de la predicción. Mediante una fase de diagnóstico, identificamos que una de las principales fuentes de sesgo en los modelos de aprendizaje por conjuntos surgía de sus dificultades para modelizar con precisión las tendencias y los niveles fluctuantes.
A continuación, demostraremos por qué y cómo utilizamos un enfoque novedoso para codificar características categóricas. Basándonos en nuestros experimentos con un proyecto de previsión de comercio minorista de un cliente y varios conjuntos de datos públicos, demostramos que esta técnica puede mitigar eficazmente el sesgo y mejorar la precisión.
Impulso y tendencias, ¿por qué es complejo?
A los algoritmos de refuerzo les cuesta extrapolar
Los algoritmos de refuerzo tienen dificultades para modelizar y extrapolar tendencias, ya que no pueden predecir nuevos valores no vistos en el conjunto de entrenamiento / ausentes de las hojas. Los modelos de "árbol lineal" intentan paliar este problema, pero nuestras pruebas no arrojaron resultados concluyentes con este método.
Las codificaciones clásicas empujan hacia predicciones estáticas
Los métodos de codificación más comunes empleados en el boosting promueven relaciones estáticas entre las variables independientes y dependientes, lo que a su vez contribuye a aumentar el sesgo en presencia de tendencias. El diagrama siguiente ilustra este fenómeno:

Representación visual simplificada que pone de relieve la naturaleza estática de la codificación de rasgos categóricos empleada en los algoritmos de refuerzo.
Reconocemos que la representación anterior es una simplificación excesiva, ya que los árboles de decisión son más complejos y capaces de identificar relaciones no lineales basadas en múltiples factores. De hecho, la condición "el color es negro" podría estar asociada a "el mes es junio". En este caso, que el color sea negro no tendría el mismo impacto en todo momento. Pero veamos el panorama general:
Nuestro nuevo enfoque: Codificación dinámica de características categóricas
Base de la codificación dinámica (v1 sin nivel de artículo)
En una frase, nuestro método de codificación de rasgos categóricos podría describirse así: modelamos el componente de tendencia de cada categoría y utilizamos esos valores de tendencia para codificar ese rasgo categórico.
El diagrama siguiente ilustra la diferencia entre una codificación de medias estática y una codificación basada en tendencias para dos categorías de color: negro y dorado.

Ilustración que muestra el principio de codificación dinámica, que implica el modelado de tendencias para cada categoría.
En nuestros experimentos, optamos por utilizar Prophet para extraer el componente de tendencia. Naturalmente, también es posible considerar otros modelos de previsión de series temporales.
Obsérvese que la codificación media estática implica que las ventas de artículos negros se sitúan en un nivel medio de 100 unidades/mes en cualquier momento. En cambio, la codificación dinámica permite tener en cuenta la tendencia al alza de los artículos negros y extrapolarla al futuro. Lo mismo puede decirse del oro. Así pues, nuestro planteamiento será especialmente útil en conjuntos de datos en los que la variable objetivo que debe preverse sigue tendencias pronunciadas en las distintas categorías disponibles.
Nuestro principal objetivo es permitir que el modelo se adapte más fácilmente a las relaciones cambiantes entre las variables independientes y la variable dependiente que se desea predecir. Por lo tanto, este método de codificación dinámica también podría aplicarse a las características numéricas. Consideremos el ejemplo del precio. Aunque el precio es numérico y el modelo puede construir directamente reglas basadas en él, las preferencias de la gente por artículos baratos o caros pueden evolucionar con el tiempo y seguir una tendencia de ventas concreta. En el contexto de una crisis económica, por ejemplo, los productos asequibles podrían seguir una tendencia de ventas creciente, mientras que los caros podrían seguir una decreciente. Considerando "asequible" como una categoría y "caro" como otra, podríamos proponer una codificación dinámica de la característica precio, igual que hicimos con los colores.
Es importante señalar que, en el caso de los rasgos numéricos, pueden utilizarse en el modelo tanto las variables de base como las codificadas dinámicamente, ya que proporcionarán distintos tipos de información.
Dar más importancia a las características dinámicas (v2 con nivel de artículo)
Aunque este nuevo método de codificación supone una mejora, a menudo la importancia de las características categóricas no es lo suficientemente alta como para influir significativamente en las predicciones cuando se examinan las importancias de las características. Para dar más importancia a los rasgos dinámicos y promover así un mejor modelado y extrapolación de tendencias, adaptamos los valores de codificación a cada serie temporal/artículo individualmente.

Fórmula que representa los dos componentes de la codificación dinámica: nivel de categoría y nivel de artículo
Volviendo a nuestro ejemplo del color, dados dos artículos negros diferentes, esto permite que la codificación dinámica de la categoría "negro" para cada artículo sea diferente en función de sus ventas pasadas individuales.

Cuadro que ilustra el cálculo de la codificación dinámica mediante un ejemplo sencillo
Experimentos y resultados
Conjunto de datos de clientes
Utilizamos nuestro método para prever las ventas de uno de nuestros clientes del sector minorista. Validamos a fondo nuestro método en una amplia gama de ámbitos para garantizar su eficacia. He aquí algunos puntos de data relativos al contexto experimental:

En general, el método demostró ser muy eficaz, con una reducción media absoluta del sesgo del 9,82% y un aumento medio absoluto de la precisión de las previsiones del 6,29% en los 9 ámbitos de productos y los 5 pliegues de validación cruzada.
La siguiente sección valida la pertinencia de nuestro método probándolo en un conjunto de datos públicos.
Conjunto de datos de ventas en comercios públicos
En este estudio de caso simplificado, utilizamos el conjunto de datos de Kaggle Store Sales - Time Series Forecasting. Este conjunto de datos muestra una tendencia pronunciada al examinar la serie temporal media de ventas, lo que hace que nuestro método sea especialmente relevante. Además, el horizonte de predicción elegido es de tres meses, lo suficientemente lejano como para beneficiarse de las capacidades de extrapolación de la codificación dinámica. A efectos de demostración, limitamos el conjunto de datos al 31 de marzo de 2016, justo antes de que se produjera un terremoto que aplanó la curva de ventas.
Antes de cualquier codificación, nuestro conjunto de datos inicial comprende aproximadamente un 75% de características numéricas, que abarcan Lags, medias móviles, características de calendario y eventos festivos. El 25% restante se compone de atributos categóricos como familia de productos, número de tienda, ciudad y otros.
Se entrenan dos modelos distintos: uno emplea las características categóricas que se codificaron dinámicamente utilizando nuestro método personalizado, mientras que el otro utiliza el manejo nativo de LightGBM de las características categóricas.
Al comparar su rendimiento, observamos una mejora significativa en el enfoque de codificación dinámica. En la tabla siguiente se resumen los resultados:

Comparación de RMSE, FA y %Bias entre el método de codificación LightGBM y la codificación dinámica.

Promedio de ventas semanales + predicciones a 3 meses (codificación dinámica frente al método de codificación LightGBM)
Como se aprecia en el gráfico anterior, el modelo que incorpora codificaciones dinámicas capta eficazmente la tendencia y la extrapola, mientras que el modelo alternativo tiene dificultades para lograrlo.
Uso y límites
Nuestro método resulta especialmente valioso en escenarios en los que las series temporales muestran tendencias pronunciadas y el horizonte de predicción es lo suficientemente lejano como para beneficiarse de la extrapolación de tendencias. Además, a medida que codificamos dinámicamente e incorporamos al modelo más características categóricas con un poder predictivo significativo, aumenta el efecto logrado mediante nuestro método en las predicciones. Sin embargo, es importante reconocer que otros métodos de codificación tienen sus propias ventajas y pueden ser más ventajosos en diferentes contextos. Además, existe la posibilidad de combinar ambos tipos de codificación para obtener resultados potencialmente mejores.
Conclusión
Tenemos previsto publicar un artículo en los próximos meses, que incluirá todos los detalles de nuestro planteamiento y aplicación. Esté atento a las novedades.