Nous proposons une nouvelle méthode d'encodage des caractéristiques catégorielles spécifiquement adaptée aux applications de prévision. Essentiellement, cette approche code les caractéristiques catégorielles en modélisant la tendance des quantités associées à chaque catégorie. Dans nos expériences, cette approche présente des avantages substantiels en termes de performance - à la fois en termes de précision et de biais de prévision - 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

.

Introduction

Ce travail a été motivé par de nombreux projets de prévision de clients au Artefact, pour lesquels nos modèles de stimulation présentaient un biais important au moment de la prédiction. Grâce à une phase de diagnostic, nous avons identifié que l'une des principales sources de biais dans les modèles d'apprentissage ensembliste provenait de leurs difficultés à modéliser avec précision les tendances et les niveaux fluctuants.

Dans ce qui suit, nous allons démontrer pourquoi et comment nous avons utilisé une nouvelle approche pour coder les caractéristiques catégorielles. Sur la base de nos expériences portant sur un projet de prévision du commerce de détail d'un client et sur divers ensembles data publics, nous prouvons que cette technique peut effectivement atténuer les biais et améliorer la précision.

Boosting et tendances, pourquoi est-ce complexe ?

Les algorithmes de boosting ont du mal à extrapoler

Les algorithmes de boosting ont du mal à modéliser et à extrapoler les tendances car ils ne peuvent pas prédire de nouvelles valeurs qui n'ont pas été observées dans l'ensemble d'apprentissage ou qui sont absentes des feuilles. “Arbre linéaire”Les modèles de la série " C " tentent de remédier à 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 courantes employées dans le cadre du 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 diagramme ci-dessous illustre ce phénomène :

Classical encodings push towards static predictions

Représentation visuelle simplifiée mettant en évidence la nature statique de l'encodage 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 capables d'identifier des relations non linéaires basées sur des facteurs multiples. En effet, la condition “la couleur est noire” pourrait être associée à “le mois de juin”. Dans ce cas, la couleur noire n'aurait pas le même impact à tout moment. Mais regardons la situation dans son ensemble :

  • L'attribution d'un impact unique pour la couleur noire en juin n'est toujours pas idéale, car l'impact en juin 2021 peut différer de l'impact en juin 2022. Même si nous incluons l'année, la frontière décisionnelle deviendrait trop complexe à construire et à identifier, mais aussi, que se passerait-il si la formation data se termine en 2022 et que des prévisions doivent être faites pour 2023 ?

  • L'ingénierie des caractéristiques a pour but d'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 nécessiter l'identification de relations complexes, cela serait très avantageux pour le modèle. D'où ...

Notre nouvelle approche : Encodage dynamique des caractéristiques catégorielles

Base de l'encodage dynamique (v1 sans niveau de l'item)

En une phrase, notre méthode d'encodage des caractéristiques catégorielles pourrait être décrite comme suit : nous modélisons la composante tendancielle de chaque catégorie et utilisons ces valeurs tendancielles pour coder cette caractéristique catégorielle.

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

Illustration du principe d'encodage dynamique, qui implique une modélisation des tendances pour chaque catégorie.

Dans nos expériences, nous avons choisi d'utiliser Prophet pour extraire la composante de tendance. Naturellement, il est possible d'envisager d'autres modèles de prévision des séries temporelles.

Notez que l'encodage moyen statique implique que les ventes d'articles noirs se situent à un niveau moyen de 100 unités/mois à tout moment. L'encodage dynamique, en revanche, permet de tenir compte de la tendance à la hausse observée pour les articles noirs et de l'extrapoler à l'avenir. Une constatation similaire peut être faite en ce qui concerne les articles en or. Ainsi, notre approche sera particulièrement utile dans les ensembles data 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 aux relations changeantes entre les variables indépendantes et la variable dépendante à prévoir. Par conséquent, cette méthode d'encodage dynamique pourrait également être appliquée aux caractéristiques numériques. Prenons l'exemple du prix. Bien que le prix soit numérique et que le modèle puisse directement construire des règles basées sur lui, les préférences des gens pour les articles bon marché ou coûteux peuvent encore évoluer dans le temps et suivre une tendance de vente spécifique. Dans le contexte d'une crise économique, par exemple, les produits abordables peuvent suivre une tendance à la hausse des ventes, tandis que les produits onéreux peuvent suivre une tendance à la baisse. En considérant ‘abordable’ comme une catégorie et ‘cher’ comme une autre, nous pourrions proposer un codage dynamique pour la caractéristique du prix, comme nous l'avons fait pour les couleurs.

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

Accorder plus d'importance aux caractéristiques dynamiques (v2 avec niveau de l'élément)

