Nous proposons une nouvelle méthode de codage des caractéristiques catégorielles spécialement conçue pour les applications de prévision. En substance, cette approche code les caractéristiques catégorielles en modélisant la tendance des quantités associées à chaque catégorie. Nos expériences montrent que cette approche offre des gains de performance significatifs — tant en termes de précision de prévision que de biais —, car elle permet aux modèles d'ensemble basés sur des arbres de mieux modéliser et extrapoler les tendances.

Lisez notre article sur

class="lazyload

.

Introduction

Ce travail a été motivé par de nombreux projets de prévision menés pour des clients chez Artefact nos modèles de boosting présentaient un biais important au moment de la prédiction. Au cours d'une phase de diagnostic, nous avons constaté que l'une des principales sources de biais dans les modèles d'apprentissage par ensemble provenait de leur difficulté à modéliser avec précision les tendances et les fluctuations.

Nous allons montrer ci-aprèspourquoietcommentnous avons utilisé une nouvelle approche pour l'encodage des caractéristiques catégorielles. Sur la base de nos expériences menées dans le cadre d'un projet de prévision pour un client du secteur de la vente au détail et à partir de divers ensembles de données publics, nous démontrons que cette technique permet de réduire efficacement les biais et d'améliorer la précision.

Le boost et les tendances : pourquoi est-ce si compliqué ?

Les algorithmes de renforcement ont du mal à extrapoler

Les algorithmes de boost ont du mal à modéliser et à extrapoler les tendances, car ils ne peuvent pas prédire de nouvelles valeurs qui n'apparaissent pas dans l'ensemble d'apprentissage ou qui sont absentes des feuilles. Les modèles de type «arbre linéaire »tentent de pallier ce problème, mais nos tests n'ont pas donné de résultats concluants avec cette méthode.

Les encodages classiques favorisent les prédictions statiques

Les méthodes d'encodage les plus couramment utilisées dans le boosting favorisent les relations statiques entre les variables indépendantes et dépendantes, ce qui contribue à accroître le biais en présence de tendances. Le schéma ci-dessous illustre ce phénomène :

Les encodages classiques favorisent les prédictions statiques

Représentation visuelle simplifiée mettant en évidence la nature statique du codage des caractéristiques catégorielles utilisé dans les algorithmes de boosting

Nous reconnaissons que la représentation ci-dessus est une simplification excessive, car les arbres de décision sont plus complexes et permettent d’identifier des relations non linéaires fondées sur plusieurs facteurs. En effet, la condition « la couleur est noire » pourrait être associée à « le mois est juin ». Dans ce cas, le fait que la couleur soit noire n’aurait pas le même impact en toutes circonstances. Mais considérons la situation dans son ensemble :

  • Attribuer un seul impact à la couleur noire en juin n'est toujours pas idéal, car l'impact en juin 2021 pourrait différer de celui de juin 2022. Même si l'on inclut l'année, non seulement la frontière de décision deviendrait trop complexe à établir et à identifier, mais que se passerait-il si les data d'apprentissage data en 2022 et qu'il fallait faire des prévisions pour 2023 ?

  • L'ingénierie des caractéristiques vise à aider le modèle à identifier plus facilement les relations. Si nous pouvons aider le modèle à associer l'impact de la couleur noire à un moment donné sans qu'il soit nécessaire d'identifier des relations complexes, cela constituerait un avantage considérable pour le modèle. Par conséquent…

Notre approche novatrice : le codage dynamique des caractéristiques catégorielles

Principes de l'encodage dynamique (v1 sans niveau d'élément)

En un mot, notre méthode d'encodage des caractéristiques catégorielles pourrait se résumer ainsi :nous modélisons la composante de tendance de chaque catégorie et utilisons ces valeurs de tendance pour encoder cette caractéristique catégorielle.

Le diagramme ci-dessous illustre la différence entre un codage statique basé sur la moyenne et un codage basé sur la tendance pour deux catégories de couleurs : le noir et l'or.

