	{"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\/br\/blog\/sales-forecasting-in-retail-what-we-learned-from-the-m5-competition-published-in-medium-tech-blog\/","title":{"rendered":"Previs\u00e3o de vendas no varejo: o que aprendemos com a competi\u00e7\u00e3o 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 de fevereiro de 2021<br \/>\nNeste artigo, Maxime Lutel, cientista da Data, resume o que aprendeu na competi\u00e7\u00e3o de previs\u00e3o de vendas M5, que consistia em prever as vendas futuras em v\u00e1rias lojas do Walmart. Ele apresentar\u00e1 aos senhores a nossa solu\u00e7\u00e3o e discutir\u00e1 qual modelo de aprendizado de m\u00e1quina funcionou melhor para essa tarefa.<\/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=\"M\u00e9dio 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;\">Usando o aprendizado de m\u00e1quina para resolver os desafios comerciais dos varejistas<\/h2><\/div><div class=\"fusion-text fusion-text-2\"><p>Uma previs\u00e3o de vendas precisa \u00e9 fundamental para que as empresas de varejo produzam a quantidade necess\u00e1ria no momento certo. Mas mesmo que evitar o desperd\u00edcio e a escassez seja uma de suas principais preocupa\u00e7\u00f5es, os varejistas ainda t\u00eam muito espa\u00e7o para melhorias. Pelo menos, \u00e9 isso que as pessoas que trabalham no Walmart pensam, pois lan\u00e7aram um desafio cient\u00edfico aberto data em mar\u00e7o de 2020- <a href=\"https:\/\/www.kaggle.com\/c\/m5-forecasting-accuracy\/overview\" target=\"_blank\" rel=\"noopener\">A competi\u00e7\u00e3o M5<\/a>\u00a0- para ver como eles poderiam aprimorar seus modelos de previs\u00e3o.<\/p>\n<p>O objetivo da competi\u00e7\u00e3o era prever vendas futuras no n\u00edvel do produto, com base no hist\u00f3rico do data. Mais de 5.000 equipes de amantes do data e especialistas em previs\u00e3o discutiram durante meses sobre os m\u00e9todos, recursos e modelos que funcionariam melhor para resolver esse conhecido problema de aprendizado de m\u00e1quina. Esses debates destacaram alguns problemas recorrentes encontrados em quase todos os projetos de previs\u00e3o. E, ainda mais importante, trouxeram \u00e0 tona uma grande variedade de abordagens para resolv\u00ea-los.<\/p>\n<p>Este artigo pretende resumir alguns\u00a0<strong>principais percep\u00e7\u00f5es que surgiram do desafio<\/strong>. Na Artefact, acreditamos em aprender fazendo, por isso decidimos tentar e codificar nossa pr\u00f3pria solu\u00e7\u00e3o para ilustr\u00e1-la. Agora vamos percorrer todo o pipeline de previs\u00e3o e parar ao longo do caminho para entender o que funcionou e o que falhou.<\/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;\">Declara\u00e7\u00e3o do problema: Previs\u00e3o hier\u00e1rquica de s\u00e9ries temporais<\/h2><\/div><div class=\"fusion-text fusion-text-3\"><p>O dataset cont\u00e9m um hist\u00f3rico de vendas de 5 anos, de 2011 a 2016, para v\u00e1rios produtos e lojas. Algumas informa\u00e7\u00f5es adicionais s\u00e3o fornecidas, como pre\u00e7os de venda e eventos do calend\u00e1rio. O Data \u00e9 organizado hierarquicamente: as lojas s\u00e3o divididas em 3 estados e os produtos s\u00e3o agrupados por categorias e subcategorias.<\/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=\"Imagem-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>Nossa tarefa \u00e9\u00a0<strong>prever as vendas de todos os produtos em cada loja, nos dias logo ap\u00f3s o dataset dispon\u00edvel<\/strong>. Isso significa que 30.490 previs\u00f5es devem ser feitas para cada dia no horizonte de previs\u00e3o.<\/p>\n<p>Essa hierarquia orientar\u00e1 nossas escolhas de modelagem, pois as intera\u00e7\u00f5es dentro das categorias de produtos ou lojas cont\u00eam informa\u00e7\u00f5es muito \u00fateis para fins de previs\u00e3o. De fato, itens nas mesmas lojas e categorias podem ter uma evolu\u00e7\u00e3o de vendas semelhante ou, ao contr\u00e1rio, podem canibalizar uns aos outros. Portanto, vamos descrever cada amostra por meio de recursos que capturam essas intera\u00e7\u00f5es e\u00a0<strong>priorizar abordagens baseadas em aprendizado de m\u00e1quina em rela\u00e7\u00e3o \u00e0s abordagens tradicionais de previs\u00e3o<\/strong>, para considerar essas informa\u00e7\u00f5es ao treinar o modelo.<\/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;\">Dois desafios principais: valores intermitentes e um horizonte de previs\u00e3o estendido<\/h2><\/div><div class=\"fusion-text fusion-text-5\"><p>A essa altura, o senhor pode pensar que esse \u00e9 um problema de previs\u00e3o muito comum. O senhor est\u00e1 certo e \u00e9 por isso que ele \u00e9 interessante: pode estar relacionado a uma ampla gama de outros projetos, mesmo que cada setor tenha suas pr\u00f3prias caracter\u00edsticas. Entretanto, esse desafio tem duas especificidades importantes que tornar\u00e3o a tarefa mais dif\u00edcil do que o esperado.<\/p>\n<p>A primeira \u00e9 que a s\u00e9rie temporal com a qual estamos trabalhando tem muitos valores intermitentes, ou seja, longos per\u00edodos de dias consecutivos sem vendas, conforme ilustrado no gr\u00e1fico abaixo. Isso pode ser devido \u00e0 falta de estoque ou \u00e0 \u00e1rea limitada das prateleiras nas lojas. De qualquer forma, isso complica a tarefa, pois o erro aumentar\u00e1 muito se as vendas forem previstas em um n\u00edvel regular enquanto o produto estiver fora das prateleiras.<\/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=\"imagem-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>O segundo vem da pr\u00f3pria tarefa e, mais precisamente, da\u00a0<strong>tamanho do horizonte de previs\u00e3o<\/strong>. Os concorrentes devem gerar previs\u00f5es n\u00e3o apenas para a pr\u00f3xima semana, mas para um per\u00edodo de quatro semanas. O senhor prefere confiar na previs\u00e3o do tempo para o dia seguinte ou para daqui a um m\u00eas? O mesmo vale para a previs\u00e3o de vendas: um horizonte de previs\u00e3o estendido torna o problema mais complexo, pois a incerteza aumenta com o tempo.<\/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;\">Engenharia de recursos - Modelagem dos fatores determinantes das vendas<\/h2><\/div><div class=\"fusion-text fusion-text-7\"><p>Agora que entendemos a tarefa que temos em m\u00e3os, podemos come\u00e7ar a calcular os recursos que modelam todos os fen\u00f4menos que podem afetar a evolu\u00e7\u00e3o das vendas. O objetivo aqui \u00e9 descrever cada tripla Dia x Produto x Loja por um conjunto de indicadores que capturem os efeitos de fatores como sazonalidade, tend\u00eancias ou pre\u00e7os.<\/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;\">Sazonalidade<\/h2><\/div><div class=\"fusion-text fusion-text-8\"><p>Em vez de usar a data de vendas diretamente como um indicador, geralmente \u00e9 mais relevante decomp\u00f4-la em v\u00e1rios recursos para caracterizar a sazonalidade: ano, m\u00eas, n\u00famero da semana,\u00a0<strong>dia da semana<\/strong>... Esse \u00faltimo \u00e9 particularmente perspicaz porque o problema tem uma forte periodicidade semanal: os volumes de vendas s\u00e3o maiores nos finais de semana, quando as pessoas passam mais tempo nos supermercados.<\/p>\n<p><strong>Eventos do calend\u00e1rio<\/strong>\u00a0como feriados ou finais da NBA tamb\u00e9m t\u00eam um forte impacto sazonal. Foi criado um recurso para cada evento, com os seguintes valores:<\/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>Valores negativos para os 15 dias anteriores ao evento (-15 a -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 no dia D<\/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\">Valores positivos para os 15 dias seguintes ao evento (1 a 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\">N\u00e3o h\u00e1 valor para per\u00edodos com mais de 15 dias de anteced\u00eancia do evento<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-9\"><p>A ideia \u00e9 modelar o impacto sazonal n\u00e3o apenas no dia D, mas tamb\u00e9m antes e depois. Por exemplo, um produto que ser\u00e1 muito oferecido como presente de Natal ter\u00e1 um pico de vendas nos dias anteriores e uma queda logo depois.<\/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;\">Tend\u00eancias<\/h2><\/div><div class=\"fusion-text fusion-text-10\"><p>As tend\u00eancias recentes tamb\u00e9m fornecem informa\u00e7\u00f5es \u00fateis sobre vendas futuras e s\u00e3o modeladas gra\u00e7as ao\u00a0<strong>recursos de atraso<\/strong>. Uma defasagem \u00e9 o valor da vari\u00e1vel-alvo deslocado por um determinado per\u00edodo. Para qualquer item espec\u00edfico em uma determinada loja, o valor de defasagem de uma semana seria as vendas feitas h\u00e1 uma semana para esse item e loja espec\u00edficos. Diferentes valores de deslocamento podem ser considerados, e a m\u00e9dia de v\u00e1rias defasagens tamb\u00e9m \u00e9 computada, para obter preditores mais robustos. As defasagens tamb\u00e9m podem ser calculadas em vendas agregadas para capturar tend\u00eancias mais globais, por exemplo, no n\u00edvel da loja ou no n\u00edvel da categoria do produto.<\/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;\">Pre\u00e7os<\/h2><\/div><div class=\"fusion-text fusion-text-11\"><p>O pre\u00e7o de um produto pode mudar de uma loja para outra, e at\u00e9 mesmo de uma semana para outra dentro da mesma loja. Essas varia\u00e7\u00f5es influenciam fortemente as vendas e, portanto, devem ser descritas por algumas caracter\u00edsticas. Em vez de pre\u00e7os absolutos,\u00a0<strong>as diferen\u00e7as de pre\u00e7os relativos entre produtos relevantes t\u00eam maior probabilidade de explicar a evolu\u00e7\u00e3o das vendas<\/strong>. \u00c9 por isso que os seguintes preditores foram calculados:<\/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\">Diferen\u00e7a relativa entre o pre\u00e7o atual de um item e seu pre\u00e7o m\u00e9dio hist\u00f3rico, para destacar o impacto das ofertas promocionais.<\/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\">Diferen\u00e7a relativa de pre\u00e7o com o mesmo item vendido em outras lojas, para entender se a loja tem ou n\u00e3o um pre\u00e7o atraente.<\/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>Diferen\u00e7a relativa de pre\u00e7o com outros itens vendidos na mesma loja e na mesma categoria de produto, para capturar alguns efeitos de canibaliza\u00e7\u00e3o.<\/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;\">Codifica\u00e7\u00e3o de vari\u00e1veis categ\u00f3ricas<\/h2><\/div><div class=\"fusion-text fusion-text-12\"><p>As vari\u00e1veis categ\u00f3ricas, como o estado, a loja, o nome do produto ou sua categoria, tamb\u00e9m t\u00eam um poder preditivo significativo. Essas informa\u00e7\u00f5es precisam ser codificadas em recursos para ajudar o modelo a aproveitar a hierarquia do dataset. A codifica\u00e7\u00e3o de um ponto n\u00e3o \u00e9 uma op\u00e7\u00e3o aqui porque algumas dessas vari\u00e1veis categ\u00f3ricas t\u00eam uma cardinalidade muito alta (3049 produtos distintos). Em vez disso, usamos uma\u00a0<strong>codifica\u00e7\u00e3o de destino ordenada<\/strong>, o que significa que cada observa\u00e7\u00e3o \u00e9 codificada pela m\u00e9dia de vendas de observa\u00e7\u00f5es anteriores com o mesmo valor categ\u00f3rico. O conjunto de data \u00e9 ordenado por tempo para essa tarefa a fim de evitar vazamento de data.<\/p>\n<p>Todas as vari\u00e1veis categ\u00f3ricas e algumas de suas combina\u00e7\u00f5es foram codificadas com esse m\u00e9todo. Isso resulta em recursos muito informativos, sendo o melhor deles a codifica\u00e7\u00e3o da combina\u00e7\u00e3o de produto e loja. Se quiser experimentar outros codificadores, o senhor pode encontrar uma grande variedade de m\u00e9todos\u00a0<a href=\"http:\/\/contrib.scikit-learn.org\/category_encoders\/\" target=\"_blank\" rel=\"noopener\">aqui<\/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;\">Perda de Tweedie para lidar com valores intermitentes<\/h2><\/div><div class=\"fusion-text fusion-text-13\"><p>Diferentes estrat\u00e9gias poss\u00edveis podem ser usadas para lidar com a quest\u00e3o dos valores intermitentes. Alguns participantes decidiram criar dois modelos separados: um para prever se o produto estar\u00e1 ou n\u00e3o dispon\u00edvel em um dia espec\u00edfico e outro para prever as vendas. Como muitos outros, escolhemos outra op\u00e7\u00e3o, que \u00e9 confiar em uma fun\u00e7\u00e3o objetiva adaptada ao problema: o\u00a0<strong>perda de tweedie<\/strong>.<\/p>\n<p>Sem entrar em detalhes matem\u00e1ticos, vamos tentar entender por que essa fun\u00e7\u00e3o de perda \u00e9 adequada ao nosso problema, comparando a distribui\u00e7\u00e3o de vendas no data de treinamento e a distribui\u00e7\u00e3o 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=\"imagem-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>Elas s\u00e3o bastante semelhantes e ambas t\u00eam valores concentrados em torno de 0. Definir a perda de tweedie como uma fun\u00e7\u00e3o objetiva basicamente for\u00e7ar\u00e1 o modelo a\u00a0<strong class=\"ia ld\">maximizar a probabilidade dessa distribui\u00e7\u00e3o<\/strong>\u00a0e, assim, prever a quantidade certa de 0s. Al\u00e9m disso, essa fun\u00e7\u00e3o de perda vem com um par\u00e2metro - cujos valores variam de 1 a 2 - que pode ser ajustado para se adequar \u00e0 distribui\u00e7\u00e3o do problema em quest\u00e3o:<\/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=\"imagem-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>Com base em nossa distribui\u00e7\u00e3o dataset, podemos esperar que o valor ideal esteja entre 1 e 1,5, mas, para sermos mais precisos, ajustaremos esse par\u00e2metro posteriormente com a valida\u00e7\u00e3o cruzada. Essa fun\u00e7\u00e3o objetiva tamb\u00e9m est\u00e1 dispon\u00edvel para outros modelos de aumento de gradiente, como XGBoost ou CatBoost, portanto, vale a pena tentar se o senhor estiver lidando com valores intermitentes.<\/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;\">Como fazer previs\u00f5es com 28 dias de anteced\u00eancia? Tirando o m\u00e1ximo proveito dos recursos de atraso<\/h2><\/div><div class=\"fusion-text fusion-text-16\"><p>Conforme explicado acima, os recursos de defasagem s\u00e3o vendas deslocadas por um determinado per\u00edodo de tempo. Portanto, seus valores dependem de onde o senhor se encontra no horizonte de previs\u00e3o. As vendas feitas em um determinado dia D podem ser consideradas como uma defasagem de 1 dia se o senhor estiver prevendo um dia \u00e0 frente, ou como uma defasagem de 28 dias se estiver prevendo 28 dias \u00e0 frente. O diagrama a seguir ilustra esse ponto:<\/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=\"imagem-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>Esse conceito \u00e9 importante para entender quais recursos ser\u00e3o\u00a0<strong>dispon\u00edvel no momento da previs\u00e3o<\/strong>. Aqui, estamos no dia D e gostar\u00edamos de prever as vendas para os pr\u00f3ximos 28 dias. Se quisermos usar o mesmo modelo - e, portanto, os mesmos recursos - para fazer previs\u00f5es para todo o horizonte de previs\u00e3o, s\u00f3 poderemos usar defasagens dispon\u00edveis para prever todos os dias entre D+1 e D+28. Isso significa que, se usarmos o recurso de defasagem de 1 dia para treinar o modelo, essa vari\u00e1vel tamb\u00e9m ter\u00e1 de ser preenchida para previs\u00f5es em D+2, D+3, ... e D+28, j\u00e1 que se refere a datas no futuro.<\/p>\n<p>Ainda assim, os atrasos s\u00e3o provavelmente os\u00a0<strong>recursos com o maior poder de previs\u00e3o<\/strong>, Por isso, \u00e9 importante encontrar uma maneira de aproveitar ao m\u00e1ximo essas informa\u00e7\u00f5es. Consideramos tr\u00eas op\u00e7\u00f5es para contornar esse problema, vamos ver como elas se sa\u00edram.<\/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;\">Op\u00e7\u00e3o 1: Um modelo para todas as semanas<\/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=\"imagem-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>A primeira op\u00e7\u00e3o \u00e9 a mais \u00f3bvia. Ela consiste em usar o mesmo modelo para fazer previs\u00f5es para todas as semanas no horizonte de previs\u00e3o. Como acabamos de explicar, ela vem com uma grande restri\u00e7\u00e3o: somente os recursos dispon\u00edveis para a previs\u00e3o em D+28 podem ser usados. Portanto, temos de\u00a0<strong class=\"ia ld\">eliminar todas as informa\u00e7\u00f5es fornecidas pelas 27 defasagens mais recentes<\/strong>. \u00c9 uma pena, pois as defasagens mais recentes s\u00e3o tamb\u00e9m as mais informativas, por isso consideramos outra op\u00e7\u00e3o.<\/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;\">Op\u00e7\u00e3o 2: Modelos semanais<\/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=\"imagem-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>Essa alternativa consiste em treinar um modelo LightGBM diferente para cada semana. No diagrama acima, cada modelo est\u00e1 aprendendo com as defasagens mais recentes poss\u00edveis em rela\u00e7\u00e3o \u00e0 restri\u00e7\u00e3o imposta por seu horizonte de previs\u00e3o. Seguindo a mesma l\u00f3gica da op\u00e7\u00e3o anterior, isso significa que cada modelo pode aproveitar todas as defasagens, exceto aquelas que s\u00e3o mais recentes do que o dia mais distante a ser previsto.<\/p>\n<p>Mais precisamente:<\/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\">O Modelo 1 faz previs\u00f5es para os dias 1 a 7, baseando-se em todas as defasagens, exceto as 6 mais recentes.<\/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\">O modelo 2 faz previs\u00f5es para os dias 8 a 14, baseando-se em todas as defasagens, exceto as 13 mais recentes.<\/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\">O Modelo 3 faz previs\u00f5es para os dias 15 a 21, baseando-se em todas as defasagens, exceto as 20 mais recentes.<\/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\">O modelo 4 faz previs\u00f5es para os dias 22 a 28, baseando-se em todas as defasagens, exceto as 27 mais recentes, exatamente como na op\u00e7\u00e3o 1.<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-20\"><p>Esse m\u00e9todo nos permite<strong>\u00a0capitalizar melhor as informa\u00e7\u00f5es de defasagem das tr\u00eas primeiras semanas e, assim, melhorar a precis\u00e3o da previs\u00e3o de nossa solu\u00e7\u00e3o<\/strong>. Valeu a pena porque era uma competi\u00e7\u00e3o da Kaggle, mas o senhor\u00a0<strong>para um projeto industrializado, quest\u00f5es de complexidade, manuten\u00e7\u00e3o e interpretabilidade tamb\u00e9m devem ser levadas em considera\u00e7\u00e3o<\/strong>.<\/p>\n<p>Na verdade, essa op\u00e7\u00e3o pode ser cara do ponto de vista computacional e, se estivermos buscando uma implementa\u00e7\u00e3o em escala nacional, isso exigiria a manuten\u00e7\u00e3o de centenas de modelos em tempo real. Nesse caso, seria necess\u00e1rio avaliar se o incremento de desempenho \u00e9 grande o suficiente para justificar essa implementa\u00e7\u00e3o mais complexa.<\/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;\">Op\u00e7\u00e3o 3: Modelagem recursiva<\/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=\"imagem-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>A \u00faltima op\u00e7\u00e3o tamb\u00e9m usa modelos semanais, mas dessa vez de forma recursiva.\u00a0<strong>Modelagem recursiva<\/strong>\u00a0significa que as previs\u00f5es geradas para uma determinada semana ser\u00e3o usadas como recursos de atraso para as semanas seguintes. Isso acontece\u00a0<strong>sequencialmente<\/strong>O senhor pode usar a op\u00e7\u00e3o 1: primeiro fazemos previs\u00f5es para a primeira semana usando todas as defasagens, exceto as 6 mais recentes. Em seguida, prevemos a segunda semana usando nossas previs\u00f5es anteriores como defasagens de uma semana, em vez de excluir mais defasagens como na op\u00e7\u00e3o 2. Ao repetir o mesmo processo, sempre temos defasagens recentes dispon\u00edveis, mesmo para as semanas 3 e 4, o que nos permite aproveitar essas informa\u00e7\u00f5es para treinar os modelos.<\/p>\n<p>Vale a pena testar esse m\u00e9todo, mas lembre-se de que ele \u00e9 bastante\u00a0<strong>inst\u00e1vel, pois os erros se propagam de uma semana para outra<\/strong>. Se o modelo da primeira semana cometer erros importantes, esses erros ser\u00e3o tomados como verdade pelo modelo seguinte, que inevitavelmente ter\u00e1 um desempenho ruim, e assim por diante. \u00c9 por isso que decidimos\u00a0<strong>ficar com a op\u00e7\u00e3o 2<\/strong>, O senhor pode usar o seu computador, que parece ser mais confi\u00e1vel.<\/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;\">Garantir a robustez do modelo com uma valida\u00e7\u00e3o cruzada adequada: Por que a valida\u00e7\u00e3o cruzada \u00e9 fundamental para s\u00e9ries temporais<\/h2><\/div><div class=\"fusion-text fusion-text-22\"><p>Em qualquer projeto de aprendizado de m\u00e1quina, a ado\u00e7\u00e3o de uma estrat\u00e9gia de valida\u00e7\u00e3o cruzada adequada \u00e9 fundamental para simular corretamente a precis\u00e3o fora da amostra, selecionar cuidadosamente os hiperpar\u00e2metros e evitar o ajuste excessivo. Quando se trata de previs\u00e3o, isso deve ser feito com cuidado porque h\u00e1 uma depend\u00eancia temporal entre as observa\u00e7\u00f5es que deve ser preservada. Em outras palavras, <strong>queremos evitar que o modelo olhe para o futuro quando o treinamos<\/strong>.<\/p>\n<p>O per\u00edodo de valida\u00e7\u00e3o durante o qual o modelo \u00e9 testado tamb\u00e9m tem uma import\u00e2ncia maior quando se trata de s\u00e9ries temporais. O desempenho do modelo e o conjunto ideal de hiperpar\u00e2metros podem variar muito, dependendo do per\u00edodo em que o modelo \u00e9 treinado e testado. <strong>Portanto, nosso objetivo \u00e9 descobrir quais par\u00e2metros t\u00eam maior probabilidade de maximizar o desempenho, n\u00e3o em um per\u00edodo aleat\u00f3rio, mas no per\u00edodo que queremos prever<\/strong>, ou seja, as pr\u00f3ximas 4 semanas.<\/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;\">Adaptar o processo de valida\u00e7\u00e3o ao problema em quest\u00e3o<\/h2><\/div><div class=\"fusion-text fusion-text-23\"><p>Para atingir esse objetivo, selecionamos 5 conjuntos de valida\u00e7\u00e3o que foram\u00a0<strong>relevantes para o per\u00edodo de previs\u00e3o<\/strong>. O diagrama abaixo mostra como eles s\u00e3o distribu\u00eddos ao longo do tempo. Para cada dobra de valida\u00e7\u00e3o cruzada, o modelo \u00e9 treinado com v\u00e1rias combina\u00e7\u00f5es de par\u00e2metros no conjunto de treinamento e avaliado no conjunto de valida\u00e7\u00e3o usando a raiz do erro quadr\u00e1tico m\u00e9dio.<\/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=\"Imagem-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>As dobras 1, 2 e 3 visam identificar os par\u00e2metros que teriam maximizado o desempenho em per\u00edodos recentes, basicamente nos \u00faltimos 3 meses. O problema \u00e9 que esses tr\u00eas meses podem ter especificidades diferentes das do pr\u00f3ximo per\u00edodo que estamos querendo prever. Por exemplo, vamos imaginar que as lojas lan\u00e7aram uma grande temporada promocional nos \u00faltimos meses e que ela acabou hoje.<\/p>\n<p>Essas promo\u00e7\u00f5es provavelmente afetariam o comportamento do modelo, mas seria arriscado confiar apenas nesses per\u00edodos recentes para ajust\u00e1-lo, pois isso n\u00e3o representa o que acontecer\u00e1 no futuro.<\/p>\n<p>Para atenuar esse risco, tamb\u00e9m inclu\u00edmos as dobras 4 e 5, que correspondem ao per\u00edodo de previs\u00e3o deslocado em 1 e 2 anos, respectivamente. \u00c9 prov\u00e1vel que esses per\u00edodos sejam semelhantes porque o problema tem uma forte sazonalidade anual, o que geralmente ocorre no varejo. Caso tiv\u00e9ssemos uma periodicidade diferente, poder\u00edamos escolher qualquer estrat\u00e9gia de valida\u00e7\u00e3o cruzada que fizesse mais sentido para os neg\u00f3cios. No final, selecionamos a combina\u00e7\u00e3o de hiperpar\u00e2metros com o menor erro nas 5 dobras para treinar o modelo 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;\">Resultados<\/h2><\/div><div class=\"fusion-text fusion-text-25\"><p>As diferentes t\u00e9cnicas mencionadas acima nos permitiram chegar a um\u00a0<strong>0,59 RMSSE ponderado<\/strong>\u00a0- a m\u00e9trica usada no Kaggle - que \u00e9 equivalente a uma precis\u00e3o de previs\u00e3o ponderada de 82,8%. O gr\u00e1fico abaixo resume o desempenho incremental gerado por cada etapa:<\/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=\"Imagem-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>Esses n\u00fameros s\u00e3o indicativos: a precis\u00e3o incremental tamb\u00e9m depende da ordem em que cada etapa \u00e9 implementada.<\/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;\">Principais conclus\u00f5es<\/h2><\/div><div class=\"fusion-text fusion-text-27\"><p>Aprendemos muito com esse desafio gra\u00e7as aos insights compartilhados pelos participantes e esperamos que ele tamb\u00e9m tenha lhe dado o que pensar. Aqui est\u00e3o nossas principais conclus\u00f5es:<\/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\">Trabalhe em um subconjunto pequeno, mas representativo, do data para iterar rapidamente.<\/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\">Tenha muito cuidado com o vazamento de data no processo de engenharia de recursos: certifique-se de que todos os recursos que o senhor calcula estar\u00e3o dispon\u00edveis no momento da previs\u00e3o.<\/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\">Selecione uma arquitetura de modelo que lhe permita aproveitar os atrasos o m\u00e1ximo poss\u00edvel, mas tamb\u00e9m tenha em mente as considera\u00e7\u00f5es de complexidade se estiver disposto a ir para a produ\u00e7\u00e3o.<\/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\">Configure uma estrat\u00e9gia de valida\u00e7\u00e3o cruzada adaptada ao seu problema de neg\u00f3cios para avaliar corretamente o desempenho de seus experimentos.<\/div><\/li><\/ul><div class=\"fusion-text fusion-text-28\"><p>Muito obrigado pela leitura at\u00e9 agora e n\u00e3o hesite em entrar em contato com o senhor se tiver algum coment\u00e1rio sobre o assunto!<\/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>Este artigo foi publicado pela primeira vez no Artefact Tech Blog on 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\">Ver artigo<\/span><\/a><\/div><\/div><\/div><\/div><\/div><\/p>","protected":false},"excerpt":{"rendered":"<p>5 de fevereiro de 2021<br \/>\nNeste artigo, Maxime Lutel, cientista da Data, resume o que aprendeu na competi\u00e7\u00e3o de previs\u00e3o de vendas M5, que consistia em prever as vendas futuras em v\u00e1rias lojas do Walmart. Ele apresentar\u00e1 aos senhores a nossa solu\u00e7\u00e3o e discutir\u00e1 qual modelo de aprendizado de m\u00e1quina funcionou melhor para essa tarefa.<\/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\/br\/wp-json\/wp\/v2\/blog\/49861","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.artefact.com\/br\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.artefact.com\/br\/wp-json\/wp\/v2\/types\/blog"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.artefact.com\/br\/wp-json\/wp\/v2\/media\/49866"}],"wp:attachment":[{"href":"https:\/\/www.artefact.com\/br\/wp-json\/wp\/v2\/media?parent=49861"}],"wp:term":[{"taxonomy":"blog-category","embeddable":true,"href":"https:\/\/www.artefact.com\/br\/wp-json\/wp\/v2\/blog-category?post=49861"},{"taxonomy":"blog-language","embeddable":true,"href":"https:\/\/www.artefact.com\/br\/wp-json\/wp\/v2\/blog-language?post=49861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}