Bien que cette nouvelle méthode d'encodage constitue une amélioration, il arrive souvent que l'importance des caractéristiques catégorielles ne soit pas suffisamment élevée pour avoir un impact significatif sur les prédictions lors de l'examen de l'importance des caractéristiques. Pour donner plus d'importance aux caractéristiques dynamiques et favoriser ainsi une meilleure modélisation et extrapolation des tendances, nous adaptons les valeurs d'encodage à chaque série chronologique/élément individuellement.

Formule représentant les deux composantes de l'encodage dynamique : le niveau de la catégorie et le niveau de l'élément.

Pour en revenir à notre exemple de couleur, si l'on considère deux articles noirs différents, l'encodage dynamique de la catégorie “noir” pour chaque article peut être différent en fonction de ses ventes antérieures.

Table illustrating the calculation of dynamic encoding through a simple example

Tableau illustrant le calcul de l'encodage dynamique à travers un exemple simple

Expériences et résultats

Client dataset

Nous avons utilisé notre approche pour prévoir les ventes de l'un de nos clients du secteur de la vente au détail. Nous avons validé notre méthode sur un large éventail de champs d'application afin de nous assurer de son efficacité. Voici quelques points data concernant le contexte expérimental :

  • Les expériences ont été menées sur 9 produits différents, avec un modèle de renforcement (LightGBM) pour chaque produit.
  • Pour chaque champ d'application, une validation croisée k-fold avec une fenêtre d'expansion a été réalisée (k=5).

  • Horizon de prévision : Du jour+1 au jour+180.

  • Les performances ont été évaluées à l'aide de deux paramètres :

Dans l'ensemble, la méthode s'est avérée très efficace, ce qui se traduit par une diminution absolue moyenne du biais de 9,82% et une augmentation absolue moyenne de la précision des prévisions de 6,29%. sur les 9 champs d'application des produits et les 5 plis de validation croisée.

La section suivante valide la pertinence de notre méthode en la testant sur un ensemble public de data.

Ventes dans les magasins publics dataset

Dans cette étude de cas simplifiée, nous utilisons le Ventes en magasin - Prévision des séries temporelles Kaggle dataset. Cet ensemble dataset présente une tendance abrupte lorsque l'on examine la série chronologique des ventes moyennes, ce qui rend notre méthode particulièrement pertinente. En outre, l'horizon de prédiction choisi est de trois mois, ce qui est suffisamment éloigné pour bénéficier des capacités d'extrapolation de l'encodage dynamique. À des fins de démonstration, nous limitons le dataset au 31 mars 2016, juste avant qu'un tremblement de terre ne se produise, entraînant l'aplatissement de la courbe des ventes.

Avant tout encodage, notre ensemble initial de data comprend environ 75% de caractéristiques numériques, englobant les décalages, les moyennes mobiles, les caractéristiques du calendrier et les événements de vacances. Les 25% restantes sont des attributs catégoriels tels que la famille de produits, le numéro de magasin, la ville, etc.

Deux modèles distincts sont formés : l'un utilise les caractéristiques catégorielles encodées dynamiquement à l'aide de notre méthode personnalisée, tandis que l'autre utilise le traitement natif des caractéristiques catégorielles de LightGBM.

En comparant leurs performances, nous observons une amélioration significative de l'approche d'encodage dynamique. Le tableau suivant fournit un résumé des résultats :

Comparison of RMSE, FA, and %Bias between LightGBM encoding method and dynamic encoding

Comparaison des valeurs RMSE, FA et %Bias entre la méthode d'encodage LightGBM et l'encodage dynamique

Ventes hebdomadaires moyennes + prévisions sur 3 mois (encodage dynamique vs méthode d'encodage LightGBM)

Comme le montre le graphique ci-dessus, le modèle incorporant des encodages dynamiques saisit efficacement la tendance et l'extrapole, alors que le modèle alternatif peine à y parvenir.

Utilisation et limites

Notre méthode s'avère particulièrement utile dans les scénarios où la série temporelle affiche tendances prononcées et le horizon de prévision est suffisamment éloignée pour bénéficier de l'extrapolation des tendances. En outre, à mesure que nous encodons et incorporons de manière dynamique les données des des caractéristiques plus catégoriques avec prédictif significatif pouvoir dans le modèle, l'effet obtenu par notre approche sur les augmentations des prédictions. Cependant, il est important de reconnaître que d'autres méthodes d'encodage ont leurs propres avantages et peuvent être 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 d'encodage conventionnelles pour les caractéristiques catégorielles ne sont pas idéales pour les prévisions, en particulier lorsque les séries temporelles 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, puisque nous utilisons un modèle Prophète - qui possède des capacités supérieures de modélisation et d'extrapolation des tendances - pour construire l'encodage des caractéristiques catégorielles.

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

Nous prévoyons de publier un document dans les mois à venir, qui contiendra tous les détails de notre approche et de notre mise en œuvre. Restez à l'écoute pour des mises à jour ultérieures !

Moyen Blog par Artefact.

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