class="lazyload

Illustration présentant le principe de l'encodage dynamique, qui repose sur la modélisation des tendances pour chaque catégorie

Dans le cadre de nos expériences, nous avons choisi d'utiliser Prophet pour extraire la composante de tendance. Bien entendu, il est également possible d'envisager d'autres modèles de prévision de séries chronologiques.

Il convient de noter que le codage statique implique que les ventes d'articles noirs se situent à un niveau moyen de 100 unités par mois à tout moment. Le codage dynamique, en revanche, permet de prendre en compte la tendance à la hausse observée pour les articles noirs et d'en extrapoler l'évolution future. On peut en dire autant des articles dorés. Notre approche s'avérera donc particulièrement utile dans les ensembles de données où la variable cible à prévoir suit des tendances marquées dans les différentes catégories disponibles.

Notre objectif principal est de permettre au modèle de s'adapter plus facilement à l'évolution des relations entre les variables indépendantes et la variable dépendante à prévoir. Par conséquent, cette méthode de codage dynamique pourrait également s'appliquer à des caractéristiques numériques. Prenons l'exemple du prix. Bien que le prix soit une valeur numérique et que le modèle puisse directement établir des règles à partir de celui-ci, les préférences des consommateurs pour des articles bon marché ou coûteux peuvent néanmoins évoluer au fil du temps et suivre une tendance de vente spécifique. Dans le contexte d'une crise économique, par exemple, les produits abordables pourraient connaître une tendance à la hausse des ventes, tandis que les produits chers pourraient connaître une tendance à la baisse. En considérant « abordable » comme une catégorie et « cher » comme une autre, nous pourrions proposer un encodage dynamique pour la caractéristique « prix », tout comme nous l'avons fait pour les couleurs.

Il est important de noter que, pour les caractéristiques numériques, tant les variables de base que celles codées dynamiquement peuvent être utilisées dans le modèle, car elles fournissent des types d'informations différents.

Accorder davantage d'importance aux fonctionnalités dynamiques (v2 avec niveau d'élément)

Bien que cette nouvelle méthode d'encodage constitue une amélioration, l'importance des caractéristiques catégorielles n'est souvent pas suffisante pour influencer de manière significative les prédictions lorsque l'on examine l'importance des caractéristiques. Afin de donner plus de poids aux caractéristiques dynamiques et, par conséquent, d'améliorer la modélisation et l'extrapolation des tendances, nous adaptons les valeurs d'encodage à chaque série chronologique ou élément individuellement.

class="lazyload

Formule représentant les deux composantes du codage dynamique : le niveau de catégorie et le niveau d'item

Pour revenir à notre exemple sur les couleurs, si l'on considère deux articles noirs différents, cela permet de coder de manière dynamique la catégorie « noir » de chaque article en fonction de ses ventes passées individuelles.

Tableau illustrant le calcul du codage dynamique à l'aide d'un exemple simple

Tableau illustrant le calcul du codage dynamique à l'aide d'un exemple simple

Expériences et résultats

Ensemble de données client

Nous avons utilisé notre approche pour prévoir les ventes d'un de nos clients du secteur de la vente au détail. Nous avons minutieusement validé notre méthode dans un large éventail de cas de figure afin de garantir son efficacité. Voici quelques data concernant le contexte de l'expérience :

  • Les expériences ont été menées sur 9 domaines de produits différents, avec un modèle de boosting (LightGBM) pour chaque domaine.
  • Pour chaque domaine, une validation croisée k-fois avec une fenêtre glissante a été effectuée (k = 5).

  • Horizon de prévision : J+1 à J+180.

  • Les performances ont été évaluées à l'aide de deux indicateurs :

class="lazyload

Dans l'ensemble, cette méthode s'est révélée très efficace,avec une réduction absolue moyenne du biais de 9,82 % et une augmentation absolue moyenne de la précision des prévisions de 6,29 %pour les 9 domaines de produits et les 5 séries de validation croisée.

