ACTUALITÉS / TECHNOLOGIE DE L'AI

25 novembre 2020
Chez Artefact, nous sommes tellement français que nous avons décidé d'appliquer l'apprentissage automatique aux croissants. Ce premier article sur deux explique comment nous avons décidé d'utiliser Catboost pour prédire les ventes de “viennoiseries”. Les caractéristiques les plus importantes qui influencent les ventes sont les dernières ventes hebdomadaires, le fait que le produit soit en promotion ou non et son prix. Nous vous présenterons quelques caractéristiques techniques intéressantes, notamment la cannibalisation et les raisons pour lesquelles vous devez parfois mettre à jour votre variable cible.

Qu'est-ce que c'est ?

Chez Artefact, nous sommes tellement français que nous avons décidé d'appliquer l'apprentissage automatique aux croissants. Ce premier article sur deux explique comment nous avons décidé d'utiliser Catboost pour prédire les ventes de “viennoiseries”. Les caractéristiques les plus importantes qui influencent les ventes sont les dernières ventes hebdomadaires, le fait que le produit soit en promotion ou non et son prix.

Nous vous présenterons quelques caractéristiques techniques intéressantes, notamment la cannibalisation et les raisons pour lesquelles vous devez parfois mettre à jour votre variable cible. Nous avons choisi la précision des prévisions et le biais comme mesures d'évaluation. Notre deuxième article vous expliquera comment nous avons mis ce modèle en production et quelques bonnes pratiques de ML Ops.

Pour qui ?

  • Data scientifique, ingénieur ML ou Data amoureux

Contexte

Développement de modèles

Maintenant que nous avons un problème bien défini et des objectifs à atteindre, nous pouvons enfin commencer à écrire du beau code python dans nos carnets - que le plaisir commence !

Demande Data

Comme dans tout projet scientifique data, tout commence par data. D'après notre expérience, nous vous recommandons vivement de demander data le plus tôt possible. N'hésitez pas à demander beaucoup de data et, pour chaque source de data, veillez à identifier un référent, une personne que vous pouvez facilement contacter et à qui vous pouvez poser vos questions sur la collection de data ou sur la façon dont le data est structuré.

Grâce aux différentes réunions, nous avons pu dresser une liste des data que nous pouvions utiliser :

  • Transactionnel data incluant le prix des produits.
  • Promotions : une liste de toutes les promotions à venir et des prix qui y sont associés.
  • Informations sur les produits : différentes caractéristiques relatives aux produits.

Analyse exploratoire Data (EDA) et détection des valeurs aberrantes

Image for post

De la prédiction des ventes à la prédiction optimale des ventes

Un défi nous a amenés à mettre à jour notre variable cible. Parfois, en raison d'une influence inattendue ou d'une mauvaise prévision, le département s'attendait à une pénurie de produits avant la fin de la journée. Deux phénomènes peuvent alors se produire : le client ne trouvant pas son produit n'achète rien, ou achète un produit similaire. Sur la base de l'historique data, nous avons déduit quelques lois de distribution (statistiques de base) qui nous ont permis de modéliser cet impact et de mettre à jour notre variable cible afin de prédire non pas les ventes historiques mais les ventes optimales pour un produit particulier.

Cette mise à jour de la variable cible est délicate car il est vraiment difficile de savoir si la mise à jour a eu un sens. Avez-vous réellement amélioré la qualité du data ou l'avez-vous détériorée ? Une façon de quantifier notre impact a été de prendre les ventes sans rupture de stock et de créer une fausse pénurie, par exemple en supprimant toutes les ventes après 17 ou 18 heures, puis en essayant de reconstituer les ventes. Cette méthode nous permet de revenir à un problème classique supervisé que nous pouvons évaluer objectivement.

Nous avons ainsi pu prédire les ventes optimales et éviter que notre algorithme n'apprenne des schémas de pénurie.

Nos modèles

Après avoir correctement nettoyé notre data, nous pouvons enfin tester et essayer quelques modèles.

Image for post

Un modèle ou plusieurs modèles

En résumé, nous avons utilisé un algorithme : Catboost, pour prédire l'ensemble de nos 10 000 séries temporelles, pour chaque produit et chaque magasin. Mais qu'en est-il si un article a un modèle de vente vraiment particulier, ou un magasin spécifique ? L'algorithme pourrait-il identifier et apprendre ce modèle ?

Ces questions nous amènent à nous demander si nous ne devrions pas regrouper nos produits et nos magasins et former un algorithme par groupe. Même si l'utilisation d'algorithmes d'arbres de décision devrait permettre de relever ce défi, nous avons observé des limites dans certains cas spécifiques.

Les algorithmes de stimulation sont des algorithmes itératifs, basés sur des apprenants faibles qui se concentrent sur leurs plus grosses erreurs. C'est évidemment un peu trop simplifié, mais cela me permet de souligner l'une de leurs limites. Si vous n'avez pas normalisé votre variable cible, votre algorithme se concentrera “uniquement” sur les produits présentant de grosses erreurs, qui sont plus susceptibles d'être ceux dont les ventes sont les plus importantes. Par conséquent, l'algorithme peut se concentrer davantage sur les produits ou les magasins dont le volume de ventes est plus important.

Nous n'avons pas trouvé la solution idéale pour relever ce défi, mais nous avons observé quelques améliorations en regroupant nos produits/magasins par famille ou par fréquence de vente.

Comment évaluer notre modèle ?

  1.  Validation croisée

2. Le choix de la métrique :

Image for post

En conclusion, quelques conseils pour les projets data

Principaux enseignements

Intéressé par le numérique et le data marketing ?

Inscrivez-vous à Data Digest, la lettre d'information de Artefact, pour recevoir chaque mois dans votre boîte aux lettres électronique des conseils, des idées et des avis utiles.

Inscrivez-moi !