	{"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\/nl\/blog\/sales-forecasting-in-retail-what-we-learned-from-the-m5-competition-published-in-medium-tech-blog\/","title":{"rendered":"Verkoopprognoses in de detailhandel: wat we hebben geleerd van de M5-competitie"},"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 februari 2021<br \/>\nIn dit artikel geeft Data-wetenschapper Maxime Lutel een overzicht van zijn bevindingen van de M5-verkoopprognosewedstrijd, die bestond uit het voorspellen van toekomstige verkopen in verschillende Walmart-winkels. Hij loopt met u door onze oplossing en bespreekt welk machine-learningmodel het beste werkte voor deze taak.<\/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=\"Medium 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;\">Machine learning gebruiken om de zakelijke uitdagingen van retailers op te lossen<\/h2><\/div><div class=\"fusion-text fusion-text-2\"><p>Nauwkeurige verkoopprognoses zijn essentieel voor detailhandelsbedrijven om de vereiste hoeveelheid op het juiste moment te produceren. Maar zelfs als het voorkomen van verspilling en tekorten een van hun belangrijkste zorgen is, hebben detailhandelaars nog veel ruimte voor verbetering. Tenminste, dat is wat mensen die bij Walmart werken denken, aangezien zij in maart 2020 een open data wetenschapsuitdaging lanceerden-... <a href=\"https:\/\/www.kaggle.com\/c\/m5-forecasting-accuracy\/overview\" target=\"_blank\" rel=\"noopener\">de M5-competitie<\/a>\u00a0- om te zien hoe ze hun voorspellingsmodellen konden verbeteren.<\/p>\n<p>De wedstrijd was gericht op het voorspellen van toekomstige verkopen op productniveau, gebaseerd op historische data. Meer dan 5000 teams van data liefhebbers en voorspellingsdeskundigen hebben maandenlang gediscussieerd over de methoden, kenmerken en modellen die het beste zouden werken om dit bekende machine learning probleem aan te pakken. Deze debatten brachten een aantal terugkerende problemen aan het licht die in bijna alle voorspellingsprojecten voorkomen. En nog belangrijker, ze brachten een grote verscheidenheid aan benaderingen aan het licht om ze aan te pakken.<\/p>\n<p>Dit artikel probeert een aantal\u00a0<strong>belangrijkste inzichten die uit de uitdaging naar voren kwamen<\/strong>. Bij Artefact geloven we in al doende leren, dus we besloten het erop te wagen en onze eigen oplossing te coderen om dit te illustreren. Laten we nu de hele prognosepijplijn doorlopen en onderweg stoppen om te begrijpen wat werkte en wat mislukte.<\/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;\">Probleemstelling: Hi\u00ebrarchische tijdreeksvoorspelling<\/h2><\/div><div class=\"fusion-text fusion-text-3\"><p>De dataset bevat historische verkopen over 5 jaar, van 2011 tot 2016, voor verschillende producten en winkels. Er wordt wat extra informatie gegeven, zoals verkoopprijzen en kalendergebeurtenissen. Data is hi\u00ebrarchisch georganiseerd: winkels zijn onderverdeeld in 3 staten, en producten zijn gegroepeerd in categorie\u00ebn en subcategorie\u00ebn.<\/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=\"Afbeelding-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>Het is onze taak om\u00a0<strong>de verkoop voorspellen voor alle producten in elke winkel, op de dagen direct na de beschikbare dataset<\/strong>. Dit betekent dat er 30 490 voorspellingen moeten worden gedaan voor elke dag in de voorspellingshorizon.<\/p>\n<p>Deze hi\u00ebrarchie zal onze modelkeuzes sturen, omdat interacties binnen productcategorie\u00ebn of winkels zeer nuttige informatie bevatten voor voorspellingsdoeleinden. Artikelen in dezelfde winkels en categorie\u00ebn kunnen namelijk een vergelijkbare verkoopevolutie hebben, of ze kunnen elkaar juist kannibaliseren. Daarom gaan we elk monster beschrijven aan de hand van kenmerken die deze interacties vastleggen, en\u00a0<strong>op machine learning gebaseerde benaderingen de voorkeur geven boven traditionele voorspellingen<\/strong>, om met deze informatie rekening te houden bij het trainen van het model.<\/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;\">Twee belangrijke uitdagingen: intermitterende waarden en een langere voorspellingshorizon<\/h2><\/div><div class=\"fusion-text fusion-text-5\"><p>In dit stadium denkt u misschien dat het een heel gewoon voorspellingsprobleem is. U hebt gelijk en daarom is het interessant: het kan betrekking hebben op een groot aantal andere projecten, ook al heeft elke bedrijfstak zijn eigen kenmerken. Deze uitdaging heeft echter 2 belangrijke specifieke kenmerken die de taak moeilijker maken dan verwacht.<\/p>\n<p>De eerste is dat de tijdreeksen waarmee we werken veel intermitterende waarden hebben, d.w.z. lange perioden van opeenvolgende dagen zonder verkoop, zoals ge\u00efllustreerd op de grafiek hieronder. Dit kan het gevolg zijn van stock-outs of beperkte schapruimte in winkels. In elk geval bemoeilijkt dit de taak, omdat de fout enorm zal toenemen als de verkoop op een regelmatig niveau wordt voorspeld terwijl het product niet in de schappen ligt.<\/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=\"afbeelding-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>De tweede komt van de taak zelf, en meer precies van de\u00a0<strong>grootte van de voorspellingshorizon<\/strong>. Concurrenten moeten niet alleen voorspellingen voor de volgende week maken, maar voor een periode van 4 weken. Vertrouwt u liever op de weersvoorspelling voor de volgende dag of voor over 1 maand? Hetzelfde geldt voor verkoopvoorspellingen: een langere voorspellingshorizon maakt het probleem complexer omdat de onzekerheid toeneemt met de tijd.<\/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;\">Feature engineering - Modelleren van de drijvende factoren van verkoop<\/h2><\/div><div class=\"fusion-text fusion-text-7\"><p>Nu we de taak die voor ons ligt hebben begrepen, kunnen we beginnen met het berekenen van kenmerken die alle fenomenen modelleren die de verkoopevolutie zouden kunnen be\u00efnvloeden. Het doel hier is om elke triplet Dag x Product x Winkel te beschrijven door een set indicatoren die de effecten van factoren zoals seizoensgebondenheid, trends of prijsstelling vastleggen.<\/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;\">Seizoensgebondenheid<\/h2><\/div><div class=\"fusion-text fusion-text-8\"><p>In plaats van de verkoopdatum direct als voorspeller te gebruiken, is het meestal relevanter om deze te ontleden in verschillende kenmerken om de seizoensgebondenheid te karakteriseren: jaar, maand, weeknummer,\u00a0<strong>dag van de week<\/strong>... Dit laatste is bijzonder inzichtelijk omdat het probleem een sterke wekelijkse periodiciteit heeft: de verkoopvolumes zijn groter in het weekend, wanneer mensen meer tijd in supermarkten doorbrengen.<\/p>\n<p><strong>Evenementen<\/strong>\u00a0zoals feestdagen of NBA finales hebben ook een sterke seizoensinvloed. Voor elke gebeurtenis is \u00e9\u00e9n kenmerk gemaakt, met de volgende waarden:<\/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>Negatieve waarden voor de 15 dagen voor de gebeurtenis (-15 tot -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 op de D-day<\/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\">Positieve waarden voor de 15 dagen na de gebeurtenis (1 tot 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\">Geen waarde op perioden die meer dan 15 dagen van het evenement verwijderd zijn<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-9\"><p>Het idee is om de seizoensimpact niet alleen op de D-day te modelleren, maar ook ervoor en erna. Een product dat bijvoorbeeld veel als kerstcadeau wordt aangeboden, zal een verkooppiek beleven op de dagen ervoor en een daling vlak erna.<\/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;\">Trends<\/h2><\/div><div class=\"fusion-text fusion-text-10\"><p>Recente trends bieden ook nuttige informatie over toekomstige verkopen en worden gemodelleerd dankzij\u00a0<strong>vertragingskenmerken<\/strong>. Een vertraging is de waarde van de doelvariabele die met een bepaalde periode is verschoven. Voor een specifiek artikel in een bepaalde winkel is de lag-waarde van 1 week de verkoop van een week geleden voor dit specifieke artikel en deze winkel. Er kunnen verschillende verschuivingswaarden worden overwogen, en het gemiddelde van verschillende vertragingen wordt ook berekend, om robuustere voorspellers te krijgen. Er kunnen ook vertragingen worden berekend op geaggregeerde verkopen om meer globale trends vast te leggen, bijvoorbeeld op winkelniveau of op productcategorieniveau.<\/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;\">Prijzen<\/h2><\/div><div class=\"fusion-text fusion-text-11\"><p>De prijs van een product kan van winkel tot winkel en zelfs van week tot week binnen dezelfde winkel veranderen. Deze variaties hebben een sterke invloed op de verkoop en moeten daarom door enkele kenmerken worden beschreven. In plaats van absolute prijzen,\u00a0<strong>relatieve prijsverschillen tussen relevante producten verklaren eerder de verkoopontwikkelingen<\/strong>. Daarom zijn de volgende voorspellers berekend:<\/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\">Relatief verschil tussen de huidige prijs van een artikel en de historische gemiddelde prijs, om de impact van promotionele aanbiedingen te benadrukken.<\/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\">Relatief prijsverschil met hetzelfde artikel dat in andere winkels wordt verkocht, om te begrijpen of de winkel een aantrekkelijke prijs heeft of niet.<\/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>Relatief prijsverschil met andere artikelen die in dezelfde winkel en dezelfde productcategorie worden verkocht, om enkele kannibalisatie-effecten vast te leggen.<\/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;\">Categorische variabelen coderen<\/h2><\/div><div class=\"fusion-text fusion-text-12\"><p>Categorische variabelen zoals de staat, de winkel, de productnaam of de categorie hebben ook een significant voorspellend vermogen. Deze informatie moet worden gecodeerd in kenmerken om het model te helpen de hi\u00ebrarchie van de dataset te benutten. Codering met \u00e9\u00e9n punt is hier geen optie omdat sommige van deze categorische variabelen een zeer hoge kardinaliteit hebben (3049 verschillende producten). In plaats daarvan hebben we een\u00a0<strong>geordende doelcodering<\/strong>, wat betekent dat elke waarneming wordt gecodeerd door de gemiddelde verkoop van eerdere waarnemingen met dezelfde categorische waarde. De dataset is voor deze taak gerangschikt op tijd om lekken van data te voorkomen.<\/p>\n<p>Alle categorische variabelen en sommige van hun combinaties zijn met deze methode gecodeerd. Dit resulteert in zeer informatieve functies, waarvan de codering van de product- en winkelcombinatie de beste is. Als u wilt experimenteren met andere coderingen, kunt u een breed scala aan methoden vinden\u00a0<a href=\"http:\/\/contrib.scikit-learn.org\/category_encoders\/\" target=\"_blank\" rel=\"noopener\">hier<\/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;\">Tweedie verlies om intermitterende waarden te verwerken<\/h2><\/div><div class=\"fusion-text fusion-text-13\"><p>Er kunnen verschillende strategie\u00ebn worden gebruikt om het probleem van de intermitterende waarden aan te pakken. Sommige deelnemers besloten om 2 aparte modellen te maken: \u00e9\u00e9n om te voorspellen of het product op een bepaalde dag wel of niet beschikbaar zal zijn, en een tweede om de verkoop te voorspellen. Net als vele anderen hebben wij voor een andere optie gekozen, namelijk vertrouwen op een objectieve functie die aan het probleem is aangepast: de\u00a0<strong>tweedie verlies<\/strong>.<\/p>\n<p>Zonder in te gaan op de wiskundige details, zullen we proberen te begrijpen waarom deze verliesfunctie geschikt is voor ons probleem, door de verkoopverdeling in de training data en de tweedieverdeling te vergelijken:<\/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=\"afbeelding-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>Ze lijken erg op elkaar en beide hebben waarden die geconcentreerd zijn rond 0. Door het tweedie verlies in te stellen als een objectieve functie, wordt het model in feite gedwongen om\u00a0<strong class=\"ia ld\">de waarschijnlijkheid van die verdeling maximaliseren<\/strong>\u00a0en dus het juiste aantal 0's voorspellen. Bovendien wordt deze verliesfunctie geleverd met een parameter - waarvan de waarden vari\u00ebren van 1 tot 2 - die kan worden afgestemd op de verdeling van het probleem in kwestie:<\/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=\"Afbeelding-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>Op basis van onze dataset-verdeling kunnen we verwachten dat de optimale waarde tussen 1 en 1,5 ligt, maar om preciezer te zijn zullen we die parameter later afstemmen met kruisvalidatie. Deze objectiefunctie is ook beschikbaar voor andere gradi\u00ebnt boosting modellen zoals XGBoost of CatBoost, dus het is zeker de moeite waard om te proberen als u te maken hebt met intermitterende waarden.<\/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;\">Hoe 28 dagen vooruit voorspellen? Optimaal profiteren van vertragingsfuncties<\/h2><\/div><div class=\"fusion-text fusion-text-16\"><p>Zoals hierboven uitgelegd, zijn vertragingskenmerken verkopen die met een bepaalde periode verschoven worden. Hun waarden hangen dus af van waar u zich in de prognosehorizon bevindt. De verkopen op een bepaalde dag D kunnen worden beschouwd als een 1-daags vertragingsverschil als u \u00e9\u00e9n dag vooruit voorspelt, of als een 28-daags vertragingsverschil als u 28 dagen vooruit voorspelt. Het volgende diagram illustreert dit punt:<\/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=\"afbeelding-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>Dit concept is belangrijk om te begrijpen welke functies\u00a0<strong>beschikbaar bij voorspelling<\/strong>. Hier zijn we op dag D en willen we de verkoop voor de komende 28 dagen voorspellen. Als we hetzelfde model - en dus dezelfde kenmerken - willen gebruiken om voorspellingen te doen voor de hele prognosehorizon, kunnen we alleen vertragingen gebruiken die beschikbaar zijn om alle dagen tussen D+1 en D+28 te voorspellen. Dit betekent dat als we de 1-daags vertragingskenmerk gebruiken om het model te trainen, die variabele ook gevuld zal moeten worden voor voorspellingen op D+2, D+3, ... en D+28, terwijl deze verwijst naar datums in de toekomst.<\/p>\n<p>Toch zijn vertragingen waarschijnlijk de\u00a0<strong>kenmerken met de grootste voorspellende kracht<\/strong>, Het is dus belangrijk om een manier te vinden om deze informatie optimaal te benutten. We hebben 3 opties overwogen om dit probleem te omzeilen, laten we eens kijken hoe ze presteerden.<\/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;\">Optie 1: E\u00e9n model voor alle weken<\/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=\"afbeelding-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>De eerste optie is de meest voor de hand liggende. Hierbij wordt hetzelfde model gebruikt om voorspellingen te doen voor alle weken in de prognosehorizon. Zoals we zojuist hebben uitgelegd, komt hier een enorme beperking bij kijken: alleen functies die beschikbaar zijn voor voorspellingen op D+28 kunnen worden gebruikt. Daarom moeten we\u00a0<strong class=\"ia ld\">alle informatie uit de 27 meest recente vertragingen verwijderen<\/strong>. Het is jammer omdat de meest recente vertragingen ook de meest informatieve zijn, dus we hebben een andere optie overwogen.<\/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;\">Optie 2: Wekelijkse modellen<\/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=\"beeld-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>Dit alternatief bestaat uit het trainen van een ander LightGBM-model voor elke week. In het bovenstaande diagram leert elk model van de meest recente mogelijke vertragingen met betrekking tot de beperking die wordt opgelegd door zijn voorspellingshorizon. Dezelfde logica volgend als bij de vorige optie, betekent dit dat elk model alle lags kan gebruiken, behalve de lags die nieuwer zijn dan de verste dag om te voorspellen.<\/p>\n<p>Om precies te zijn:<\/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\">Model 1 doet voorspellingen voor dagen 1-7, waarbij alle vertragingen behalve de 6 meest recente worden gebruikt.<\/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\">Model 2 doet voorspellingen voor dagen 8-14, waarbij alle vertragingen behalve de 13 meest recente worden gebruikt.<\/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\">Model 3 doet voorspellingen voor dagen 15-21, waarbij alle vertragingen behalve de 20 meest recente worden gebruikt.<\/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\">Model 4 doet voorspellingen voor dagen 22-28, waarbij net als bij optie 1 wordt uitgegaan van alle vertragingen behalve de 27 meest recente.<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-20\"><p>Met deze methode kunnen we<strong>\u00a0beter te profiteren van vertraagde informatie voor de eerste 3 weken en zo de nauwkeurigheid van de prognoses van onze oplossing te verbeteren<\/strong>. Het was de moeite waard omdat het een Kaggle-wedstrijd was, maar\u00a0<strong>Voor een ge\u00efndustrialiseerd project moet ook rekening worden gehouden met complexiteit, onderhoud en interpreteerbaarheid.<\/strong>.<\/p>\n<p>Deze optie zou inderdaad rekenkundig duur kunnen zijn en als we een uitrol op landelijk niveau nastreven, zouden er honderden modellen live gehouden moeten worden. In dat geval zou het nodig zijn om te evalueren of de prestatieverhoging groot genoeg is om deze complexere implementatie te rechtvaardigen.<\/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;\">Optie 3: Recursief modelleren<\/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=\"afbeelding-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>De laatste optie gebruikt ook wekelijkse modellen, maar deze keer op een recursieve manier.\u00a0<strong>Recursief modelleren<\/strong>\u00a0betekent dat voorspellingen die voor een bepaalde week gegenereerd zijn, gebruikt zullen worden als vertragingskenmerken voor de volgende weken. Dit gebeurt\u00a0<strong>opeenvolgend<\/strong>: we maken eerst voorspellingen voor de eerste week door alle lags behalve de 6 meest recente te gebruiken. Vervolgens voorspellen we week 2 door onze vorige voorspellingen als 1-weekse vertragingen te gebruiken, in plaats van meer vertragingen uit te sluiten zoals in optie 2. Door hetzelfde proces te herhalen, krijgen we altijd recente lags beschikbaar, zelfs voor week 3 en 4, waardoor we deze informatie kunnen gebruiken om de modellen te trainen.<\/p>\n<p>Deze methode is het testen waard, maar houd er rekening mee dat het nogal\u00a0<strong>onstabiel omdat fouten zich van week tot week verspreiden<\/strong>. Als het eerste weekmodel belangrijke fouten maakt, zullen deze fouten door het volgende model als waarheid worden aangenomen, wat dan onvermijdelijk slecht zal presteren, enzovoort. Daarom hebben we besloten om\u00a0<strong>blijf bij optie 2<\/strong>, Dat lijkt betrouwbaarder te zijn.<\/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;\">De robuustheid van een model garanderen met een geschikte kruisvalidatie: Waarom kruisvalidatie cruciaal is voor tijdreeksen<\/h2><\/div><div class=\"fusion-text fusion-text-22\"><p>In elk machine-learningproject is het gebruik van een geschikte cross-validatiestrategie van cruciaal belang om de nauwkeurigheid buiten de steekproef correct te simuleren, hyperparameters grondig te selecteren en over-fitting te voorkomen. Bij voorspellingen moet dit zorgvuldig gebeuren, omdat er een temporele afhankelijkheid tussen waarnemingen is die behouden moet blijven. Met andere woorden, <strong>we willen voorkomen dat het model in de toekomst kijkt wanneer we het trainen<\/strong>.<\/p>\n<p>De validatieperiode waarin het model wordt getest, is ook van groter belang bij tijdreeksen. De prestaties van het model en de optimale set hyperparameters kunnen sterk vari\u00ebren afhankelijk van de periode waarover het model wordt getraind en getest. <strong>Daarom is het ons doel om te bepalen welke parameters het meest waarschijnlijk de prestaties zullen maximaliseren, niet over een willekeurige periode, maar over de periode die we willen voorspellen.<\/strong>, d.w.z. de komende 4 weken.<\/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;\">Het validatieproces aanpassen aan het betreffende probleem<\/h2><\/div><div class=\"fusion-text fusion-text-23\"><p>Om dat doel te bereiken, hebben we 5 validatiesets geselecteerd die\u00a0<strong>relevant voor de voorspellingsperiode<\/strong>. Het diagram hieronder laat zien hoe ze in de tijd verdeeld zijn. Voor elke kruisvalidatievouw wordt het model getraind met verschillende combinaties van parameters op de trainingsset en ge\u00ebvalueerd op de validatieset met behulp van de gemiddelde kwadratische fout.<\/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=\"Afbeelding-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>De vouwen 1, 2 en 3 zijn gericht op het identificeren van parameters die de prestaties in recente perioden zouden hebben gemaximaliseerd, in principe in de afgelopen 3 maanden. Het probleem is dat deze 3 maanden andere bijzonderheden kunnen hebben dan de komende periode die we willen voorspellen. Laten we ons bijvoorbeeld voorstellen dat winkels de afgelopen paar maanden een enorm promotieseizoen hebben gelanceerd, en dat dit net vandaag is gestopt.<\/p>\n<p>Deze promoties zouden het gedrag van het model waarschijnlijk be\u00efnvloeden, maar het zou riskant zijn om alleen op deze recente periodes te vertrouwen om het model af te stemmen, omdat dit niet representatief is voor wat er hierna gaat gebeuren.<\/p>\n<p>Om dit risico te beperken, hebben we ook vouwen 4 en 5 opgenomen, die overeenkomen met de prognoseperiode die respectievelijk 1 en 2 jaar verschoven is. Deze periodes zijn waarschijnlijk vergelijkbaar omdat het probleem een sterke jaarlijkse seizoensgebondenheid heeft, wat vaak het geval is in de detailhandel. Als we een andere periodiciteit hadden, konden we elke willekeurige kruisvalidatiestrategie kiezen die zakelijk gezien zinvoller is. Uiteindelijk hebben we de hyperparametercombinatie met de laagste fout over de 5 vouwen geselecteerd om het uiteindelijke model te trainen.<\/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;\">Resultaten<\/h2><\/div><div class=\"fusion-text fusion-text-25\"><p>Met de verschillende bovengenoemde technieken konden we een\u00a0<strong>0,59 gewogen RMSSE<\/strong>\u00a0- de metriek die op Kaggle wordt gebruikt - wat overeenkomt met een gewogen voorspellingsnauwkeurigheid van 82,8%. De onderstaande grafiek geeft een overzicht van de incrementele prestaties die door elke stap worden gegenereerd:<\/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=\"Afbeelding-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>Deze cijfers zijn indicatief: de incrementele nauwkeurigheid hangt ook af van de volgorde waarin elke stap wordt uitgevoerd.<\/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;\">Belangrijkste opmerkingen<\/h2><\/div><div class=\"fusion-text fusion-text-27\"><p>We hebben veel geleerd van deze uitdaging dankzij de gedeelde inzichten van de deelnemers en we hopen dat het u ook stof tot nadenken heeft gegeven. Hier zijn onze belangrijkste vaststellingen:<\/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\">Werk aan een kleine maar representatieve subset van data om snel te kunnen itereren.<\/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\">Wees super voorzichtig met data lekkage in het feature engineering proces: zorg ervoor dat alle features die u berekent beschikbaar zullen zijn op het moment van voorspelling.<\/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\">Kies een modelarchitectuur waarmee u zoveel mogelijk gebruik kunt maken van vertragingen, maar houd ook rekening met complexiteitsoverwegingen als u tot productie wilt overgaan.<\/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\">Stel een kruisvalidatiestrategie op die is aangepast aan uw bedrijfsprobleem om de prestaties van uw experimenten correct te evalueren.<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-28\"><p>Bedankt voor het lezen tot nu toe en aarzel niet om contact met ons op te nemen als u opmerkingen over dit onderwerp hebt!<\/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>Dit artikel werd voor het eerst gepubliceerd op de Artefact Tech Blog op 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\">Artikel bekijken<\/span><\/a><\/div><\/div><\/div><\/div><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>5 februari 2021<br \/>\nIn dit artikel geeft Data-wetenschapper Maxime Lutel een overzicht van zijn bevindingen van de M5-verkoopprognosewedstrijd, die bestond uit het voorspellen van toekomstige verkopen in verschillende Walmart-winkels. Hij loopt met u door onze oplossing en bespreekt welk machine-learningmodel het beste werkte voor deze taak.<\/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\/nl\/wp-json\/wp\/v2\/blog\/49861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/types\/blog"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/media\/49866"}],"wp:attachment":[{"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/media?parent=49861"}],"wp:term":[{"taxonomy":"blog-category","embeddable":true,"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/blog-category?post=49861"},{"taxonomy":"blog-language","embeddable":true,"href":"https:\/\/www.artefact.com\/nl\/wp-json\/wp\/v2\/blog-language?post=49861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}