	{"id":49861,"date":"2021-03-08T13:20:33","date_gmt":"2021-03-08T13:20:33","guid":{"rendered":"https:\/\/www.artefact.com\/?post_type=news&#038;p=49861"},"modified":"2024-09-20T17:45:39","modified_gmt":"2024-09-20T16:45:39","slug":"sales-forecasting-in-retail-what-we-learned-from-the-m5-competition-published-in-medium-tech-blog","status":"publish","type":"blog","link":"https:\/\/www.artefact.com\/fr\/blog\/sales-forecasting-in-retail-what-we-learned-from-the-m5-competition-published-in-medium-tech-blog\/","title":{"rendered":"Pr\u00e9vision des ventes dans le commerce de d\u00e9tail : ce que nous avons appris du concours M5"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1 description\"><p>5 f\u00e9vrier 2021<br \/>\nDans cet article, Maxime Lutel, scientifique de Data, r\u00e9sume les enseignements qu'il a tir\u00e9s du concours de pr\u00e9vision des ventes M5, qui consistait \u00e0 pr\u00e9dire les ventes futures dans plusieurs magasins Walmart. Il vous guidera \u00e0 travers notre solution et discutera du mod\u00e8le d'apprentissage automatique qui a le mieux fonctionn\u00e9 pour cette t\u00e2che.<\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-1 hover-type-none\"><img decoding=\"async\" width=\"300\" height=\"74\" title=\"Moyen Blog\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog.png\" data-orig-src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-300x74.png\" alt class=\"lazyload img-responsive wp-image-60582\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%274000%27%20height%3D%27992%27%20viewBox%3D%270%200%204000%20992%27%3E%3Crect%20width%3D%274000%27%20height%3D%27992%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-200x50.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-400x99.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-600x149.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-800x198.png 800w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/04\/Medium-Blog-1200x298.png 1200w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 300px\" \/><\/span><\/div><\/div><\/div><\/div><\/div><article class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-title title fusion-title-1 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Utiliser l'apprentissage automatique pour relever les d\u00e9fis commerciaux des d\u00e9taillants<\/h2><\/div><div class=\"fusion-text fusion-text-2\"><p>La pr\u00e9cision des pr\u00e9visions de vente est essentielle pour que les entreprises de vente au d\u00e9tail puissent produire la quantit\u00e9 requise au bon moment. Mais m\u00eame si \u00e9viter le gaspillage et les p\u00e9nuries est l'une de leurs principales pr\u00e9occupations, les d\u00e9taillants ont encore une grande marge d'am\u00e9lioration. C'est du moins ce que pensent les employ\u00e9s de Walmart, qui ont lanc\u00e9 en mars 2020 un concours scientifique ouvert data... <a href=\"https:\/\/www.kaggle.com\/c\/m5-forecasting-accuracy\/overview\" target=\"_blank\" rel=\"noopener\">le concours M5<\/a>\u00a0- pour voir comment ils pourraient am\u00e9liorer leurs mod\u00e8les de pr\u00e9vision.<\/p>\n<p>Le concours visait \u00e0 pr\u00e9dire les ventes futures au niveau du produit, sur la base de l'historique des data. Plus de 5 000 \u00e9quipes d'amateurs de data et d'experts en pr\u00e9vision ont discut\u00e9 pendant des mois des m\u00e9thodes, des caract\u00e9ristiques et des mod\u00e8les qui conviendraient le mieux pour r\u00e9soudre ce probl\u00e8me bien connu d'apprentissage automatique. Ces d\u00e9bats ont mis en lumi\u00e8re certains probl\u00e8mes r\u00e9currents rencontr\u00e9s dans presque tous les projets de pr\u00e9vision. Plus important encore, ils ont mis en \u00e9vidence une grande vari\u00e9t\u00e9 d'approches pour les r\u00e9soudre.<\/p>\n<p>Cet article vise \u00e0 r\u00e9sumer quelques\u00a0<strong>les principales id\u00e9es qui se sont d\u00e9gag\u00e9es du d\u00e9fi<\/strong>. Chez Artefact, nous croyons en l'apprentissage par la pratique, nous avons donc d\u00e9cid\u00e9 de tenter notre chance et de coder notre propre solution pour l'illustrer. Nous allons maintenant parcourir l'ensemble du pipeline de pr\u00e9vision et nous arr\u00eater en cours de route pour comprendre ce qui a fonctionn\u00e9 et ce qui a \u00e9chou\u00e9.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-2 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">\u00c9nonc\u00e9 du probl\u00e8me : Pr\u00e9vision hi\u00e9rarchique des s\u00e9ries temporelles<\/h2><\/div><div class=\"fusion-text fusion-text-3\"><p>L'ensemble dataset contient un historique des ventes sur 5 ans, de 2011 \u00e0 2016, pour divers produits et magasins. Certaines informations suppl\u00e9mentaires sont fournies, telles que les prix de vente et les \u00e9v\u00e9nements du calendrier. Data est organis\u00e9 de mani\u00e8re hi\u00e9rarchique : les magasins sont divis\u00e9s en trois \u00e9tats et les produits sont regroup\u00e9s par cat\u00e9gories et sous-cat\u00e9gories.<\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-2 hover-type-none\"><img decoding=\"async\" width=\"700\" height=\"424\" title=\"Image-1-\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-1-.png\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2021\/03\/Image-1-.png\" alt class=\"lazyload img-responsive wp-image-54226\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27700%27%20height%3D%27424%27%20viewBox%3D%270%200%20700%20424%27%3E%3Crect%20width%3D%27700%27%20height%3D%27424%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-1--200x121.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-1--400x242.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-1--600x363.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-1-.png 700w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 700px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-4\"><p>Notre t\u00e2che consiste \u00e0\u00a0<strong>Pr\u00e9vision des ventes pour tous les produits dans chaque magasin, les jours suivant la date de disponibilit\u00e9 dataset<\/strong>. Cela signifie que 30 490 pr\u00e9visions doivent \u00eatre effectu\u00e9es pour chaque jour de l'horizon de pr\u00e9vision.<\/p>\n<p>Cette hi\u00e9rarchie guidera nos choix de mod\u00e9lisation, car les interactions au sein des cat\u00e9gories de produits ou des magasins contiennent des informations tr\u00e8s utiles \u00e0 des fins de pr\u00e9diction. En effet, des articles appartenant aux m\u00eames magasins et aux m\u00eames cat\u00e9gories peuvent avoir une \u00e9volution similaire des ventes ou, au contraire, se cannibaliser les uns les autres. Par cons\u00e9quent, nous allons d\u00e9crire chaque \u00e9chantillon par des caract\u00e9ristiques qui capturent ces interactions, et\u00a0<strong>privil\u00e9gier les approches bas\u00e9es sur l'apprentissage automatique par rapport aux approches pr\u00e9visionnelles traditionnelles<\/strong>, afin de prendre en compte cette information lors de l'apprentissage du mod\u00e8le.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-3 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Deux d\u00e9fis principaux : des valeurs intermittentes et un horizon de pr\u00e9diction \u00e9tendu<\/h2><\/div><div class=\"fusion-text fusion-text-5\"><p>\u00c0 ce stade, vous pensez peut-\u00eatre qu'il s'agit d'un probl\u00e8me de pr\u00e9vision tr\u00e8s courant. Vous avez raison et c'est pour cela qu'il est int\u00e9ressant : il peut se rapporter \u00e0 un large \u00e9ventail d'autres projets, m\u00eame si chaque secteur a ses propres caract\u00e9ristiques. Cependant, ce d\u00e9fi pr\u00e9sente deux sp\u00e9cificit\u00e9s importantes qui rendront la t\u00e2che plus difficile que pr\u00e9vu.<\/p>\n<p>La premi\u00e8re est que les s\u00e9ries temporelles avec lesquelles nous travaillons pr\u00e9sentent de nombreuses valeurs intermittentes, c'est-\u00e0-dire de longues p\u00e9riodes de jours cons\u00e9cutifs sans ventes, comme l'illustre le graphique ci-dessous. Cela peut \u00eatre d\u00fb \u00e0 des ruptures de stock ou \u00e0 une surface d'\u00e9talage limit\u00e9e dans les magasins. Quoi qu'il en soit, cela complique la t\u00e2che, car l'erreur montera en fl\u00e8che si les ventes sont pr\u00e9dites \u00e0 un niveau r\u00e9gulier alors que le produit n'est pas en rayon.<\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-3 hover-type-none\"><img decoding=\"async\" width=\"700\" height=\"355\" title=\"image-2-\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-2-.png\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2021\/03\/image-2-.png\" alt class=\"lazyload img-responsive wp-image-54231\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27700%27%20height%3D%27355%27%20viewBox%3D%270%200%20700%20355%27%3E%3Crect%20width%3D%27700%27%20height%3D%27355%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-2--200x101.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-2--400x203.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-2--600x304.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-2-.png 700w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 700px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-6\"><p>La seconde provient de la t\u00e2che elle-m\u00eame, et plus pr\u00e9cis\u00e9ment de la\u00a0<strong>taille de l'horizon de pr\u00e9diction<\/strong>. Les concurrents doivent \u00e9tablir des pr\u00e9visions non seulement pour la semaine suivante, mais aussi pour une p\u00e9riode de quatre semaines. Pr\u00e9f\u00e9reriez-vous vous fier aux pr\u00e9visions m\u00e9t\u00e9orologiques pour le lendemain ou pour le mois suivant ? Il en va de m\u00eame pour les pr\u00e9visions de ventes : un horizon de pr\u00e9vision \u00e9tendu rend le probl\u00e8me plus complexe, car l'incertitude augmente avec le temps.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-4 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Ing\u00e9nierie des fonctionnalit\u00e9s - Mod\u00e9lisation des facteurs d\u00e9terminants des ventes<\/h2><\/div><div class=\"fusion-text fusion-text-7\"><p>Maintenant que nous avons compris la t\u00e2che \u00e0 accomplir, nous pouvons commencer \u00e0 calculer les caract\u00e9ristiques mod\u00e9lisant tous les ph\u00e9nom\u00e8nes susceptibles d'affecter l'\u00e9volution des ventes. L'objectif est ici de d\u00e9crire chaque triplet Jour x Produit x Magasin par un ensemble d'indicateurs qui saisissent les effets de facteurs tels que la saisonnalit\u00e9, les tendances ou les prix.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-5 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Saisonnalit\u00e9<\/h2><\/div><div class=\"fusion-text fusion-text-8\"><p>Plut\u00f4t que d'utiliser la date de vente directement comme indicateur, il est g\u00e9n\u00e9ralement plus pertinent de la d\u00e9composer en plusieurs \u00e9l\u00e9ments pour caract\u00e9riser la saisonnalit\u00e9 : l'ann\u00e9e, le mois, le num\u00e9ro de semaine,\u00a0<strong>jour de la semaine<\/strong>... Ce dernier point est particuli\u00e8rement int\u00e9ressant car le probl\u00e8me pr\u00e9sente une forte p\u00e9riodicit\u00e9 hebdomadaire : les volumes de vente sont plus importants le week-end, lorsque les gens passent plus de temps dans les supermarch\u00e9s.<\/p>\n<p><strong>Calendrier des \u00e9v\u00e9nements<\/strong>\u00a0tels que les vacances ou les finales de la NBA ont \u00e9galement un fort impact saisonnier. Une caract\u00e9ristique a \u00e9t\u00e9 cr\u00e9\u00e9e pour chaque \u00e9v\u00e9nement, avec les valeurs suivantes :<\/p>\n<\/div><ul style=\"--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;\" class=\"fusion-checklist fusion-checklist-1 fusion-checklist-default type-icons\"><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Valeurs n\u00e9gatives pour les 15 jours pr\u00e9c\u00e9dant l'\u00e9v\u00e9nement (-15 \u00e0 -1)<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>0 le jour J<\/p>\n<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Valeurs positives pour les 15 jours suivant l'\u00e9v\u00e9nement (1 \u00e0 15)<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Pas de valeur pour les p\u00e9riodes \u00e0 plus de 15 jours de l'\u00e9v\u00e9nement<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-9\"><p>L'id\u00e9e est de mod\u00e9liser l'impact saisonnier non seulement le jour J, mais aussi avant et apr\u00e8s. Par exemple, un produit qui sera souvent offert comme cadeau de No\u00ebl conna\u00eetra un pic de ventes les jours pr\u00e9c\u00e9dents et une chute juste apr\u00e8s.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-6 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Tendances<\/h2><\/div><div class=\"fusion-text fusion-text-10\"><p>Les tendances r\u00e9centes fournissent \u00e9galement des informations utiles sur les ventes futures et sont mod\u00e9lis\u00e9es gr\u00e2ce \u00e0\u00a0<strong>caract\u00e9ristiques du d\u00e9calage<\/strong>. Un d\u00e9calage est la valeur de la variable cible d\u00e9cal\u00e9e d'une certaine p\u00e9riode. Pour un article sp\u00e9cifique dans un magasin donn\u00e9, la valeur d\u00e9cal\u00e9e d'une semaine correspondrait aux ventes r\u00e9alis\u00e9es il y a une semaine pour cet article et ce magasin. Diff\u00e9rentes valeurs de d\u00e9calage peuvent \u00eatre envisag\u00e9es, et la moyenne de plusieurs d\u00e9calages est \u00e9galement calcul\u00e9e, afin d'obtenir des pr\u00e9dicteurs plus robustes. Les d\u00e9calages peuvent \u00e9galement \u00eatre calcul\u00e9s sur des ventes agr\u00e9g\u00e9es pour saisir des tendances plus globales, par exemple au niveau du magasin ou de la cat\u00e9gorie de produits.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-7 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Tarification<\/h2><\/div><div class=\"fusion-text fusion-text-11\"><p>Le prix d'un produit peut varier d'un magasin \u00e0 l'autre, voire d'une semaine \u00e0 l'autre au sein d'un m\u00eame magasin. Ces variations influencent fortement les ventes et doivent donc \u00eatre d\u00e9crites par certaines caract\u00e9ristiques. plut\u00f4t que par des prix absolus,\u00a0<strong>les diff\u00e9rences de prix relatifs entre les produits concern\u00e9s sont plus susceptibles d'expliquer l'\u00e9volution des ventes<\/strong>. C'est pourquoi les pr\u00e9dicteurs suivants ont \u00e9t\u00e9 calcul\u00e9s :<\/p>\n<\/div><ul style=\"--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;\" class=\"fusion-checklist fusion-checklist-2 fusion-checklist-default type-icons\"><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Diff\u00e9rence relative entre le prix actuel d'un article et son prix moyen historique, pour mettre en \u00e9vidence l'impact des offres promotionnelles.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Diff\u00e9rence relative de prix avec le m\u00eame article vendu dans d'autres magasins, afin de comprendre si le magasin propose un prix attractif ou non.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">\n<p>Diff\u00e9rence relative de prix avec d'autres articles vendus dans le m\u00eame magasin et dans la m\u00eame cat\u00e9gorie de produits, afin de tenir compte de certains effets de cannibalisation.<\/p>\n<\/div><\/li><\/ul><div class=\"fusion-title title fusion-title-8 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Codage des variables cat\u00e9gorielles<\/h2><\/div><div class=\"fusion-text fusion-text-12\"><p>Les variables cat\u00e9gorielles telles que l'\u00e9tat, le magasin, le nom du produit ou sa cat\u00e9gorie ont \u00e9galement un pouvoir pr\u00e9dictif important. Ces informations doivent \u00eatre cod\u00e9es en caract\u00e9ristiques pour aider le mod\u00e8le \u00e0 tirer parti de la hi\u00e9rarchie dataset. L'encodage \u00e0 chaud n'est pas une option ici car certaines de ces variables cat\u00e9gorielles ont une cardinalit\u00e9 tr\u00e8s \u00e9lev\u00e9e (3049 produits distincts). Au lieu de cela, nous avons utilis\u00e9 un\u00a0<strong>codage cible ordonn\u00e9<\/strong>, ce qui signifie que chaque observation est cod\u00e9e par la moyenne des ventes des observations pass\u00e9es ayant la m\u00eame valeur cat\u00e9gorielle. L'ensemble data est ordonn\u00e9 en fonction du temps pour cette t\u00e2che afin d'\u00e9viter les fuites de data.<\/p>\n<p>Toutes les variables cat\u00e9gorielles et certaines de leurs combinaisons ont \u00e9t\u00e9 cod\u00e9es avec cette m\u00e9thode. Il en r\u00e9sulte des caract\u00e9ristiques tr\u00e8s informatives, la meilleure \u00e9tant le codage de la combinaison produit et magasin. Si vous souhaitez exp\u00e9rimenter d'autres codeurs, vous pouvez trouver un large \u00e9ventail de m\u00e9thodes\u00a0<a href=\"http:\/\/contrib.scikit-learn.org\/category_encoders\/\" target=\"_blank\" rel=\"noopener\">ici<\/a>.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-9 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">La perte de Tweedie pour g\u00e9rer les valeurs intermittentes<\/h2><\/div><div class=\"fusion-text fusion-text-13\"><p>Diff\u00e9rentes strat\u00e9gies peuvent \u00eatre utilis\u00e9es pour traiter le probl\u00e8me des valeurs intermittentes. Certains participants ont d\u00e9cid\u00e9 de cr\u00e9er deux mod\u00e8les distincts : l'un pour pr\u00e9dire si le produit sera disponible ou non un jour donn\u00e9, et l'autre pour pr\u00e9voir les ventes. Comme beaucoup d'autres, nous avons choisi une autre option, qui consiste \u00e0 s'appuyer sur une fonction objective adapt\u00e9e au probl\u00e8me : la fonction\u00a0<strong>perte de tweedie<\/strong>.<\/p>\n<p>Sans entrer dans les d\u00e9tails math\u00e9matiques, essayons de comprendre pourquoi cette fonction de perte est appropri\u00e9e \u00e0 notre probl\u00e8me, en comparant la distribution des ventes dans la formation data et la distribution tweedie :<\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-4 hover-type-none\"><img decoding=\"async\" width=\"463\" height=\"169\" title=\"image-3-\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-3-.png\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2021\/03\/image-3-.png\" alt class=\"lazyload img-responsive wp-image-54241\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27463%27%20height%3D%27169%27%20viewBox%3D%270%200%20463%20169%27%3E%3Crect%20width%3D%27463%27%20height%3D%27169%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-3--200x73.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-3--400x146.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-3-.png 463w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 463px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-14\"><p>Elles se ressemblent beaucoup et ont toutes deux des valeurs concentr\u00e9es autour de 0. En d\u00e9finissant la perte de tweedie comme fonction objective, vous obligez le mod\u00e8le \u00e0\u00a0<strong class=\"ia ld\">maximiser la probabilit\u00e9 de cette distribution<\/strong>\u00a0et donc de pr\u00e9dire la bonne quantit\u00e9 de 0. En outre, cette fonction de perte est assortie d'un param\u00e8tre - dont les valeurs sont comprises entre 1 et 2 - qui peut \u00eatre ajust\u00e9 pour correspondre \u00e0 la distribution du probl\u00e8me en question :<\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-5 hover-type-none\"><img decoding=\"async\" width=\"696\" height=\"157\" title=\"image-4-\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-4-.png\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2021\/03\/image-4-.png\" alt class=\"lazyload img-responsive wp-image-54246\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27696%27%20height%3D%27157%27%20viewBox%3D%270%200%20696%20157%27%3E%3Crect%20width%3D%27696%27%20height%3D%27157%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-4--200x45.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-4--400x90.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-4--600x135.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-4-.png 696w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 696px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-15\"><p>Sur la base de notre distribution dataset, nous pouvons nous attendre \u00e0 ce que la valeur optimale soit comprise entre 1 et 1,5, mais pour \u00eatre plus pr\u00e9cis, nous ajusterons ce param\u00e8tre plus tard avec la validation crois\u00e9e. Cette fonction objective est \u00e9galement disponible pour d'autres mod\u00e8les de gradient boosting tels que XGBoost ou CatBoost, et vaut donc la peine d'\u00eatre essay\u00e9e si vous avez affaire \u00e0 des valeurs intermittentes.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-10 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Comment pr\u00e9voir 28 jours \u00e0 l'avance ? Tirer le meilleur parti des caract\u00e9ristiques de d\u00e9calage<\/h2><\/div><div class=\"fusion-text fusion-text-16\"><p>Comme expliqu\u00e9 ci-dessus, les caract\u00e9ristiques de d\u00e9calage sont des ventes d\u00e9cal\u00e9es d'une p\u00e9riode donn\u00e9e. Leur valeur d\u00e9pend donc de l'endroit o\u00f9 vous vous situez dans l'horizon de pr\u00e9vision. Les ventes r\u00e9alis\u00e9es un jour J particulier peuvent \u00eatre consid\u00e9r\u00e9es comme un d\u00e9calage d'un jour si vous pr\u00e9voyez un jour \u00e0 l'avance, ou comme un d\u00e9calage de 28 jours si vous pr\u00e9voyez 28 jours \u00e0 l'avance. Le diagramme suivant illustre ce point :<\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-6 hover-type-none\"><img decoding=\"async\" width=\"700\" height=\"214\" title=\"image-5\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-5.png\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2021\/03\/image-5.png\" alt class=\"lazyload img-responsive wp-image-54251\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27700%27%20height%3D%27214%27%20viewBox%3D%270%200%20700%20214%27%3E%3Crect%20width%3D%27700%27%20height%3D%27214%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-5-200x61.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-5-400x122.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-5-600x183.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-5.png 700w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 700px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-17\"><p>Ce concept est important pour comprendre quelles sont les caract\u00e9ristiques qui seront utilis\u00e9es.\u00a0<strong>disponible au moment de la pr\u00e9diction<\/strong>. Ici, nous sommes au jour J et nous souhaitons pr\u00e9voir les ventes pour les 28 jours suivants. Si nous voulons utiliser le m\u00eame mod\u00e8le - et donc les m\u00eames caract\u00e9ristiques - pour faire des pr\u00e9visions pour l'ensemble de l'horizon de pr\u00e9vision, nous ne pouvons utiliser que les d\u00e9calages disponibles pour pr\u00e9voir tous les jours entre J+1 et J+28. Cela signifie que si nous utilisons la caract\u00e9ristique de d\u00e9calage d'un jour pour entra\u00eener le mod\u00e8le, cette variable devra \u00e9galement \u00eatre remplie pour les pr\u00e9visions \u00e0 J+2, J+3, ... et J+28, alors qu'elle se r\u00e9f\u00e8re \u00e0 des dates dans l'avenir.<\/p>\n<p>N\u00e9anmoins, les d\u00e9calages sont probablement la\u00a0<strong>caract\u00e9ristiques ayant le plus grand pouvoir pr\u00e9dictif<\/strong>, Il est donc important de trouver un moyen d'exploiter au mieux ces informations. Nous avons envisag\u00e9 trois options pour contourner ce probl\u00e8me, voyons ce qu'il en est.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-11 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Option 1 : Un mod\u00e8le pour toutes les semaines<\/h2><\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-7 hover-type-none\"><img decoding=\"async\" width=\"700\" height=\"397\" title=\"image-6\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-6.png\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2021\/03\/image-6.png\" alt class=\"lazyload img-responsive wp-image-54256\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27700%27%20height%3D%27397%27%20viewBox%3D%270%200%20700%20397%27%3E%3Crect%20width%3D%27700%27%20height%3D%27397%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-6-200x113.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-6-400x227.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-6-600x340.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-6.png 700w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 700px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-18\"><p>La premi\u00e8re option est la plus \u00e9vidente. Elle consiste \u00e0 utiliser le m\u00eame mod\u00e8le pour faire des pr\u00e9visions pour toutes les semaines de l'horizon de pr\u00e9vision. Comme nous venons de l'expliquer, elle s'accompagne d'une contrainte de taille : seules les caract\u00e9ristiques disponibles pour les pr\u00e9visions \u00e0 J+28 peuvent \u00eatre utilis\u00e9es. Il faut donc\u00a0<strong class=\"ia ld\">se d\u00e9barrasser de toutes les informations fournies par les 27 derniers d\u00e9calages<\/strong>. C'est dommage car les d\u00e9calages les plus r\u00e9cents sont aussi les plus instructifs, nous avons donc envisag\u00e9 une autre option.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-12 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Option 2 : mod\u00e8les hebdomadaires<\/h2><\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-8 hover-type-none\"><img decoding=\"async\" width=\"700\" height=\"396\" title=\"image-7-\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-7-.png\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2021\/03\/image-7-.png\" alt class=\"lazyload img-responsive wp-image-54261\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27700%27%20height%3D%27396%27%20viewBox%3D%270%200%20700%20396%27%3E%3Crect%20width%3D%27700%27%20height%3D%27396%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-7--200x113.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-7--400x226.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-7--600x339.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-7-.png 700w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 700px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-19\"><p>Cette alternative consiste \u00e0 former un mod\u00e8le LightGBM diff\u00e9rent pour chaque semaine. Sur le diagramme ci-dessus, chaque mod\u00e8le apprend \u00e0 partir des d\u00e9calages les plus r\u00e9cents possibles en fonction de la contrainte impos\u00e9e par son horizon de pr\u00e9diction. En suivant la m\u00eame logique que l'option pr\u00e9c\u00e9dente, cela signifie que chaque mod\u00e8le peut tirer parti de tous les d\u00e9calages, \u00e0 l'exception de ceux qui sont plus r\u00e9cents que le jour le plus \u00e9loign\u00e9 \u00e0 pr\u00e9dire.<\/p>\n<p>Plus pr\u00e9cis\u00e9ment :<\/p>\n<\/div><ul style=\"--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;\" class=\"fusion-checklist fusion-checklist-3 fusion-checklist-default type-icons\"><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Le mod\u00e8le 1 \u00e9tablit des pr\u00e9visions pour les jours 1 \u00e0 7, en s'appuyant sur tous les d\u00e9calages, \u00e0 l'exception des 6 plus r\u00e9cents.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Le mod\u00e8le 2 \u00e9tablit des pr\u00e9visions pour les jours 8 \u00e0 14, en s'appuyant sur tous les d\u00e9calages, \u00e0 l'exception des 13 plus r\u00e9cents.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Le mod\u00e8le 3 \u00e9tablit des pr\u00e9visions pour les jours 15 \u00e0 21, en s'appuyant sur tous les d\u00e9calages, \u00e0 l'exception des 20 plus r\u00e9cents.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Le mod\u00e8le 4 \u00e9tablit des pr\u00e9visions pour les jours 22 \u00e0 28, en s'appuyant sur tous les d\u00e9calages, \u00e0 l'exception des 27 plus r\u00e9cents, comme dans l'option 1.<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-20\"><p>Cette m\u00e9thode permet de<strong>\u00a0de mieux exploiter les informations en retard pour les 3 premi\u00e8res semaines et d'am\u00e9liorer ainsi la pr\u00e9cision des pr\u00e9visions de notre solution.<\/strong>. Cela en valait la peine car il s'agissait d'un concours Kaggle, mais...\u00a0<strong>pour un projet industrialis\u00e9, les questions de complexit\u00e9, de maintenance et d'interpr\u00e9tabilit\u00e9 doivent \u00e9galement \u00eatre prises en consid\u00e9ration<\/strong>.<\/p>\n<p>En effet, cette option pourrait \u00eatre co\u00fbteuse en termes de calcul et, si nous visons un d\u00e9ploiement \u00e0 l'\u00e9chelle d'un pays entier, elle n\u00e9cessiterait de maintenir des centaines de mod\u00e8les en direct. Dans ce cas, il serait n\u00e9cessaire d'\u00e9valuer si l'augmentation des performances est suffisamment importante pour justifier cette mise en \u0153uvre plus complexe.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-13 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Option 3 : Mod\u00e9lisation r\u00e9cursive<\/h2><\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-9 hover-type-none\"><img decoding=\"async\" width=\"700\" height=\"388\" title=\"image-8\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-8.png\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2021\/03\/image-8.png\" alt class=\"lazyload img-responsive wp-image-54266\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27700%27%20height%3D%27388%27%20viewBox%3D%270%200%20700%20388%27%3E%3Crect%20width%3D%27700%27%20height%3D%27388%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-8-200x111.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-8-400x222.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-8-600x333.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/image-8.png 700w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 700px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-21\"><p>La derni\u00e8re option utilise \u00e9galement des mod\u00e8les hebdomadaires, mais cette fois-ci de mani\u00e8re r\u00e9cursive.\u00a0<strong>Mod\u00e9lisation r\u00e9cursive<\/strong>\u00a0signifie que les pr\u00e9dictions g\u00e9n\u00e9r\u00e9es pour une semaine donn\u00e9e seront utilis\u00e9es comme caract\u00e9ristiques de d\u00e9calage pour les semaines suivantes. Cela se produit\u00a0<strong>s\u00e9quentiellement<\/strong>Option 1 : nous faisons d'abord des pr\u00e9visions pour la premi\u00e8re semaine en utilisant tous les d\u00e9calages \u00e0 l'exception des 6 plus r\u00e9cents. Ensuite, nous pr\u00e9voyons la deuxi\u00e8me semaine en utilisant nos pr\u00e9visions pr\u00e9c\u00e9dentes comme d\u00e9calages d'une semaine, au lieu d'exclure d'autres d\u00e9calages comme dans l'option 2. En r\u00e9p\u00e9tant le m\u00eame processus, nous disposons toujours de d\u00e9calages r\u00e9cents, m\u00eame pour les semaines 3 et 4, ce qui nous permet d'exploiter cette information pour entra\u00eener les mod\u00e8les.<\/p>\n<p>Cette m\u00e9thode vaut la peine d'\u00eatre test\u00e9e, mais gardez \u00e0 l'esprit qu'elle est assez difficile \u00e0 mettre en \u0153uvre.\u00a0<strong>instable, les erreurs se propageant d'une semaine \u00e0 l'autre<\/strong>. Si le mod\u00e8le de la premi\u00e8re semaine commet des erreurs importantes, ces erreurs seront consid\u00e9r\u00e9es comme la v\u00e9rit\u00e9 par le mod\u00e8le suivant, qui sera alors in\u00e9vitablement peu performant, et ainsi de suite. C'est pourquoi nous avons d\u00e9cid\u00e9 de\u00a0<strong>s'en tenir \u00e0 l'option 2<\/strong>, qui semble plus fiable.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-14 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Assurer la robustesse des mod\u00e8les par une validation crois\u00e9e appropri\u00e9e : Pourquoi la validation crois\u00e9e est essentielle pour les s\u00e9ries temporelles<\/h2><\/div><div class=\"fusion-text fusion-text-22\"><p>Dans tout projet d'apprentissage automatique, l'adoption d'une strat\u00e9gie de validation crois\u00e9e appropri\u00e9e est essentielle pour simuler correctement la pr\u00e9cision hors \u00e9chantillon, s\u00e9lectionner minutieusement les hyperparam\u00e8tres et \u00e9viter l'ajustement excessif. En ce qui concerne les pr\u00e9visions, il convient de proc\u00e9der avec pr\u00e9caution car il existe une d\u00e9pendance temporelle entre les observations qui doit \u00eatre pr\u00e9serv\u00e9e. En d'autres termes, <strong>nous voulons emp\u00eacher le mod\u00e8le de se projeter dans l'avenir lorsque nous le formons<\/strong>.<\/p>\n<p>La p\u00e9riode de validation au cours de laquelle le mod\u00e8le est test\u00e9 rev\u00eat \u00e9galement une plus grande importance lorsqu'il s'agit de s\u00e9ries temporelles. Les performances du mod\u00e8le et l'ensemble optimal d'hyperparam\u00e8tres peuvent varier consid\u00e9rablement en fonction de la p\u00e9riode au cours de laquelle le mod\u00e8le est form\u00e9 et test\u00e9. <strong>Par cons\u00e9quent, notre objectif est de trouver les param\u00e8tres les plus susceptibles de maximiser les performances non pas sur une p\u00e9riode al\u00e9atoire, mais sur la p\u00e9riode que nous voulons pr\u00e9voir<\/strong>, c'est-\u00e0-dire les 4 prochaines semaines.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-15 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Adapter le processus de validation au probl\u00e8me pos\u00e9<\/h2><\/div><div class=\"fusion-text fusion-text-23\"><p>Pour atteindre cet objectif, nous avons s\u00e9lectionn\u00e9 5 ensembles de validation qui ont \u00e9t\u00e9\u00a0<strong>pertinentes pour la p\u00e9riode de pr\u00e9vision<\/strong>. Le diagramme ci-dessous montre comment ils sont r\u00e9partis dans le temps. Pour chaque pli de validation crois\u00e9e, le mod\u00e8le est form\u00e9 avec diverses combinaisons de param\u00e8tres sur l'ensemble d'apprentissage et \u00e9valu\u00e9 sur l'ensemble de validation \u00e0 l'aide de l'erreur quadratique moyenne.<\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-10 hover-type-none\"><img decoding=\"async\" width=\"700\" height=\"314\" title=\"Image-9-\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-9-.png\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2021\/03\/Image-9-.png\" alt class=\"lazyload img-responsive wp-image-54271\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27700%27%20height%3D%27314%27%20viewBox%3D%270%200%20700%20314%27%3E%3Crect%20width%3D%27700%27%20height%3D%27314%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-9--200x90.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-9--400x179.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-9--600x269.png 600w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-9-.png 700w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 700px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-24\"><p>Les plis 1, 2 et 3 visent \u00e0 identifier les param\u00e8tres qui auraient maximis\u00e9 la performance sur des p\u00e9riodes r\u00e9centes, essentiellement sur les trois derniers mois. Le probl\u00e8me est que ces trois mois peuvent avoir des sp\u00e9cificit\u00e9s diff\u00e9rentes de celles de la p\u00e9riode \u00e0 venir que nous voulons pr\u00e9voir. Par exemple, imaginons que les magasins aient lanc\u00e9 une vaste campagne de promotion au cours des derniers mois et qu'elle se soit arr\u00eat\u00e9e aujourd'hui.<\/p>\n<p>Ces promotions auraient probablement un impact sur le comportement du mod\u00e8le, mais il serait risqu\u00e9 de se baser uniquement sur ces p\u00e9riodes r\u00e9centes pour l'ajuster, car elles ne sont pas repr\u00e9sentatives de ce qui va se passer par la suite.<\/p>\n<p>Pour att\u00e9nuer ce risque, nous avons \u00e9galement inclus les plis 4 et 5, qui correspondent \u00e0 la p\u00e9riode de pr\u00e9vision d\u00e9cal\u00e9e respectivement de 1 et 2 ans. Ces p\u00e9riodes sont susceptibles d'\u00eatre similaires car le probl\u00e8me pr\u00e9sente une forte saisonnalit\u00e9 annuelle, ce qui est souvent le cas dans le commerce de d\u00e9tail. Dans le cas d'une p\u00e9riodicit\u00e9 diff\u00e9rente, nous pourrions choisir n'importe quelle strat\u00e9gie de validation crois\u00e9e plus logique d'un point de vue commercial. Au final, nous avons s\u00e9lectionn\u00e9 la combinaison d'hyperparam\u00e8tres pr\u00e9sentant l'erreur la plus faible sur les 5 plis pour entra\u00eener le mod\u00e8le final.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-16 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">R\u00e9sultats<\/h2><\/div><div class=\"fusion-text fusion-text-25\"><p>Les diff\u00e9rentes techniques mentionn\u00e9es ci-dessus nous ont permis d'atteindre une\u00a0<strong>0,59 RMSSE pond\u00e9r\u00e9<\/strong>\u00a0- la m\u00e9trique utilis\u00e9e sur Kaggle - ce qui \u00e9quivaut \u00e0 une pr\u00e9cision de pr\u00e9vision pond\u00e9r\u00e9e de 82,8%. Le graphique ci-dessous r\u00e9sume la performance incr\u00e9mentale g\u00e9n\u00e9r\u00e9e par chaque \u00e9tape :<\/p>\n<\/div><div class=\"fusion-image-element\" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\"fusion-imageframe imageframe-none imageframe-11 hover-type-none\"><img decoding=\"async\" width=\"454\" height=\"262\" title=\"Image-10\" src=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-10.png\" data-orig-src=\"https:\/\/www.artefact.com\/wp-content\/uploads\/2021\/03\/Image-10.png\" alt class=\"lazyload img-responsive wp-image-54276\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27454%27%20height%3D%27262%27%20viewBox%3D%270%200%20454%20262%27%3E%3Crect%20width%3D%27454%27%20height%3D%27262%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-10-200x115.png 200w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-10-400x231.png 400w, https:\/\/www.artefact.com\/\/wp-content\/uploads\/2021\/03\/Image-10.png 454w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 640px) 100vw, 454px\" \/><\/span><\/div><div class=\"fusion-text fusion-text-26\"><p>Ces chiffres sont indicatifs : l'augmentation de la pr\u00e9cision d\u00e9pend \u00e9galement de l'ordre dans lequel chaque \u00e9tape est mise en \u0153uvre.<\/p>\n<\/div><div class=\"fusion-title title fusion-title-17 fusion-sep-none fusion-title-text fusion-title-size-two\" style=\"--awb-margin-bottom-small:8px;\"><h2 class=\"fusion-title-heading title-heading-left fusion-responsive-typography-calculated\" style=\"margin:0;--fontSize:50;line-height:1.2;\">Principaux enseignements<\/h2><\/div><div class=\"fusion-text fusion-text-27\"><p>Nous avons beaucoup appris de ce d\u00e9fi gr\u00e2ce aux id\u00e9es partag\u00e9es par les participants et nous esp\u00e9rons qu'il vous a \u00e9galement donn\u00e9 mati\u00e8re \u00e0 r\u00e9flexion. Voici les principaux enseignements que nous en avons tir\u00e9s :<\/p>\n<\/div><ul style=\"--awb-line-height:27.2px;--awb-icon-width:27.2px;--awb-icon-height:27.2px;--awb-icon-margin:11.2px;--awb-content-margin:38.4px;\" class=\"fusion-checklist fusion-checklist-4 fusion-checklist-default type-icons\"><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Travaillez sur un sous-ensemble restreint mais repr\u00e9sentatif de data afin d'it\u00e9rer rapidement.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Faites tr\u00e8s attention aux fuites data dans le processus d'ing\u00e9nierie des caract\u00e9ristiques : assurez-vous que toutes les caract\u00e9ristiques que vous calculez seront disponibles au moment de la pr\u00e9diction.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Choisissez une architecture de mod\u00e8le qui vous permette d'exploiter au maximum les d\u00e9calages, mais gardez \u00e9galement \u00e0 l'esprit les consid\u00e9rations de complexit\u00e9 si vous souhaitez passer \u00e0 la production.<\/div><\/li><li class=\"fusion-li-item\" style=\"\"><span class=\"icon-wrapper circle-no\"><i class=\"fusion-li-icon awb-icon-check\" aria-hidden=\"true\"><\/i><\/span><div class=\"fusion-li-item-content\">Mettez en place une strat\u00e9gie de validation crois\u00e9e adapt\u00e9e \u00e0 votre probl\u00e8me d'entreprise afin d'\u00e9valuer correctement les performances de vos exp\u00e9riences.<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-28\"><p>Merci beaucoup pour votre lecture et n'h\u00e9sitez pas \u00e0 nous contacter si vous avez des commentaires sur le sujet !<\/p>\n<\/div><\/div><\/div><\/div><\/article><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:calc( 1440px + 20px );margin-left: calc(-20px \/ 2 );margin-right: calc(-20px \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:10px;--awb-margin-bottom-large:0px;--awb-spacing-left-large:10px;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:10px;--awb-spacing-left-medium:10px;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:10px;--awb-spacing-left-small:10px;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-29\"><p>Cet article a \u00e9t\u00e9 publi\u00e9 pour la premi\u00e8re fois sur le site Artefact Tech Blog sur Medium.<\/p>\n<\/div><div ><a class=\"fusion-button button-flat fusion-button-default-size button-default fusion-button-default button-1 fusion-button-default-span fusion-button-default-type button-primary-medium\" target=\"_self\" href=\"https:\/\/medium.com\/artefact-engineering-and-data-science\" rel=\"noopener\"><span class=\"fusion-button-text awb-button__text awb-button__text--default\">Voir l'article<\/span><\/a><\/div><\/div><\/div><\/div><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>5 f\u00e9vrier 2021<br \/>\nDans cet article, Maxime Lutel, scientifique de Data, r\u00e9sume les enseignements qu'il a tir\u00e9s du concours de pr\u00e9vision des ventes M5, qui consistait \u00e0 pr\u00e9dire les ventes futures dans plusieurs magasins Walmart. Il vous guidera \u00e0 travers notre solution et discutera du mod\u00e8le d'apprentissage automatique qui a le mieux fonctionn\u00e9 pour cette t\u00e2che.<\/p>","protected":false},"featured_media":49866,"parent":0,"template":"","meta":{"_acf_changed":false,"ep_exclude_from_search":false},"blog-category":[2995],"blog-language":[2991],"class_list":["post-49861","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog-category-ai-technology","blog-language-en"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/blog\/49861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/types\/blog"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/media\/49866"}],"wp:attachment":[{"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/media?parent=49861"}],"wp:term":[{"taxonomy":"blog-category","embeddable":true,"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/blog-category?post=49861"},{"taxonomy":"blog-language","embeddable":true,"href":"https:\/\/www.artefact.com\/fr\/wp-json\/wp\/v2\/blog-language?post=49861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}