Proponemos un método novedoso para codificar características categóricas, diseñado específicamente para aplicaciones de predicción. En esencia, este enfoque codifica las características categóricas mediante la modelización de la tendencia de las magnitudes asociadas a cada categoría. En nuestros experimentos, este enfoque muestra ventajas sustanciales en cuanto al rendimiento —tanto en términos de precisión de predicción 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 para este trabajo surgió a raíz de numerosos proyectos de previsión para clientes en Artefact nuestros modelos de refuerzo mostraban un elevado sesgo en el momento de la predicción. Tras una fase de diagnóstico, identificamos que una de las principales fuentes de sesgo en los modelos de aprendizaje por conjuntos se debía a sus dificultades para modelar con precisión las tendencias y los niveles fluctuantes.
A continuación, explicaremospor quéycómohemos utilizado un enfoque novedoso para codificar las características categóricas. A partir de nuestros experimentos, realizados en el marco de un proyecto de previsión de ventas minoristas para un cliente y con diversos conjuntos de datos públicos, demostramos que esta técnica puede mitigar eficazmente el sesgo y mejorar la precisión.
El impulso y las tendencias: ¿por qué es tan complicado?
A los algoritmos de refuerzo les cuesta extrapolar
A los algoritmos de refuerzo les cuesta modelar y extrapolar tendencias, ya que no pueden predecir nuevos valores que no aparecen en el conjunto de entrenamiento o que están ausentes en las hojas. Los modelos de«árbol lineal»intentan paliar este problema; sin embargo, nuestras pruebas no arrojaron resultados concluyentes con este método.
Las codificaciones clásicas tienden a generar predicciones estáticas
Los métodos de codificación más habituales que se emplean en el boosting favorecen las relaciones estáticas entre las variables independientes y las dependientes, lo que a su vez contribuye a aumentar el sesgo cuando hay tendencias. El siguiente diagrama ilustra este fenómeno:

Representación visual simplificada que destaca la naturaleza estática de la codificación de características categóricas empleada en los algoritmos de boosting
Reconocemos que la descripción anterior es una simplificación excesiva, ya que los árboles de decisión son más complejos y permiten 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, el hecho de que el color sea negro no tendría el mismo impacto en todo momento. Pero analicemos el panorama general:
Nuestro enfoque innovador: codificación dinámica de características categóricas
Fundamentos de la codificación dinámica (v1 sin nivel de elemento)
En pocas palabras, nuestro método para codificar características categóricas podría describirse así:modelamos el componente de tendencia de cada categoría y utilizamos esos valores de tendencia para codificar dicha característica categórica.
El siguiente diagrama ilustra la diferencia entre una codificación media estática y una codificación basada en la tendencia para dos categorías de color: negro y dorado.

Ilustración que muestra el principio de codificación dinámica, que implica la modelización de tendencias para cada categoría
En nuestros experimentos, decidimos utilizar Prophet para extraer el componente de tendencia. Por supuesto, también es posible considerar otros modelos de predicción de series temporales.
Cabe señalar que la codificación estática implica que las ventas de artículos negros se sitúan en un nivel medio de 100 unidades al mes en cualquier momento dado. La codificación dinámica, por su parte, permite tener en cuenta la tendencia al alza observada en los artículos negros y es capaz de extrapolarla al futuro. Se puede afirmar algo similar en relación con los artículos dorados. Por lo tanto, nuestro enfoque resultará especialmente útil en conjuntos de datos en los que la variable objetivo que se va a pronosticar siga tendencias pronunciadas en las distintas categorías disponibles.
Nuestro objetivo principal 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 va a predecir. Por lo tanto, este método de codificación dinámica también podría aplicarse a las características numéricas. Tomemos como ejemplo el precio. Aunque el precio es numérico y el modelo puede establecer reglas directamente basándose en él, las preferencias de las personas por artículos económicos o costosos pueden seguir evolucionando con el tiempo y seguir una tendencia de ventas específica. En el contexto de una crisis económica, por ejemplo, los productos asequibles podrían seguir una tendencia de ventas al alza, mientras que los caros podrían seguir una tendencia a la baja. Considerando «asequible» como una categoría y «caro» como otra, podríamos proponer una codificación dinámica para la característica del precio, tal y como hicimos con los colores.
Es importante señalar que, en el caso de las características numéricas, en el modelo se pueden utilizar tanto las variables básicas como las codificadas dinámicamente, ya que aportan distintos tipos de información.
Dar mayor importancia a las características dinámicas (v2 con nivel de elemento)
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 elevada como para influir de manera significativa en las predicciones al analizar la importancia de las características. Para otorgar mayor importancia a las características dinámicas y, de este modo, facilitar un mejor modelado y una mejor extrapolación de las tendencias, adaptamos los valores de codificación a cada serie temporal o elemento de forma individual.