La section suivante vérifie la pertinence de notre méthode en la testant sur un ensemble de données public.

Ensemble de données sur les ventes en magasin

Dans cette étude de cas simplifiée, nous utilisons l'ensemble de données «Store Sales — Time Series Forecasting» de Kaggle. Cet ensemble de données présente une tendance à forte pente lorsque l'on examine la série chronologique des ventes moyennes, ce qui rend notre méthode particulièrement pertinente. De plus, l'horizon de prévision choisi est de trois mois, ce qui est suffisamment lointain pour tirer parti des capacités d'extrapolation supplémentaires offertes par le codage dynamique. À des fins de démonstration, nous limitons l'ensemble de données au 31 mars 2016, juste avant qu'un tremblement de terre ne se produise, provoquant un aplatissement de la courbe des ventes.

Avant tout encodage, notre ensemble de données initial comprend environ 75 % de caractéristiques numériques, notamment des décalages, des moyennes glissantes, des caractéristiques calendaires et des jours fériés. Les 25 % restants sont constitués d'attributs catégoriels tels que la famille de produits, le numéro de magasin, la ville et autres.

Deux modèles distincts sont entraînés : l'un utilise les caractéristiques catégorielles qui ont été encodées de manière dynamique à l'aide de notre méthode personnalisée, tandis que l'autre utilise la gestion native des caractéristiques catégorielles par LightGBM.

En comparant leurs performances, nous constatons une amélioration significative de l'approche par encodage dynamique. Le tableau suivant présente un résumé des résultats :

Comparaison de l'erreur quadratique moyenne (RMSE), du coefficient de variation (FA) et du pourcentage de biais entre la méthode de codage LightGBM et le codage dynamique

Comparaison de l'erreur quadratique moyenne (RMSE), du coefficient de variation (FA) et du pourcentage de biais entre la méthode de codage LightGBM et le codage dynamique

class="lazyload

Chiffre d'affaires hebdomadaire moyen + prévisions sur 3 mois (codage dynamique vs méthode de codage LightGBM)

Comme le montre le graphique ci-dessus, le modèle intégrant des encodages dynamiquesrend bien compte de la tendance et la projette dans le futur, alors que le modèle alternatif peine à y parvenir.

Utilisation et limites

Notre méthode s'avère particulièrement utile dans les cas où la série chronologique présentedes tendances marquéeset oùl'horizon de prévision est suffisamment lointain pour tirer parti de l'extrapolation des tendances. De plus, à mesure que nous encodons et intégrons de manière dynamiquedavantage de caractéristiques catégoriellesdotées d'un pouvoirprédictif significatif dans le modèle,l'effet obtenu grâce à notre approche sur les prédictions s'accroît. Il est toutefois important de reconnaître que d'autres méthodes d'encodage présentent leurs propres avantages et peuvent s'avérer plus avantageuses dans différents contextes. En outre, il est possible de combiner les deux types d'encodage pour obtenir des résultats potentiellement meilleurs.

Conclusion

  • Les techniques de codage classiques utilisées pour les variables catégorielles ne sont pas idéales pour la prévision, en particulier lorsque les séries chronologiques présentent des tendances marquées et que l'horizon de prévision est lointain.
  • Notre méthode est une variante de l'empilement de modèles, dans la mesure où nous utilisons un modèle Prophet — qui offre des capacités supérieures en matière de modélisation et d'extrapolation des tendances — pour construire le codage des caractéristiques catégorielles.

  • Nos expériences ont démontré les avantages liés à la réduction des biais et à l'amélioration de la précision des prévisions.

Nous prévoyons de publier un article dans les prochains mois, qui présentera en détail notre approche et sa mise en œuvre. Restez à l'écoute pour d'autres nouvelles !

class="lazyload

Blog Medium Blog Artefact.

Cet article a été initialement publié sur Medium.com.
Suivez-nous sur notre Blog Medium Blog