Fórmula que representa los dos componentes de la codificación dinámica: el nivel de categoría y el nivel de ítem
Volviendo a nuestro ejemplo sobre el color, si tenemos dos artículos negros diferentes, esto permite que la codificación dinámica de la categoría «negro» sea diferente para cada artículo en función de sus ventas anteriores individuales.

Tabla que ilustra el cálculo de la codificación dinámica mediante un ejemplo sencillo
Experimentos y resultados
Conjunto de datos del cliente
Utilizamos nuestro enfoque para pronosticar las ventas de uno de nuestros clientes del sector minorista. Validamos minuciosamente nuestro método en una amplia variedad de casos para garantizar su eficacia. A continuación se presentan algunos data al contexto experimental:

En general, el método demostró ser muy eficaz,ya que se obtuvo una disminución absoluta media del sesgo del 9,82 % y un aumento absoluto medio de la precisión de las previsiones del 6,29 %en los nueve ámbitos de productos y las cinco series de validación cruzada.
En la siguiente sección se comprueba la validez de nuestro método aplicándolo a un conjunto de datos público.
Conjunto de datos sobre ventas en tiendas físicas
En este caso práctico simplificado, utilizamos el conjunto de datos«Store Sales — Time Series Forecasting»de Kaggle. Este conjunto de datos muestra una tendencia pronunciada al examinar la serie temporal de ventas medias, lo que hace que nuestro método resulte especialmente relevante. Además, el horizonte de predicción elegido es de tres meses, lo cual es lo suficientemente amplio como para beneficiarse de las capacidades de extrapolación adicionales 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 provocó que la curva de ventas se aplanara.
Antes de cualquier codificación, nuestro conjunto de datos inicial está compuesto por aproximadamente un 75 % de características numéricas, que incluyen retardos, medias móviles, características de calendario y días festivos. El 25 % restante está formado por atributos categóricos, como la familia de productos, el número de tienda, la ciudad y otros.
Se entrenan dos modelos distintos: uno utiliza las características categóricas que se codificaron dinámicamente mediante nuestro método personalizado, mientras que el otro utiliza el manejo nativo de características categóricas de LightGBM.
Al comparar su rendimiento, observamos una mejora significativa en el enfoque de codificación dinámica. La siguiente tabla ofrece un resumen de los resultados:

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

Ventas semanales medias + previsiones para los próximos 3 meses (codificación dinámica frente al método de codificación LightGBM)
Como se muestra en el gráfico anterior, el modelo que incorpora codificaciones dinámicascapta eficazmente la tendencia y la extrapola, mientras que el modelo alternativo tiene dificultades para lograrlo.
Uso y límites
Nuestro método resulta especialmente útil en situaciones en las que la serie temporal muestratendencias marcadasy elhorizonte de predicción es lo suficientemente lejano como para aprovechar la extrapolación de tendencias. Además, a medida que codificamos dinámicamente e incorporamos al modelomás características categóricascon un poderpredictivo significativo,aumenta el efecto que nuestro enfoque tiene sobre las predicciones. Sin embargo, es importante reconocer que otros métodos de codificación tienen sus propias ventajas y pueden resultar más beneficiosos 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, en el que se detallarán todos los aspectos de nuestro enfoque y su implementación. ¡Estad atentos a las próximas novedades!

BLOG






