Full text
Universidade do Minho Escola de Engenharia Fábio Alexandre Bértolo dos Santos Algoritmos de Machine Learning para previsão da procura dezembro de 2021 UMinho | 2021 Fábio Alexandre Bértolo dos Santos Algoritmos de Machine Learning para previsão da procura
i Fábio Alexandre Bértolo dos Santos Algoritmos de Machine Learning para previsão da procura Dissertação de Mestrado Mestrado em Engenharia de Sistemas Trabalho realizado sob a orientação de Professora Doutora Ana Maria Alves Coutinho da Rocha Professor Doutor Manuel Carlos Barbosa Figueiredo Dezembro de 2021
ii DIREITOS DE AUTOR E CONDIÇÕES DE UTILIZAÇÃO DO TRABALHO POR TERCEIROS Este é um trabalho académico que pode ser utilizado por terceiros desde que respeitadas as regras e boas práticas internacionalmente aceites, no que concerne aos direitos de autor e direitos conexos. Assim, o presente trabalho pode ser utilizado nos termos previstos na licença abaixo indicada. Caso o utilizador necessite de permissão para poder fazer um uso do trabalho em condições não previstas no licenciamento indicado, deverá contactar o autor, através do RepositóriUM da Universidade do Minho. Licença concedida aos utilizadores deste trabalho Atribuição-NãoComercial-SemDerivações CC BY-NC-ND https://creativecommons.org/licenses/by-nc-nd/4.0/
iii AGRADECIMENTOS É com gratidão que expresso o meu reconhecimento por todos os que me ajudaram em algum momento durante o meu percurso académico. Em primeiro lugar quero agradecer a uma pessoa muito especial, que sempre me motivou e ajudou ao longo desta etapa. Esta pessoa foi claramente fundamental pela motivação que me foi transmitindo ao longo deste tempo de dissertação, que por vezes tem períodos mais difíceis. Agradeço também aos dois orientadores, Professora Doutora Ana Maria Alves Coutinho Rocha e Professor Doutor Manuel Carlos Barbosa Figueiredo pela disponibilidade total, apoio e suporte que demonstraram ao longo deste percurso de dissertação, sendo todo ele acompanhado pela crise pandémica que todos vivemos. Aproveito ainda para agradecer a todos os docentes que fizeram parte do meu percurso do Mestrado de Engenharia de Sistemas, da Escola de Engenharia da Universidade do Minho, pois todos tiveram um papel importante na passagem de conhecimento. Agradeço a todos os envolvidos. Obrigado!
iv DECLARAÇÃO DE INTEGRIDADE Declaro ter atuado com integridade na elaboração do presente trabalho académico e confirmo que não recorri à prática de plágio nem a qualquer forma de utilização indevida ou falsificação de informações ou resultados em nenhuma das etapas conducente à sua elaboração. Mais declaro que conheço e que respeitei o Código de Conduta Ética da Universidade do Minho.
v Algoritmos de Machine Learning para previsão da procura RESUMO Todos os dias milhares de produtos são colocados à disposição de consumidores ou organizações, via produtores, grossitas ou retalhistas, quer fisicamente ou online . Independentemente da indústria, do canal ou do volume, a disposição de mercadoria pressupõe uma alocação e um processo de planeamento para que esses mesmos produtos ou serviços estejam disponíveis no momento em que são procurados. Seria ideal que as empresas conseguissem antecipar o futuro e saber com exatidão o que venderão e quanto venderão. No entanto, ainda só é possível ter certezas sobre o passado e o presente, pelo que o futuro pode apenas ser tocado através da previsão. A previsão da procura não se traduz em garantia, mas permite reduzir a incerteza do lado da oferta até que o risco de tomar decisões se torne tolerável e claramente inferior ao valor que assunção da previsão como próxima da realidade permite aportar. É precisamente na previsão da procura que se focará este caso de estudo, mais concretamente na previsão da procura das lojas do retalhista equatoriano Favorita. A disponibilização dos dados de vendas deste comerciante servirá de base à análise da previsão da procura dos artigos comercializados pela Favorita, através da aplicação de métodos de Machine Learning. A procura dos artigos do retalhista será prevista recorrendo ao uso de redes neuronais recorrentes de memória de longo-curto prazo ( Long Short-term Memory, LSTM). No entanto, tendo em conta a complexa natureza do sortido do negócio a que se aplica este caso, será testado o efeito mediador da aplicação de clustering ao conjunto de produtos da Favorita nos resultados da previsão. Assim, será possível segmentar a informação que é facultada à rede neuronal de previsão e perceber se esta responde melhor ao receber um conjunto não organizado de informação de vendas de todos os artigos ou se é mais eficiente na previsão quando esses artigos estão organizados pela sua semelhança. Adicionalmente, serão também exploradas duas abordagens na aplicação de clustering , de forma iterativa, que permitirão consolidar a conclusão de que a mediação de clustering parece ter efeitos positivos na melhoria dos resultados da previsão da procura dos artigos da Favorita através de redes neuronais LSTM. Palavras-Chave: Clustering , Machine Learning , previsão, redes neuronais, retalho
vi Machine Learning Algorithms for demand forecasting ABSTRACT Everyday thousands of products are made available to consumers or organizations, via producers, wholesalers, or retailers, either physically or online. Regardless of industry, channel or volume, merchandise placement presupposes an allocation and a planning process so that those same products or services are available when they are in demand. Ideally, companies should be able to anticipate the future and know exactly what they will sell and how much they will sell. However, it is still only possible to be certain about the past and the present, so the future can only be touched by forecasting. Demand forecasting does not translate into guarantees, but it allows to reduce uncertainty on the supply side until the risk of taking decisions becomes tolerable and clearly lower than the value that the assumption of the forecast as close to reality allows for. It is precisely on forecasting demand that this case study will be focused, more specifically on forecasting demand for Ecuadorian wholesaler Favorita stores. The availability of sales data from this merchant will serve as a basis for analyzing the forecast demand for products sold by Favorita, through the application of Machine Learning methods. The demand for the wholesaler's items will be forecasted using Long-Short Term Memory (LSTM) recurrent neural networks. However, considering the complex nature of the business assortment to which this case applies, the mediating effect of applying clustering to Favorita's product set on the forecast results will be tested. Thus, it will be possible to segment the information that is provided to the predictor neural network and see if it responds better when receiving an unorganized set of sales information for all items or if it is more efficient in the prediction when these items are organized by their similarity. Additionally, two approaches in the application of clustering will also be explored, in an iterative manner, which will allow consolidating the conclusion that clustering mediation seems to have positive effects in improving the results of forecasting the demand for Favorita’s products through LSTM neural networks. Keywords: forecasting, clustering, Machine Learning, neural networks, retail
vii ÍNDICE Agradecimentos ..................................................................................................................................... iii Resumo................................................................................................................................................... v Abstract.................................................................................................................................................. vi Lista de Abreviaturas e Siglas.................................................................................................................. x Lista de Figuras...................................................................................................................................... xi 1. Introdução ...................................................................................................................................... 1 1.1 Enquadramento ...................................................................................................................... 1 1.2 Objetivo da dissertação .......................................................................................................... 2 1.3 Metodologia de investigação ................................................................................................... 3 1.4 Estrutura da dissertação ......................................................................................................... 8 2. Revisão da literatura ..................................................................................................................... 10 2.1 Previsão da procura ............................................................................................................. 10 2.2 Níveis de agregação na previsão .......................................................................................... 11 2.3 Previsão da procura no retalho ao nível do produto .............................................................. 12 2.3.1 Dimensão temporal ...................................................................................................... 13 2.3.2 Dimensão de produto ................................................................................................... 14 2.3.3 Dimensão na cadeia de abastecimento ........................................................................ 15 2.4 Fatores de influência na previsão da procura ....................................................................... 15 2.4.1 Padrões de variação recorrente .................................................................................... 15 2.4.2 Decisões internas de negócio ....................................................................................... 16 2.4.3 Fatores externos e desconhecidos ................................................................................ 17 2.5 Machine Learning ................................................................................................................. 18 2.5.1 Melhoria da previsão com Machine Learning ................................................................ 18 2.5.2 Tipos de aprendizagem em Machine Learning ............................................................. 19 2.6 Clustering ............................................................................................................................. 20 2.6.1 Caracterização e métodos de clustering ....................................................................... 20 2.6.2 Métodos de partição ..................................................................................................... 21 2.6.3 Clustering aplicado à previsão ...................................................................................... 23
2 de um negócio, as empresas devem ter modelos de previsão da procura adequados aos seus produtos (Chen & Lu, 2017). Apesar desta área de previsão da procura ser uma grande área de exploração para ML, é também uma área complexa pelas interdependências entre uma grande quantidade de fatores de influência (Weber & Schütte, 2019). Segundo Fildes et al. (2019) várias características de um produto, como por exemplo a intermitência, sazonalidade, calendário de eventos, promoções, entre outras podem ser fatores de influência. Métodos baseados em ML têm sido propostos na literatura, surgindo como alternativa aos tradicionais (métodos estatísticos). Segundo Makridakis et al. (2018), a inteligência artificial, em especial as redes neuronais artificiais, apresentam-se como algoritmos com vantagens para o desenvolvimento de modelos de previsão, havendo cada vez mais artigos científicos que utilizam este tipo de abordagens para modelar a previsão da procura. Além da crescente exploração de métodos, como redes neuronais artificiais, alguns autores têm vindo a estudar a implementação de técnicas de clustering que podem melhorar os resultados em áreas como a previsão da procura (Chen & Lu, 2017; Dai et al., 2015; Kumar & Patel, 2010; Ruitenbeek, 2019). 1.2 Objetivo da dissertação O objetivo da presente dissertação é o estudo de algoritmos de Machine Learning , nomeadamente de clustering e redes neuronais, para a previsão da procura de um retalhista. A comparação a realizar será focada na vertente de clustering , sendo desenvolvidas duas abordagens distintas na forma como é aplicada a segmentação de produtos, tendo como principal objetivo analisar se o clustering , na prática, tem impacto positivo na previsão da procura, ao utilizar redes neuronais como modelo preditivo. Para atingir o objetivo proposto é necessário dividir o objetivo principal e definir um conjunto de passos que incluem as seguintes tarefas: • Revisão da literatura na área da previsão, modelos supervisionados (por exemplo redes neuronais) e modelos não supervisionados (por exemplo clustering ); • Escolha de metodologia, com base na literatura, que permite definir várias etapas essenciais para o desenvolvimento de um projeto de Machine Learning ; • Definição dos modelos de clustering e redes neuronais a utilizar, tendo em conta a revisão de literatura, onde é importante perceber como este tipo de modelos de Machine Learning atuam;
3 • Escolha de uma base de dados online na plataforma Kaggle , que por sua vez é o conjunto de dados de um retalhista, que tem informação sobre as vendas diárias de vários produtos. A área do retalho é uma área de grande volume de dados, pois cada retalhista tem normalmente um vasto sortido de produtos, e por esse motivo prevê-se a manipulação de um grande volume de dados; • Realizar as várias etapas, segundo uma metodologia, sendo que, pelo menos, as etapas de exploração e tratamento de dados, desenvolvimento de modelos de clustering e redes neuronais e análise de resultados serão abordadas; Após a realização das várias etapas descritas anteriormente será possível obter respostas concretas e fundamentadas pelos resultados dos testes desenvolvidos, respondendo à questão objeto de estudo: Terá o clustering impacto prático positivo na previsão da procura, utilizando redes neuronais como modelo preditivo? 1.3 Metodologia de investigação A existência de um plano é essencial na investigação, ainda que este esteja presente apenas na mente do investigador (Booth et al., 2016). A metodologia a utilizar num estudo é fundamental para o planeamento das etapas, para assegurar o cumprimento dos objetivos e conferir confiabilidade nos resultados. Desta forma, para este estudo, a metodologia é bem definida, tendo por base a Onion Research , Figura 1. Figura 1 - Onion Research (Saunders, Lewis, and Thornhill 2019) Segundo a abordagem apresentada por Saunders, Lewis, and Thornhill (2019) definem-se as várias camadas da metodologia de investigação – a filosofia, a abordagem ao desenvolvimento da investigação,
4 a escolha metodológica, a estratégia, o horizonte temporal e, por último, as técnicas e os procedimentos. A filosofia deste estudo será o pragmatismo, uma vez que se pretende responder a perguntas de investigação formuladas face ao contexto do problema. Já a abordagem será dedutiva pois começa-se a desenvolver uma hipótese com base na literatura, e gradualmente testa-se a hipótese num contexto particular. Seguir-se-á uma estratégia de caso de estudo visando a descoberta e o desenvolvimento de conhecimento detalhado e intensivo sobre um caso ou um número de casos relacionados. Considerando as ferramentas a utilizar, será aplicado um mono método quantitativo, pois a recolha de dados seguirá métodos quantitativos. Pretende-se um estudo transversal, uma vez que existe uma limitação temporal para a dissertação. Deste modo, é importante referir que o estudo se insere numa área específica da Inteligência Artificial, sendo assim um campo complexo, e por esse motivo é importante perceber as melhores práticas para potenciar todo o pipeline de um projeto de ML. Desta forma, e segundo (Piatetsky, 2014; Wirth, 2000), uma metodologia permite: a replicação de projetos, a melhoria na gestão e/ou planeamento do projeto, a utilização de melhores práticas e potenciar resultados. As metodologias utilizadas nestas áreas são abordadas por vários autores na literatura. A metodologia Cross-industry standard process for data mining (CRISP-DM), tendo em conta publicações da comunidade da Kdnuggets , teve um grande crescimento na última década, sendo já a mais utilizada em projetos de Data Mining (Piatetsky, 2014). Desta forma, e de modo a desenvolver boas práticas, este projeto seguirá na sua generalidade a metodologia CRISP-DM, que tem seis etapas. A Figura 2 representa as várias etapas desta metodologia. Figura 2 - CRISP-DM (SAP, 2020)
5 Deste modo, e segundo Shafique and Qaiser (2014), as seis etapas que contemplam esta abordagem (Figura 3-Figura 8) descrevem-se de seguida: • Fase 1 - Business understanding : Figura 3 - Business Understanding (SAP, 2020) É a primeira fase desta metodologia, que se foca em descobrir fatores importantes, incluindo critérios de sucesso, objetivos e requisitos de negócio e data mining , bem como terminologias de negócios e técnicos. • Fase 2 - Data understanding : Figura 4 - Data Understanding (SAP, 2020) A segunda fase desta metodologia foca-se na recolha, verificação da qualidade e exploração dos dados de forma a obter insights para formar hipóteses de informação oculta.
6 • Fase 3 - Data preparation : Figura 5 - Data Preparation (SAP, 2020) É a terceira fase desta metodologia que se foca na seleção e preparação final dos dados. Esta fase pode incluir muitas tarefas, seleção de tabelas e atributos, bem como limpeza (depuração) e transformação de dados. • Fase 4 - Modeling : Figura 6 – Modeling (SAP, 2020) Esta é a quarta fase desta metodologia, cujo objetivo é a aplicação de técnicas de modelação. Nesta fase podem ser definidos parâmetros diferentes e são construídos modelos diferentes para o mesmo problema.
7 • Fase 5 - Evaluation : Figura 7 – Evaluation (SAP, 2020) Esta é a quinta fase desta metodologia que se centra na avaliação dos modelos obtidos e na decisão de como usar os resultados. A interpretação do modelo depende do algoritmo e os modelos podem ser avaliados para reavaliar se os objetivos são atingidos de forma adequada ou não. • Fase 6 - Deployment : Figura 8 – Deployment (SAP, 2020) Esta fase é a sexta, e última, desta metodologia que se foca em determinar como utilizar o conhecimento obtido, bem como os resultados. Também se organiza, relata e apresenta o conhecimento adquirido.
8 1.4 Estrutura da dissertação A dissertação terá uma estrutura simples que permite uma divisão clara entre a parte de revisão de literatura e a parte de aplicação de conhecimento teórico. Desta forma, existe o Capítulo 1 de introdução da dissertação, onde se escreveu, enquadramento ao tema, para que, de seguida, se descreva o objetivo da dissertação, que tem por base uma metodologia de investigação, sendo este tópico de descrição da estrutura da dissertação inserido neste primeiro capítulo da dissertação. Após esta descrição inicial sobre a base da dissertação, segue-se o Capítulo 2 sobre a revisão da literatura, que aborda os tópicos principais da dissertação, com base na investigação. Os primeiros tópicos referem-se à previsão da procura que engloba os níveis de agregação utilizados na previsão, a previsão da procura no retalho ao nível do produto, que requer a análise de dimensões temporais, de produto e da cadeia de abastecimento. Descreve-se ainda a vertente referente aos fatores que podem influenciar a previsão da procura. Nesta vertente existe uma grande quantidade de informação disponível na comunidade científica, sendo que os padrões de variação recorrentes, decisões internas de negócio e fatores externos e até desconhecidos, são fatores de influência na procura, sendo que estes fatores de influência podem de certa forma caracterizar a procura de um dado retalhista em várias dimensões diferentes. O tópico seguinte aborda os modelos de Machine Learning , que devido ao seu potencial de atuação são cada vez mais utilizados, numa sociedade cada vez mais dependente de dados. Este tópico foca-se no entendimento do conceito e dos tipos Machine Learning, o que servirá de introdução aos modelos de clustering e redes neuronais que são os tópicos consequentes. Como referido, o tópico seguinte será o clustering, onde são abordados os tipos de clustering , explicando os métodos de partição, com foco no K-means , abordando ainda a aplicação do clustering na previsão. No tópico de redes neuronais, serão explorados alguns tipos de redes existentes, e serão descritas as suas várias características, como o neurónio, estrutura da rede, função de ativação, direcionando o tópico para a rede neuronal recorrente de memória longa (do inglês, Long Short-term Memory - LSTM ). A revisão da literatura termina assim com a descrição das métricas que são amplamente utilizadas na literatura para medir os resultados obtidos na previsão da procura e que vão ser também utilizadas na avaliação dos modelos que serão desenvolvidos na parte prática da dissertação. Finalizado o capítulo da revisão da literatura, inicia-se a parte prática da dissertação onde é desenvolvido um caso de estudo. No Capítulo 3 começa por fazer-se a introdução ao caso de estudo, onde se descreve o retalhista escolhido, Favorita, e se inicia também a exploração e tratamento de dados
9 disponibilizados pelo retalhista, o que permite perceber o negócio, o tipo de dados, a fiabilidade dos dados e tomar decisões sobre a forma de tratamento dos dados. Segue-se o Capítulo 4 com a aplicação de modelos de clustering , aos dados do caso de estudo, onde são definidas e descritas duas abordagens de aplicação. O resultado do clustering realizado nas duas abordagens é o input necessário para o desenvolvimento do Capítulo 5, onde se aplicam modelos da rede neuronal recorrente de memória longa, LSTM. Este capítulo inicia-se com a realização de testes à parametrização da rede, testando vários modelos LSTM para um dos clusters desenvolvidos numa das abordagens de clustering , de forma a selecionar o modelo LSTM com melhores resultados. O modelo LSTM selecionado será utilizado na comparação entre modelos LSTM com clustering e sem clustering aplicados à previsão da procura de produtos. Para finalizar a vertente prática segue-se o Capítulo 6, onde é feita a análise dos resultados obtidos, que é divido na Abordagem 1 e 2 visto que ambas são comparadas com o modelo LSTM sem clustering. O objetivo principal da avaliação dos resultados é responder à questão de estudo, que levou à criação do caso prático, ao testar se o clustering influencia positivamente os resultados da previsão da procura, quando se utilizam redes neuronais, neste caso do tipo LSTM, como modelo preditivo. No último capítulo da dissertação são apresentadas as conclusões, onde é realizada uma reflexão do trabalho desenvolvido, descrevendo e fundamentando as conclusões chave que se podem retirar, bem como sugerir os passos seguintes que irão surgir com base nos resultados obtidos nesta dissertação.
10 2. REVISÃO DA LITERATURA 2.1 Previsão da procura A previsão da procura tornou-se vital para a gestão (e crescimento) de muitos retalhistas nos últimos anos, uma vez que os maiores retalhistas não podem simplesmente contar com abordagens imprecisas ou com intuição para prever a procura. Para otimizar os seus investimentos em stock e maximizar a margem bruta de retorno do investimento em inventário (do inglês, Gross Margin Return on Inventory Investment ), os retalhistas necessitam de previsões precisas para cada unidade em stock (do inglês, Stock Keeping Unit (SKU)) em cada loja. Na sua essência, a previsão é um processo estatístico que usa dados existentes para prever a performance futura. Na área científica relativa à previsão, há pelo menos uma certeza: todas as previsões têm incerteza, sendo que muitas vezes a única coisa que varia entre previsões é a extensão da incerteza (Makridakis et al., 2020). A previsão é uma das questões mais importantes, além de todas as decisões estratégicas e de planeamento, em operações de negócio, como por exemplo, na área do retalho. Para um negócio de retalho rentável, a precisão na previsão da procura é crucial, desde logo na organização e planeamento da produção, nas compras, na logística e também no planeamento de equipas de trabalho (Ramos et al., 2015). A previsão de séries temporais tem progredido muito nos últimos 30 anos. Segundo Makridakis et al. (2020) esta evolução pode ser medida, por exemplo, através das publicações sobre competições, primeiramente na competição Makridakis, depois na competição M3 e mais recentemente na competição M4. A previsão da procura é uma previsão estatística em relação à predisposição dos consumidores para comprar produtos, a um preço e num período de tempo específico. Simplificando a ideia, se os retalhistas pudessem prever com precisão, estes poderiam facilmente minimizar os custos e por consequência, maximizar os seus lucros. Obter previsões da procura fiáveis é essencial para a integridade das operações de retalho porque reduz a incerteza dos seus processos. Tendo um cálculo preciso de quantas unidades serão vendidas num dado espaço temporal, os retalhistas podem encomendar, alocar e repor estes produtos adequadamente. Além da cadeia de abastecimento e da gestão de stock, com uma previsão precisa num
11 ambiente de planeamento de retalho uniformizado, existe a possibilidade ainda de otimizar o armazenamento, a programação da workforce , os planogramas, e muito mais. Em suma, a previsão da procura abrange e pode ter um grande impacto em diversas áreas da cadeia de um retalhista, em diferentes níveis das suas operações. Algo importante a reter é que a capacidade de prever com precisão é fundamental para a minimização de custos, com aumento de lucros ou oferta de produtos a menores preços. Outros benefícios segundo Småros and Kaleva (2021a) são: • Aumento das vendas com o aumento da disponibilidade do produto; • Redução da deterioração e consequentemente disponibilização de produtos mais frescos e atrativos, pois existe uma alocação de stock mais precisa e constante; • Aumento da rotação do stock através da redução da necessidade de stock segurança; • Custos com pessoal reduzidos por meio da otimização dos turnos, baseada em previsões nas lojas e centros de distribuição. 2.2 Níveis de agregação na previsão Segundo Fildes et al. (2019), toda a previsão no retalho depende do nível de agregação que é realizado sobre as unidades de produto, locais ou intervalos de tempo, sendo estes definidos com base no objetivo da previsão. O termo agregação na previsão da procura refere-se às vendas totais no retalho para um dado: mercado, entreposto, tipo de loja (ex. loja de cidade ou hipermercado) ou ao nível de uma loja individual com previsões específicas do produto (SKU, marca ou categoria), isto é, agrega-se por produtos, promoções e até por um espaço temporal (dia, semana) ao longo de um período de tempo. A Figura 9 apresenta esta abordagem da agregação. Figura 9 - Hierarquia no retalho: de SKU para loja para cadeia para mercado (Fildes et al., 2019) O Market-level apresenta-se na Figura 9 como alto nível, sendo que a previsão de vendas agregadas, tendo em conta este nível, refere-se às vendas totais de uma categoria do retalho, um dado canal, ou
18 2.5 Machine Learning “Humans can typically create one or two good models a week, Machine Learning can create thousands of models a week.” – Thomas H. Davenport (SAS, 2021) Machine Learning é primeiramente uma área dentro da Inteligência Artificial, área normalmente associada à possibilidade de colocar um robot a imitar os comportamentos de um humano, que tem o grande objetivo de aprender de que forma o ser humano desenvolve a sua inteligência. ML é um sistema que tem a capacidade de ser treinado através de dados, permitindo encontrar padrões, com o objetivo de auxiliar na tomada de decisões com a mínima intervenção humana. Consegue-se assim entender o crescimento que ML tem vindo a ter, potenciada pelo Big Data , e que tem vindo a ser implementada numa grande variedade de áreas (SAS, 2021; Småros & Kaleva, 2021b). 2.5.1 Melhoria da previsão com Machine Learning Machine Learning permite adicionar conhecimento ao sistema, melhorando as suas recomendações recorrendo a dados. Com o crescimento da quantidade de dados que é gerada pelos retalhistas, esta tecnologia rapidamente provou ser uma boa solução. Esta tecnologia consegue identificar e utilizar padrões, que se traduzem em conhecimento, que neste caso é proveniente de histórico de dados. Pela literatura percebe-se que uma das maiores vantagens de ML é permitir abranger um grande número de fatores que podem ter impacto na procura diária, por exemplo. Esta capacidade tem muito valor porque aporta um grande conhecimento para o modelo (Dickey et al., 2019; Santos, 2019). Na verdade, os algoritmos de ML não são novos, pois foram desenvolvidos há décadas, quando em 1950s Arthur Samuel da IBM desenvolveu um programa de computador para jogar damas. É importante referir que, quando estes algoritmos foram desenvolvidos, havia um grande problema: não havia a facilidade de aceder a uma grande quantidade de dados, o que é possível hoje em dia, e é esta mudança que permite a ML ter um grande crescimento e impacto. Desta forma, ML não só pode melhorar a previsão da procura, como também automatizar grande quantidade do trabalho de planeamento, devido à capacidade de processamento de uma grande quantidade de dados, algo incapaz de ser feito pelo ser humano comum (Dickey et al., 2019; Marr, 2016; Santos, 2019).
19 2.5.2 Tipos de aprendizagem em Machine Learning A base de ML consiste em permitir que um algoritmo aprenda com base num conjunto de dados. O algoritmo, com base nos dados fornecidos, tende a gerar e criar um conjunto de regras, com decisões e resultados fiáveis, que incluem previsões, com base na inferência de dados, a partir dos exemplos “aprendidos”. Tem-se assim, um processo diferenciado, pois o algoritmo aprende e vai ajustando os seus resultados, num processo iterativo, de modo a ganhar conhecimento representativo para conseguir melhorar o seu desempenho ao longo do tempo, isto é, os computadores aprendem e constroem modelos matemáticos sem depender de programação step-by-step , podendo ainda adaptar-se quando são expostos a novos dados. Algo importante a reter é que quanto maior a quantidade de dados disponível para treinar o modelo, mais robustez o modelo vai ganhar e aprender o que resultará em outputs mais precisos (Santos, 2019). Segundo Santos (2019) e SAS (2021) os métodos de ML são tipicamente categorizados em três tipos de aprendizagem: • Supervisionada → os algoritmos com base na aprendizagem supervisionada são treinados com base em dados de entrada e de saída que são inicialmente fornecidos ao algoritmo. Existe uma aprendizagem com base em outputs conhecidos, o que permite ao modelo adaptar-se e minimizando o seu erro, de modo, a aprender a melhor forma de obter o resultado conhecido com base em dados de input. Este tipo de aprendizagem é amplamente utilizado em aplicações onde os dados históricos podem prever eventos futuros. • Não supervisionada → Os dados de entrada são fornecidos ao algoritmo. O objetivo é que o algoritmo aprenda a reconhecer padrões nos dados fornecidos. É utilizado quando se pretende relacionar e agrupar dados sem que o algoritmo dê um output . Exemplos são o seu uso na identificação de segmentos de clientes que têm determinados atributos similares. • Por reforço → Um ambiente dinâmico é configurado de modo a interagir com o algoritmo de aprendizagem com o objetivo de fornecer uma avaliação sobre a resposta do sistema, isto é, baseia-se na aprendizagem por tentativa – erro, percebendo quais as possíveis ações que trazem mais benefícios. Este tipo de aprendizagem é normalmente utilizado em robótica, jogos e navegação. Mas em ML nem tudo são vantagens e este método também tem limitações, como a probabilidade de ocorrer overfitting , que sucede quando o modelo se “especializa” demasiado num conjunto de dados, sendo incapaz de generalizar o problema. Por outro lado, surge também a dimensionalidade, que ocorre
20 quando existem problemas para entender os dados resultantes de várias dimensões. Existe outra limitação relacionada com o acesso a um conjunto de dados suficientemente grande e que seja representativo do problema (Santos, 2019). Contudo, os modelos de ML têm demonstrado melhor desempenho do que modelos convencionais e muitos estudos têm aprovado os benefícios que esta metodologia tem em séries temporais. A maior diferença é que os modelos tradicionais, como o modelo auto-regressivo integrado de médias móveis (do inglês, Autoregressive Integrated Moving Average , ARIMA) ou regressão linear, necessitam de suposições sobre a linearidade e a estacionariedade das séries temporais. Estes métodos assumem que a média e as variâncias das séries estocásticas são finitas, constantes e invariantes no tempo. Desta forma, as redes neuronais artificiais (do inglês, Artificial Neural Networks, ANN) podem surgir como solução para eliminar algumas desvantagens destes métodos tradicionais (Santos, 2019). 2.6 Clustering A análise de clusters ou clustering é o processo de dividir um conjunto de objetos de dados (ou observações) em subconjuntos. O objetivo do clustering é formar subconjuntos ou aglomerados, isto é, clusters , formados por objetos muito semelhantes entre si, embora muito diferentes de objetos noutros clusters . O grande objetivo é que os dados sejam agrupados de acordo com a sua semelhança a outros objetos, de forma que seja garantida a alta-homogeneidade intra-cluster e a alta-heterogeneidade interclusters . Assim dois objetos no mesmo cluster são considerados muito semelhantes entre si, mas considerados muito diferentes de outros objetos noutros clusters . Podemos assim inferir que instâncias semelhantes pertencem ao mesmo grupo e instâncias diferentes pertencem a cluster distintos. Assim, o clustering é útil na medida em que pode levar à descoberta de grupos anteriormente desconhecidos dentro de um mesmo grupo de dados, que se assumem como similares entre si. 2.6.1 Caracterização e métodos de clustering O clustering é considerado uma técnica que pertence à vertente de aprendizagem não supervisionada de Machine Learning , uma vez que a informação referente à classificação da classe de dados não é conhecida. Por isso, esta técnica é uma forma de aprendizagem por observação, em vez de aprender por exemplos. Algumas questões importantes, amplamente debatidas na literatura sobre a análise de clusters prendem-se com a escalabilidade dos métodos de clustering , a eficácia dos métodos para agrupar clusters com formas complexas (por exemplo, não convexas), os tipos de dados ao qual se aplica
21 o clustering (por exemplo, texto, gráficos e imagens), técnicas de clustering de grande dimensionalidade e os métodos para clustering de dados nominais e numéricos (Han et al., 2011). Existem diversas formas através das quais se pode realizar clustering , que variam no algoritmo que é utilizado para a divisão dos objetos em subconjuntos. Destacam-se métodos que podem gerar diferentes divisões em clusters para o mesmo conjunto de dados, nomeadamente os métodos de partição, os métodos hierárquicos e os métodos baseados na densidade, que variam no algoritmo e no procedimento para a divisão das instâncias em clusters , de acordo com diferentes critérios. Desta forma, algumas das características dos principais métodos de clustering são (Han et al., 2011): • Método de partição → Encontram clusters de forma esférica, mutuamente exclusivos. Incluem os algoritmos de K-means e K-medoids . São métodos baseados na distância. Podem utilizar a média ou medóides para representar o centro do cluster . São eficazes para datasets pequenos e médios; • Métodos hierárquicos → Consideram o clustering como uma decomposição hierárquica, isto é, multinível. Não corrigem fusões ou separações erradas. Podem incorporar várias técnicas como o micro clustering e considerar os objetos como “ligações”; • Métodos baseados na densidade → Encontram clusters de forma abstrata e aleatória. Os clusters são regiões densas de objetos no espaço que são separados por regiões de baixa densidade. A densidade do cluster consiste em que cada ponto deve ter um número mínimo de pontos na sua “vizinhança”. Conseguem também filtrar outliers . 2.6.2 Métodos de partição Os algoritmos de clustering de partição dividem o conjunto de dados num determinado número de clusters mutuamente exclusivos, com o objetivo de minimizar certos critérios (por exemplo, uma função de erro quadrado) e podem, portanto, ser tratados como problemas de otimização. Dentro deste tipo de métodos de partição, o algoritmo mais amplamente usado, conhecido e de aplicação simples é a abordagem iterativa de K-means , cujo objetivo é a minimização da distância Euclidiana das instâncias ao centroide de cada cluster (Omran et al., 2007). O algoritmo K-means define o centróide (𝜇𝑘) de um cluster k como o valor médio dos pontos dentro do cluster. A sua função ativação J expressa-se como: 𝐽=∑∑𝑊𝑖𝑗‖𝑥𝑗−𝜇𝑖‖2 𝑛 𝑗=1 𝐾 𝑖=1
22 em que 𝑊𝑖𝑗 é a função característica do j -ésimo ponto no i -ésimo cluster para um conjunto de K clusters e n é o número de pontos/objetos do dataset D. Os valores possíveis de 𝑊𝑖𝑗 são 1, se o ponto j pertence ao cluster i , ou 0, se não pertence ao cluster . Primeiro, o algoritmo K-means seleciona aleatoriamente K objetos em D, cada um dos quais representa inicialmente uma média do cluster ou centro. Para cada um dos objetos restantes, um objeto é atribuído ao cluster com o qual é mais semelhante, baseado na distância Euclidiana entre o objeto e o respetivo cluster . O algoritmo K-means melhora iterativamente a variação dentro do cluster . Para cada cluster , o algoritmo calcula depois a nova média (novos centroides) usando os objetos que vão sendo atribuídos ao cluster na iteração anterior. Todos os objetos são então reatribuídos usando as médias atualizadas como os novos centros de cluster . As iterações continuam até que a alocação esteja estável, ou seja, os clusters formados na iteração atual são os mesmos que foram formados na iteração anterior. O procedimento pode ser resumido da seguinte forma (Han et al., 2011): Método K-means Inputs : K : o número de clusters; D : um dataset que contém n objetos; 1 – O algoritmo escolhe arbitrariamente k objetos do dataset D como os centros originais do cluster; 2 – Repetir: Realoca cada objeto ao cluster com o qual o objeto é mais similar, com base no valor da média dos objetos do cluster (objetos com menor distância ao centróide); Atualiza as médias dos clusters , isto é, volta a calcular a média dos objetos para cada cluster (determina novos centróides); Até estabilizar, ou seja, até que duas iterações resultem nos mesmos clusters com a mesma média. Output: Um conjunto de K clusters. Figura 12 - Método K-means (Han et al., 2011) Embora o algoritmo de K-means seja um dos métodos mais populares para a realização de clustering , podem ser destacadas vantagens, mas também limitações à sua aplicação. Por um lado, é um método
23 simples e intuitivo de aplicar, adequa-se a grandes datasets e adapta-se facilmente a novos dados e exemplos. Por outro lado, exige que o utilizador conheça o contexto da aplicação dos dados para que possa pré-definir o número K de clusters , é muito sensível a outliers , define clusters muito heterogéneos em tamanho e densidade, e a sua performance é muito afetada pela dimensionalidade dos dados (Han et al., 2011). Na explicação do funcionamento do algoritmo de K-means apresentado anteriormente, percebe-se que para iniciar o processo de clustering , o algoritmo tem de receber um número de clusters pré-definido, K , que define o número de subconjuntos que resultarão da técnica de clustering . São conhecidos vários métodos para a definição deste parâmetro, mas um dos mais conhecidos, e frequentemente utilizado no algoritmo K-means é o método do Cotovelo (do inglês Elbow ). Determinar o número adequado de clusters num conjunto de dados é importante, não só porque alguns algoritmos de clustering exigem esse parâmetro, mas também porque o número apropriado de clusters controla a granularidade adequada da análise de clusters (Han et al., 2011). O método do cotovelo é baseado na premissa de que o aumento do número de clusters pode ajudar a reduzir a soma da variância dentro de cada cluster , que é o objetivo base do clustering . Tal ocorre porque o aumento do número de clusters conduz a uma maior captação de conjuntos mais pequenos de objetos de dados, que são mais semelhantes entre si. No entanto, o efeito marginal de reduzir a soma das variâncias dentro do cluster vai diminuindo à medida que mais clusters vão sendo formados, uma vez que a divisão de um cluster estável em dois leva a uma pequena redução da variância intra-cluster . Consequentemente, o método do cotovelo é muito útil na seleção do número ótimo de clusters , visto que extrai o ponto ótimo da curva da soma das variâncias dentro do cluster em relação ao número de clusters e permite encontrar o número exato de clusters que otimiza a minimização da heterogeneidade intracluster (Han et al., 2011). Tecnicamente, dado um 𝐾> 0, podem ser formados K clusters no conjunto de instância em análise, usando o algoritmo de K-means , para o qual se calcula a soma das variâncias dentro do cluster , 𝑉𝑎𝑟(𝐾). Pela observação da curva da variância em relação a K , retira-se que o primeiro (ou mais significativo) ponto de viragem da curva sugere o número ótimo de clusters (Han et al., 2011). 2.6.3 Clustering aplicado à previsão Segundo Fildes et al. (2019), a análise de clusters é considerada útil para melhorar o desempenho da previsão. Ao agregar a procura, por exemplo, ao nível da categoria de produto sobre as lojas, consegue-se agrupar as lojas com base em padrões de procura semelhante, e não pela proximidade
24 geográfica entre as lojas. Acontece com frequência o agrupamento a priori com base em características da loja, como tamanho, localização, entre outros. Contudo, se for realizado clustering de forma apropriada podem obter-se diferenças importantes entre lojas, por exemplo, a sensibilidade ao preço dos seus consumidores, sendo importante, como referido, que o clustering entre lojas seja realizado tendo em conta padrões de procura semelhantes, sendo a reação à mudança de preço um exemplo. Após esta apreciação, percebe-se que o clustering é capaz de resolver o trade - off entre parametrização agregada e heterogeneidade, conseguindo soluções mais eficientes. Grande parte das pesquisas exploraram esta questão, mas com foco no uso da segmentação para estimar fatores de sazonalidade, como a pesquisa de Chen and Boylan (2007). Estas pesquisas demonstram evidências de que pode ser útil agregar séries temporais correlacionadas para estimar melhor a sazonalidade, uma vez que pode reduzir a variabilidade. 2.7 Redes Neuronais Artificiais As redes neuronais têm vindo a tornar-se bastante populares em várias áreas, sendo denominadas como aprendizagem supervisionada, pois na sua essência a rede aprende com base em valores de outputs previamente conhecidos. Existe uma grande evolução no número de organizações que tem vindo a investir em redes neuronais para resolver problemas. Por exemplo, nos dias de hoje, a inteligência artificial tem sido extensivamente aplicada para a otimização de problemas em diversas áreas, como a indústria de transformação, a exploração de petróleo e para outros negócios (Abiodun et al., 2018). As redes neuronais artificiais têm uma ligação biológica que utiliza vários elementos únicos de processamento que se dominam como neurónios ou nós. Os neurónios são assim conectados entre eles por mecanismos que consistem num conjunto de pesos. Nestes modelos de redes neuronais é normal uma arquitetura com uma camada de entrada, uma camada de saída e um ou mais camadas ocultas (Santos, 2019). As redes neuronais artificiais também têm evoluído ao longo do tempo com crescente utilização, numa sociedade cada vez mais rica em dados. Primeiramente a Feed-forward Neural Network (FNN), que se define como uma rede simples, pois esta rede tem vários neurónios conectados entre si, sendo que a informação avança sempre desde a entrada da rede até à sua saída, sem ciclos ou loops . Seguiuse a rede Multilayer Perceptron (MLP), que já contempla um algoritmo de backpropagation durante o treino da rede. A Figura 13 demonstra este tipo de redes (Almeida, 2019).
25 Figura 13 - Percepton layer (esquerda) e Multilayer Percepton (direita) (Gupta, 2017) Cada camada contempla um conjunto de neurónios que estão ligados a outros neurónios em camadas adjacentes (Santos, 2019). O neurónio recebe sinais de entrada e transforma essa entrada num único output . De acordo com a Figura 14, a função F é denominada como função ativação, e tem-se (SAP, 2015; Zou et al., 2008): • 𝑋𝑖 (𝑖=1,2,…,𝑛) é um sinal externo e b é a constante Bias que normalmente é 1. • 𝑊𝑖 (𝑖=0,1,…,𝑛) é o valor do peso de cada ligação. Figura 14 – Neurónio (SAP, 2015) Assim, a camada de entrada define-se como as variáveis de entrada, utilizando um nó para cada entrada. As camadas ocultas é o local onde se processa a informação de modo a encontrar as relações não lineares entre variáveis, recorrendo a pesos. Uma das dificuldades no treino de redes neuronais artificiais (do inglês, Artificial Neural Networks, ANN) é a definição do número apropriado de neurónios na camada oculta. A camada de saída é formada por um neurónio que apresenta o valor previsto. Abordando um exemplo, uma rede neuronal pode ser treinada com dados históricos de uma série temporal, de modo que esta consiga encontrar padrões não lineares na série. O modelo tem um processo iterativo, durante o processo de treino, onde são ajustados os pesos com o objetivo de minimizar os erros
26 da previsão (Santos, 2019). A Figura 15 apresenta um exemplo de uma estrutura de uma rede neuronal (SAP, 2015). Figura 15 - Estrutura de uma rede neuronal (SAP, 2015) Com a evolução e a diversa aplicação das redes neuronais, são também exploradas as redes Deep Learning que se diferenciam pela variedade de camadas, sendo por esse motivo um modelo com uma aprendizagem mais profunda, como o seu nome indica. Dentro das várias possibilidades de redes, temse como exemplo a Rede Neuronal de Convolução ou a Rede Neuronal Recorrente. Entre este tipo de possibilidades, têm-se desenvolvido vários estudos baseados em redes neuronais recorrentes, principalmente focados nas Long Short-term Memory (LSTM), que são um tipo de rede neuronal recorrente capaz de aprender dependências ao longo do tempo em problemas que a predição é sequencial (Almeida, 2019; Brownlee, 2017). 2.7.1 Função de ativação As funções de ativação são uma parte crítica durante o desenho de uma rede neuronal, principalmente pelo impacto que a escolha desta função tem na rede. A escolha da função de ativação na camada oculta pode definir o quão bem a rede neuronal aprende com o dataset de treino, enquanto esta escolha ao nível da camada de saída define o tipo de previsão que o modelo pode fazer. Desta forma, é natural que a escolha desta função varie de acordo com o tipo de problema de cada projeto. Ao nível matemático, a função de ativação define como a soma dos pesos dos inputs é transformada, definindo assim o tipo de output (Brownlee, 2021). Relativamente à função de ativação, e também como referido anteriormente, esta tem impacto em dois componentes diferentes da rede neuronal, nas camadas ocultas e nas camadas de output . Por esta razão, percebe-se que uma rede neuronal pode ter mais do que um tipo de função de ativação. Normalmente todas as camadas ocultas utilizam a mesma função ativação, sendo que atualmente uma das mais utilizadas é a Rectified Linear Unit (ReLu). Verifica-se que a função de ativação da camada de output é tipicamente diferente da utilizada na camada oculta (Brownlee, 2021).
27 Sabendo que uma rede neuronal é um conjunto de funções matemáticas, as funções de ativação são normalmente diferenciáveis, o que significa que a derivada de primeira ordem é calculada para um determinado valor de entrada. Esta necessidade surge porque tipicamente uma rede neuronal é treinada seguindo um algoritmo de erro denominado Backpropagation , que necessita da derivada do erro de previsão para atualizar os pesos da rede (Brownlee, 2021). Em relação aos tipos de funções de ativação, embora exista uma vasta gama, é comum usar apenas um pequeno grupo de funções. Segundo o artigo de Brownlee (2021), a camada oculta recebe funções de ativação como, ReLu, Sigmoid ou Tanh . A Figura 16 demonstra uma tendência existente na escolha da função de ativação, tendo em conta as diferentes arquiteturas de redes neuronais, como as redes neuronais recorrentes que normalmente utilizam a função Sigmoid ou a Tanh . Figura 16 - Escolha da função ativação na camada oculta (Brownlee, 2021) Em relação às funções de ativação para a camada de output , é de referir que a escolha desta função na camada de output define o resultado do problema. Existem assim alguns problemas comuns que utilizam as funções enunciadas pela Figura 17 (Brownlee, 2021). Figura 17 - Escolha de função ativação para camada output (Brownlee, 2021)
34 3. CASO DE ESTUDO O caso de estudo proposto tem como objetivo principal estudar, analisar e testar se a aplicação de clustering ao nível da agregação dos produtos traz benefícios na previsão da procura para um caso específico, tendo em conta que é utilizado um modelo de redes neuronais, Long-Short-Term Memory , para testar esta abordagem. De um modo mais detalhado os passos que caracterizam este caso de estudo são: • Escolher um retalhista que disponibilize dados sobre vendas para um conjunto de produtos, que contempla uma posterior compreensão do negócio após seleção; • Preparar os dados, nesta fase para perceber que tipo de registos foram disponibilizados, o tratamento que estes dados necessitam e o que os dados permitem analisar; • Realizar clustering para segmentar os produtos; • Realizar previsão recorrendo a redes neuronais – em específico, o tipo de redes neuronais recorrentes LSTM, de modo a comparar os resultados obtidos utilizando ou não clustering de produtos. 3.1 Introdução Para a realização da parte prática do trabalho foi necessário escolher uma ferramenta de trabalho, mais precisamente um ambiente de desenvolvimento integrado (do inglês Integrated Development Environment , IDE) e a linguagem de programação que permita desenvolver toda a parte prática do caso de estudo. O IDE escolhido foi o Visual Studio Code recorrendo à linguagem de programação python . O primeiro passo na preparação do caso de estudo foi escolher uma entidade/empresa que disponibilizasse dados de vendas para a sua gama de produtos. Após uma vasta pesquisa, foram escolhidos os dados da Corporación Favorita, um grande grossista do Equador, com 54 lojas, que disponibiliza os seus dados em: https://www.kaggle.com/c/favorita-grocery-sales-forecasting/data O objetivo desta empresa ao partilhar os seus dados foi o de desafiar a comunidade do website Kaggle a desenvolver abordagens que pudessem melhorar a previsão da procura das suas lojas. Os dados disponibilizados pela empresa são descritos de seguida.
35 Train.csv: O ficheiro train.csv, cujo pequeno excerto pode ser visualizado na Figura 24, apresenta uma grande quantidade de registos com as seguintes variáveis: • Date → data do registo; • Store_nbr → número que identifica a loja; • Item_nbr → número que identifica o produto; • Unit_Sales → valor sobre a quantidade de unidades vendidas; • Onpromotion → se o produto está ou não em promoção numa determinada data e loja. Figura 24 - Train.csv Deste modo, o train.csv tem informação relevante sobre as unidades vendidas numa determinada data, loja e produto que será a grande base para o trabalho a desenvolver. Em relação à variável que se pretende prever, unidades vendidas, esta pode ser encontrada neste ficheiro como número inteiro, representando, por exemplo, a venda de 1 saco de batatas, mas também pode ser encontrada como um número decimal, que poderá indicar, por exemplo, a venda de 1.5 Kg de queijo. A empresa informa que pode haver registos negativos nesta base de dados que representam devoluções de produtos na variável “ Unit_sales ”. Em relação à variável ‘ onpromotion’ a empresa informa que 16% dos registos não têm valores, sendo apresentados, como se verifica na Figura 24, como “NaN”. Stores.csv: O ficheiro Stores.csv, cujo pequeno excerto pode ser visualizado na Figura 25, tem informação relevante sobre as lojas da Favorita, tendo as seguintes variáveis: • City → local onde se encontra loja; • State → estado onde se encontra a loja; • Type → tipo de loja; • Cluster → cluster a que uma determinada loja pertence. A Favorita já realizou previamente uma análise de clusters às suas lojas, da qual surgiram 17 clusters, sendo importante referir que não
36 houve acesso há forma como foi realizado o clustering de lojas. Alguns destes clusters vão servir de base ao clustering que será depois feito aos produtos. Figura 25 - Stores.csv Items.csv: O ficheiro Items.csv, cujo pequeno excerto pode ser visualizado na Figura 26, tem informação relevante sobre os produtos que a Favorita tem no seu sortido, tendo as seguintes variáveis: • Family → família a que um determinado produto pertence; • Class → a classe de produto; • P erishable → se é ou não um produto com validade e que perde propriedades ao longo do tempo. Figura 26 - Items.csv Oil.csv: O ficheiro Oil.csv, cujo pequeno excerto pode ser visualizado na Figura 27, tem informação sobre o preço do petróleo por data. A empresa refere que esta informação pode ser relevante, visto que o Equador é um país dependente do petróleo e que a saúde da sua economia tem uma grande vulnerabilidade consoante o preço do petróleo.
37 Figura 27 - Oil.csv Holidays_events.csv: O ficheiro Holidays_events.csv, cujo pequeno excerto pode ser visualizado na Figura 28, tem uma informação variada sobre as datas que representam momentos de celebração no Equador. Figura 28 - Holidays_events.csv Após a descrição inicial sobre a informação que a Favorita disponibiliza segue-se a análise dos dados que é um dos passos fundamentais para a aplicação de modelos. 3.2 Manipulação e tratamento inicial de dados O primeiro passo para a preparação de dados foi verificar se os vários ficheiros eram todos lidos facilmente, quer pelo seu tamanho quer pela sua importação nas ferramentas utilizadas. Este primeiro passo tem o objetivo de verificar se a manipulação dos dados pode ou não ser impactada pelo seu tamanho. Durante esta verificação surgiu o primeiro desafio, pois o ficheiro train.csv tinha 5.25 GB de tamanho, o que dificultava a sua manipulação. De modo a solucionar este problema inicial, o ficheiro train.csv foi dividido em 54 ficheiros, denominados store{}.csv em que {} entre 1 e 54, que são o número de lojas da Favorita. Com este tipo de transformação passou a ser possível a manipulação dos dados com maior rapidez e com divisão por lojas. Após a divisão dos dados por loja, foi realizado um tratamento simples em todos os ficheiros disponíveis com o objetivo de normalizar os nomes das variáveis, definir o tipo de dados de cada variável e tornar os dados mensais, como apresentado na Figura 29.
38 Figura 29 – Dados sobre clusters de loja O código necessário e as tabelas finais para esta secção são demonstrados no Apêndice I – Divisão por loja e tratamento inicial dos ficheiros de dados Favorita. 3.3 Criação de dataset sobre meteorologia no Equador É importante referir que todos os ficheiros foram tidos em conta, visto que teoricamente, como abordado na revisão da literatura, a informação envolvente pode influenciar as vendas e é também por esse motivo que, apesar de não ser dada essa informação pela Favorita, foi extraída informação relacionada com a meteorologia no Equador de 2013 a 2017 no website: https://www.visualcrossing.com/, o que permitiu criar um dataset com informação variada sobre a meteorologia no Equador. Mesmo não tendo a certeza se esta informação seria útil para os modelos, o tratamento e exploração foi realizada de forma transversal para todos os dados disponíveis. Foi também criado um dataset com informação sobre o número de dias de fim de semana, para cada mês de cada ano, representado com um Index composto pelo número do mês e o número do ano (Ex. Março de 2013 – 201303), entre janeiro de 2013 e agosto de 2017. O código utilizado e as tabelas finais para esta secção são apresentados no Apêndice II – Criação de dataset para meteorologia Equador e dataset com número de fins de semana por mês 3.4 Agregação dos dados por clustering de lojas De seguida, no processamento dos ficheiros com as vendas de cada loja, surgiu a necessidade de agregar alguns destes ficheiros de forma a permitir analisar a informação. Através da análise de clusters que a Favorita já tinha realizado anteriormente (variável ‘ Cluster ’ do dataset Stores.csv), agregou-se a informação pelo número de clusters, isto é, dos 54 ficheiros iniciais com as vendas de individuais de cada loja (store{}.csv), passou a ter-se 17 ficheiros, em que cada ficheiro incluía as vendas de todas as lojas dentro de um mesmo cluster . Por exemplo, na Figura 30, podem ver-se as vendas diárias de todas
39 as lojas do cluster de lojas 3. Assim, foram criados 17 datasets , denominados ‘cluster{}.csv’, em que {} é a variação numérica de 1 a 17, que têm todos os registos de vendas referentes a cada cluster de lojas. Figura 30 – Dataset cluster3.csv com as vendas diárias de todas as lojas do cluster de lojas 3 Figura 31 - Lojas do cluster 3 Figura 32 - número de lojas por cluster de lojas Desta divisão realizada por cluster de loja, decide-se escolher um dos clusters de lojas para ser utilizado na restante análise do caso de estudo, visto que posteriormente, e caso faça sentido, deve realizar-se o mesmo processo para os restantes clusters . O cluster 3 foi escolhido pois englobava o maior número de lojas, no total 7, o que era a melhor representação possível dos 17 clusters de lojas tidos à disposição (ver Figura 31 e Figura 32). O código necessário e as tabelas finais para esta secção são demonstrados no Apêndice III – Agregação dos dados por cluster de loja.
40 3.5 Exploração e análise detalhada dos dados ‘cluster3.csv’ No seguimento do tratamento dos dados disponíveis, sendo que até este ponto todo o tratamento foi aplicado a todos os dados de todos os clusters , o estudo passa a focar-se apenas no cluster 3, o que permitirá uma melhor análise e uma mais clara compreensão para o leitor. A Figura 33 contém um excerto do dataset com as vendas diárias por produto de todas as lojas do cluster 3. Figura 33 - Dataset com as vendas diárias de cada produto de todas as lojas do cluster 3 Ao analisar o dataset , percebe-se que os dados têm alguns problemas que afetam a qualidade e não redundância dos dados, impedindo o seu correto processamento, nomeadamente: • Dataset extenso, com muita informação dispersa e no qual era difícil encontrar padrões e preparar conclusões. • Dados de vendas não agregados, sendo que cada linha representa as vendas diárias em unidades de cada produto, para cada loja. • Grande variação da variável ‘Sales_Unit’ e difícil perceção de quantos dias de venda ocorreram por produto para cada mês e para cada loja; • Existência de missing values na variável ‘Promo?’, que foram transformados em ‘-1’ para facilitação da visualização. 3.6 Tratamento de missing values na variável ‘Promo?’ Como referido anteriormente, a variável ‘Promo?’ continha missing values , sendo necessário o seu tratamento para prosseguir com o caso de estudo. Figura 34 - "Promo?" antes de ser revista
41 A Figura 34 apresenta os dados referentes ao cluster 3, onde se verifica que existem valores -1 na variável ‘Promo?’ que necessitam de ser revistos. De modo a proceder a este tratamento foram realizados os seguintes passos: • Criar uma variável dummy com a média de vendas, ‘Mean_sales’ com o Index ano e mês; • Substituir valores -1 da ‘Promo?’. Se ‘Sales_unit’ > ‘Mean_sales’ então ‘Promo?’ = 1, caso contrário ‘Promo?’ = 0; • Criar uma nova variável‘%Promo’ que é calculada para cada registo único Store_id, Prod_id, year, month , que se traduz em ‘%Promo’ = ∑𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑑𝑖𝑎𝑠 𝑐𝑜𝑚 𝑝𝑟𝑜𝑚𝑜çã𝑜 ∑ 𝑛ú𝑚𝑒𝑟𝑜 𝑡𝑜𝑡𝑎𝑙 𝑑𝑒 𝑑𝑖𝑎𝑠 𝑝𝑜𝑠𝑠í𝑣𝑒𝑖𝑠, como apresentado na Figura 35. • Eliminar a variável dummy ‘Mean_sales’ com o Index ano e mês; Figura 35 - Transformação da 'Promo?' em '%Promo' 3.7 Agregação das Vendas por mês e ano e criação de novas variáveis O dataset do cluster 3 contém 2905 produtos diferentes e registos entre janeiro de 2013 e agosto de 2017. Cada linha representa as vendas para um determinado mês e ano, para cada produto. Com base nos problemas identificados, foram feitas as seguintes medidas para os resolver: • Agrupar os dias de vendas por mês e ano, criando uma chave composta com o número de mês e o número do ano e agrupar todas as vendas de um determinado mês e ano para determinado produto numa única linha. • Criar a variável ‘Avg_nr_days’ que informe o número de registos que em média um dado produto tinha registo para um determinado Index, que nos ajuda a perceber se existem ou não grandes variações de número de registos. • Criar a variável ‘nr_store’ que informa a quantidade de lojas que um determinado ‘Prod_id’ tem registo, o que nos diz se todos os produtos se vendem em todas as lojas ou não. • Calcular a mediana e o desvio padrão apenas para controlar as variações.
42 • Agrupar os dias de vendas por mês e ano, criando uma chave composta com o número de mês e o número do ano e agrupar todas as vendas de um determinado mês e ano para determinado produto numa única linha. • Com base nas variáveis criadas anteriormente, foi feito um ajuste na variável de vendas ‘Sales_unit’ que muda a forma como os registos estão apresentados. Este ajuste resume-se a transformar a variável de vendas de registos de vendas por ‘Store_id’, ‘Prod_id’ e ‘Index’, para a venda média diária para um determinado ‘Index’ e ‘Prod_id’. Esta alteração foi realizada para uniformizar os dados. • Eliminar a variável ‘Store_id’. Visto que este cluster tem 7 lojas, que por sua vez foram consideradas pela Favorita como fazendo parte do mesmo cluster , assume-se que todas as lojas contidas no mesmo cluster têm características iguais, o que levou a que se eliminasse o ‘Store_id’, reduzindo assim a redundância na informação. Criar a ‘Daily_Avg_sales_unit’, agregada por ‘Index’ e ‘Prod_id’, que nos informa das vendas para um dado ano e mês e produto, sendo que não foi realizado a soma de vendas mensais, pois esta soma levaria ao enviesamento das séries temporais, pois cada produto, como se verifica pela Figura 36, tem uma quantidade de registos diferentes e com presença diferente nas lojas. Como exemplo tem-se o produto 103501 que, para janeiro de 2013, só vendeu em 28 dias, sendo que neste ano só vendia numa das 7 lojas. Esta curta análise permitiu perceber que existem vários fatores que influenciam os registos, o que levou a transformar a variável que se pretende prever, ‘Daily_Avg_sales_unit’, para uma base diária para um dado ‘Index’ e ‘Prod_id’, para não haver extrapolação para dados mensais, o que permitiu manter a coerência dos dados e realizar o tratamento pretendido. Resumindo, e para o mesmo exemplo, o produto 103501 vendeu em média por dia 6.09 unidades em janeiro de 2013 para cada loja. As alterações anteriores ao dataset podem ser visualizadas na Figura 36. Figura 36 - Análise inicial ao cluster 3 Na Figura 36 também é possível verificar que existem produtos com fraca quantidade de registos, o que implicou a sua substituição ou eliminação, uma vez que decorria o risco de que enviesassem a previsão. Um exemplo é o produto 99197 que só tinha 3 meses de registo. Este é um produto que foi
43 eliminado do dataset pois não tem representatividade pelo baixo nível de registos. Como não se consegue ter uma relação próxima com a Favorita de modo a perceber se existem mais dados sobre estes produtos, é preferível que sejam eliminados da análise. A Figura 37 demonstra o resultado após esta eliminação de produtos, sendo que o critério para a sua eliminação foi garantir que cada produto tinha a série temporal de registo de janeiro de 2016 a agosto de 2017 completa, caso contrário seria eliminado. Este critério surge porque faz sentido ter todos os registos referentes ao ano anterior ao que se pretende prever. Neste caso, pretende-se prever os meses de 2017 disponíveis, logo é relevante garantir o registo de todo o ano de 2016. Figura 37 - Cluster 3 após eliminação de produtos Note-se que deste tratamento houve eliminação de alguns produtos, passando de 2905 para 1875, mas desta forma pôde garantir-se maior fiabilidade nos dados que se apresentam para os 1875 produtos. Apesar de se perder representatividade em muitos produtos, interessa realçar que manter esses produtos iria causar ruído nos dados o que levaria à criação de modelos e resultados enviesados do objetivo de estudo. De modo a finalizar todo este processo de exploração e tratamento de dados, agregou-se num dataset toda a informação relevante extraída dos vários ficheiros mencionados anteriormente, o que resulta na Figura 38 que agrega informação adicional sobre ‘Nr_weekends’, ‘Holidays?’, ‘Avg_oil_price’, ‘%Nr_days_Promo’ além da variável a prever ‘Daily_Avg_sales_unit’. Figura 38 - Cluster 3 dataset pronto para previsão Toda a parte de tratamento de dados e reengenharia de variáveis é claramente identificada na literatura como sendo a fase do fluxo da criação de modelos que consome mais tempo. Foi de facto a
50 Na Figura 47 podem ver-se os resultados da aplicação do método do cotovelo para o modelo, em que o k sugerido é 6, o que irá pelo menos mudar o número de clusters obtidos com esta Abordagem 2, em relação ao obtido na Abordagem 1. Neste caso a métrica de Silhouette para o K-means é de 0.918, conforme apresentado na Figura 48, revelando quão bem os produtos foram agrupados nos 6 clusters . Figura 48 - Silhouette K-means, abordagem 2 A Figura 49 apresenta informação sobre os clusters criados nesta Abordagem 2: • Cluster 1 → todos os produtos são Food e perecíveis. • Cluster 2 → todos os produtos são Food e não perecíveis; • Cluster 3 → todos os produtos são Nonfood ; • Cluster 4 → todos os produtos são Drinks ; • Cluster 5 → todos os produtos são Cleaning ; • Cluster 6→ todos os produtos são perecíveis, sendo 46,79% dos produtos do cluster Dairy (tem todos os Dairy no total dos produtos) e 53,21% Produce ; Figura 49 - Descrição dos 6 clusters K-means, Abordagem 2 Além de se conhecer as características que definem cada cluster de produtos, é também de referir o número de produtos em cada cluster : o cluster 1 tem 171 produtos que são perishables e da família Food ; o cluster 2 tem 716 produtos da família Food mas que não são perishables ; o cluster 3 tem 261 produtos da família Nonfood ; o cluster 4 tem 260 produtos da família Drinks; o cluster 5 tem 249 produtos da família Cleaning; o cluster 6 tem 218 produtos sendo todos perishables , 46,79% da família Dairy e 53,21% da família Produce .
51 A Figura 50 refere-se à segmentação realizada para os 6 clusters , apresentando os valores médios para cada uma das variáveis. Figura 50 - Informação por cluster para K-means Resumindo, obteve-se um modelo com 6 clusters , que recorreu a mais informação sobre os produtos para realizar a segmentação pretendida. Na descrição das características de cada cluster consta-se que existe praticamente um cluster para cada família de produtos, sendo interessante verificar que o modelo criou dois clusters da família Food , mas separou-os pela sua característica de perder ou não propriedades ao longo do tempo, Perishables . Mais resultados obtidos nesta Abordagem 2 podem ser encontradas no Apêndice VII – Clustering abordagem 2
52 5. REDE NEURONAL RECORRENTE NO CASO DE ESTUDO Neste capítulo serão descritos os modelos de redes neuronais recorrentes de memória de longo prazo (do inglês, Long short-term memory ou LSTM). Inicialmente, é selecionado um dos clusters que foram obtidos nas duas abordagens de clustering , por forma a realizar uma avaliação inicial entre modelos LSTM com diferentes parâmetros. Desta forma, e apesar de não ser o objetivo principal de estudo a obtenção do melhor modelo LSTM para a previsão da procura dos produtos da Favorita, pretende-se avaliar, de forma simples, que parametrização, estrutura da rede e hiperparâmetros podem ser adequados para estudar e comparar as duas abordagens de clustering em comparação com uma abordagem sem clustering . Deste modo foram realizados os seguintes testes: • Teste 0 → testar o modelo LSTM escolhido inicialmente; • Teste 1 → verificar se o aumento do número de epochs tem impacto nos resultados; • Teste 2 → verificar se a mudança da função de ativação tem impacto nos resultados; • Teste 3 e 4 → verificar se o número de camadas ocultas tem impacto nos resultados; • Teste 5 → verificar se o aumento do número de neurónios tem impacto nos resultados; • Teste 6 → verificar se o aumento do número de batchs tem impacto nos resultados. Para analisar os testes são calculadas 4 métricas, RMSE, MSE, MAE e MAPE, para avaliação dos resultados dos modelos. Os resultados são analisados atribuindo mais peso às métricas MSE e MAE, pelo facto da métrica MSE penalizar erros maiores e a métrica MAE permitir perceber em termos absolutos a escala do erro. O RMSE permite paticamente a mesma interpretação que o MSE, apenas mudando a escala de resultados. O MAPE não é tão valorizado porque a venda média diária, para a maioria dos produtos é baixa, isto é, pequenas variações levam a obter erros maiores. De forma a realizar estes 6 testes foi escolhido o cluster 1, sendo ainda necessário escolher o modelo LSTM de iniciação, que tem as seguintes características: • Batch → 10; • Timesteps → 12 meses; • Epochs → 500; • Número de camadas ocultas → 3; • Número de neurónios por camada → 8*8*8; • Função de ativação → Tanh ; • Loss function utilizada para treino da rede → MSE;
53 • Optimizador → Adam. Para o desenvolvimento dos modelos LSTM são utilizados alguns packages em python como: TensorFlow , Keras e Sklearn . Figura 51 - Resultados dos testes dos modelos LSTM A Figura 51 apresenta os 6 testes com variação ao modelo LSTM inicial, onde o modelo LSTM com melhores resultados nas métricas de RMSE, MSE, MAE e MAPE se divide entre o definido inicialmente e o modelo onde se alterou a função ativação. Deste modo, consegue-se perceber que os vários hiperparâmetros do modelo LSTM resultam em variações, por vezes significativas, nos resultados obtidos. Para prosseguir no caso de estudo escolheu-se o modelo inicial pois não existe nenhum outro testado com resultados melhores ao nível de MSE e MAE. Sendo que, neste caso, se decidiu manter o modelo LSTM inicialmente definido. Assim irá utilizar-se este modelo LSTM para avaliar se a aplicação de clustering melhora ou não os resultados obtidos na previsão da procura. Após esta primeira fase de realização de testes, e utilizando um dos modelos que demonstrou ter melhores resultados, segue-se o desenvolvimento de cenários para analisar as duas abordagens de clustering , em comparação com o modelo LSTM sem clustering . O objetivo é separadamente comparar: • Modelo LSTM sem clustering com modelo LSTM com clustering da Abordagem 1; • Modelo LSTM sem clustering com modelo LSTM com clustering da Abordagem 2. É importante referir que todo o código necessário para desenvolver os modelos é demonstrado no Apêndice VIII – Redes neuronais. Para o desenvolvimento deste modelo LSTM foram realizados os seguintes passos: • Preparação do dataset - ajustar os dados para um problema supervisionado; • Normalização dos dados e definição dos parâmetros; A transformação dos dados para um problema supervisionado tem que ver com a criação de timesteps, sendo definido um intervalo de tempo. Neste caso, são escolhidos 12 meses para que o modelo possa ter dados referentes às vendas dos últimos 12 meses, com o objetivo de prever o valor
54 médio diário de vendas para o próximo mês. Esta informação passa a ser apresentada em colunas ou em vários arrays como demonstra a Figura 52. Figura 52 - Transformar dados para problema supervisionado O segundo passo é a normalização dos dados ( MinMaxScaler) e o intervalo de mínimo e máximo escolhido para normalizar os dados foi definido de acordo com as funções de ativação utilizadas na rede. Neste caso de estudo utiliza-se de -1 a 1 pois é utilizada a função de ativação Tanh nas camadas ocultas da rede LSTM. A Figura 53 apresenta a estrutura do modelo LSTM: 1 camada de input → 3 camadas ocultas LSTM → 1 de output . Figura 53 - Arquitetura do modelo LSTM Uma nota importante em relação aos modelos é que estes não incluem outras variáveis além das vendas com os timesteps . Isto é, apesar de se ter explorado e realizado tratamento para toda a informação que a Favorita disponibilizou, esta não foi totalmente utilizada na construção do modelo. Ao contruir as redes percebeu-se que, apesar de terem um enorme potencial no processamento de dados e na eficiência dos resultados, os recursos computacionais que necessitam e o tempo de processamento podem ser um problema. Nesse sentido, como o objetivo do caso de estudo não é encontrar o modelo
55 com os melhores resultados possíveis, o aumento de variáveis iria consumir mais recursos computacionais para processar as redes. Foi por esse motivo que não se realizaram testes com mais informação além das vendas. Além de que adicionar este tipo de informação não traria benefícios práticos para o que se pretende avaliar neste caso de estudo. No entanto, a fase de exploração e tratamento é muito importante, podendo futuramente ser aplicada para desenvolver o melhor modelo LSTM para a previsão da procura. É importante referir ainda que todos os modelos LSTM usam dados entre janeiro de 2013 e dezembro de 2016 para treino, cada modelo LSTM é avaliado com base na previsão dos primeiros oito meses de vendas do ano 2017, que são comparados com os valores reais de vendas, utilizando para isso as quatro métricas descritas anteriormente para o cálculo dos erros. Como referido primeiramente desenvolve-se o modelo LSTM sem clustering , isto é, que não usa a segmentação de produtos, sendo que o modelo utiliza toda a informação que existe sobre o cluster de lojas 3, que neste caso representa os registos de vendas para 1875 produtos. Este modelo é sem dúvida um modelo generalista, no sentido de que é expectável teoricamente que a sua performance seja menor, por realizar a previsão para todos os produtos do cluster de lojas. O output deste modelo é a previsão da procura entre janeiro e agosto de 2017 (Index entre 201701 e 201708) para os 1875 produtos. De seguida é desenvolvido o modelo LSTM com clustering da Abordagem 1, que é uma abordagem simplista, pois a segmentação dos produtos é realizada apenas recorrendo a informação sobre as vendas médias diárias de cada produto, como referido anteriormente. O modelo de LSTM nesta abordagem utiliza a segmentação realizada pelo modelo de K-means , em que foram definidos 5 clusters de produtos. Desta forma, para cada um dos 5 clusters são gerados os resultados da aplicação do modelo LSTM definido. Dos 5 clusters de produtos, o cluster 1 tem 1391 produtos, o cluster 2 tem 107 produtos, o cluster 3 tem 34 produtos, o cluster 4 tem 342 e o cluster 5 tem 1 produto (é um outlier ao nível de vendas diárias médias dos produtos). A outra abordagem é também um modelo LSTM com clustering da Abordagem 2, embora mais completa ao nível de informação, pois o algoritmo de clustering usa mais informação sobre os produtos, nomeadamente sobre a família dos produtos e se estes são perecíveis ou não, sendo importante referir que foi utilizada informação tendo em conta o que foi fornecido pela Favorita. São assim criados 6 modelos LSTM, pois o modelo K-means para esta abordagem segmentou os produtos em 6 grupos. Dos 6 clusters de produtos, o cluster 1 tem 171 produtos, o cluster 2 tem 716 produtos, o cluster 3 tem 261, o cluster 4 tem 260 produtos, o cluster 5 tem 249 e o cluster 6 tem 218 produtos.
56 6. ANÁLISE DE RESULTADOS Esta é a última etapa da metodologia CRISP-DM, e também a etapa onde se avaliam os modelos desenvolvidos. É de referir que se segue uma metodologia que na sua essência é ágil, pois permite de forma cíclica a interação com as várias etapas do processo. Neste caso de estudo, essa agilidade, permitiu como será descrito neste capítulo, voltar atrás para ajustar a forma de realização do clustering , após avaliação dos resultados obtidos na Abordagem 1, da qual surgiu a necessidade de desenvolvimento da Abordagem 2. 6.1 Resultados da Abordagem 1 De modo a analisar os resultados obtidos para os testes desenvolvidos na Abordagem 1 é apresentada a Figura 54, onde é possível visualizar os resultados obtidos para as 4 métricas (RMSE, MSE, MAE e MAPE) para os 5 clusters de produtos. A coluna “MODELO” indica a estratégia usada, em que “LSTMcluster” diz respeito ao modelo LSTM com clustering e “LSTM” refere-se ao modelo LSTM sem clustering . A coluna “Cluster prod” indica o número do cluster obtido com a Abordagem 1. Figura 54 - Resultados da Abordagem 1 Interpretando a Figura 54 verifica-se que as conclusões divergem ao longo dos clusters . No cluster 1 os resultados são similares entre o modelo com clustering e sem clustering , sendo que o mesmo se verifica no cluster 2 e cluster 4 pelo que é difícil, com os resultados obtidos nestes 3 clusters, escolher qual dos modelos tem melhores resultados. Apenas para o cluster 3 é possível afirmar que o modelo com clustering (“LSTM-cluster”) apresenta resultados superiores ao modelo sem clustering (“LSTM”), apresentando por exemplo ao nível de MSE uma melhoria de 8,3% e no MAE de 28%. Além da incerteza que prevalece nos resultados da Abordagem 1 em relação à avaliação se é ou não vantajoso a aplicação de clustering , verifica-se que o cluster 5 apenas tem 1 produto, o que não é representativo de um clustering , o que exige a sua não consideração para esta avaliação.
57 De modo geral e analisando os resultados para os 5 clusters a indiferença entre o modelo com clustering e sem clustering foi tornando-se repetitiva ao longo da análise, contrariando o que teoricamente seria expectável, que seria de ter melhores resultados com a segmentação. Esta indiferença entre modelos e a constante mudança do modelo com melhores resultados, ao longo dos 5 clusters levantou a seguinte questão: Terá a simples abordagem de realizar o clustering , utilizando apenas a variável de vendas diárias médias (Abordagem 1), sido responsável para a obtenção destes resultados pouco conclusivos? Foi com base nesta questão relevante que se decide refazer a forma de realização de clustering de produtos, e desta forma desenvolve-se a Abordagem 2, que irá dar mais informações sobre os produtos ao modelo de clustering . 6.2 Resultados da Abordagem 2 A Abordagem 2 poderá resultar na mesma conclusão, ao apresentar resultados inconclusivos em relação ao uso de clustering na previsão, utilizando redes neuronais LSTM, mas nesse caso, já existem duas abordagens distintas, na forma como se realiza o clustering , a sustentar o caso de estudo. Desenvolvida a Abordagem 2, já explicada anteriormente, segue-se a análise dos resultados obtidos, que são descritos de seguida, em que “LSTM-cluster” diz respeito ao modelo LSTM com clustering e “LSTM” refere-se ao modelo LSTM sem clustering . Figura 55 - Resultados da Abordagem 2 A Figura 55 mostra que o ajuste realizado nesta segunda abordagem tem impacto, pois verifica-se: • No cluster 1 o modelo com clustering apresenta resultados significativamente melhores, onde por exemplo o MSE teve uma melhoria de 54% e o MAE de 45%; • No cluster 2 o modelo com clustering volta a ter melhores resultados, com melhorias de 1% no MSE e de 17% no MAE;
58 • No cluster 3 o modelo com clustering volta a apresentar melhores resultados, com melhorias de 11% no MSE e de 35% no MAE; • No cluster 4 os resultados mudam completamente e o modelo sem clustering (“LSTM”) apresenta melhorias significativas ao nível de MSE, cerca de 28%, sendo interessante verificar que ao nível de MAE o mesmo não acontece, pois, ambos os modelos têm o mesmo erro. Provavelmente este cluster tem alguns produtos que tiveram erros maiores, o que fez com que o MSE fosse muito superior, mas posteriormente vai analisar-se este caso; • No cluster 5 o modelo com clustering tem melhores resultados, com melhoria de 0,6% no MSE e de 9% no MAE; • No cluster 6 o modelo com clustering tem melhores resultados, com melhoria de 19% no MSE e de 25% no MAE. Conclui-se assim que a realização de clustering de produtos se concretiza numa melhoria significativa dos resultados de previsão em 5 dos 6 clusters analisados. Na Abordagem 2 os resultados permitem identificar de forma clara, para cada cluster, qual o melhor modelo, com ou sem clustering , o que não aconteceu na Abordagem 1. O cluster 4 tem resultados contrários sendo importante a sua análise. Da realização da análise ao cluster 4 conclui-se que 3 produtos (1463807, 1463806 e 1464210) são responsáveis por metade do MSE obtido para os 260 produtos. Ao realizar uma análise mais profunda, em que se retirou estes três produtos do modelo LSTM com clustering e sem clustering , obtém-se uma melhoria de 50% da métrica MSE, porém não altera a conclusão retirada anteriormente em relação ao cluster 4. Esta melhoria considerável, nas várias métricas, para 5 dos 6 clusters , permite assumir que a segmentação de produtos contribui positivamente para a previsão da procura, utilizando modelo de redes LSTM. 6.3 Discussão de resultados Após a análise das duas abordagens é possível perceber e afirmar que o nível de informação que se tem disponível, em relação aos produtos, para a realização do clustering é o ponto diferenciador, para ter ou não melhores resultados, reforçando a análise anterior. Pode-se afirmar que a escolha da informação relevante sobre os produtos para o clustering e a forma como se realiza o clustering é o ponto crítico/chave deste caso de estudo, sendo os resultados obtidos entre as duas abordagens a prova desta conclusão. Por um lado, tem-se a Abordagem 1 onde os resultados não permitem conclusões claras
59 sobre se o clustering é ou não benéfico para a previsão de vendas recorrendo a redes neuronais LSTM. Por outro lado, com a Abordagem 2, já é possível percebe que em 5 dos 6 clusters o modelo com clustering tem melhorias significativas nos resultados. Desta forma, a Abordagem 2 vem confirmar a teoria e o propósito de segmentação que caracteriza o clustering , demonstrando que a segmentação de produtos melhora a capacidade preditiva, num tipo de modelos de redes neuronais LSTM. É de realçar que no caso de estudo o clustering é abordado em conjunto com a previsão da procura, que é um tema muito discutido e estudado na literatura, pela dinâmica e desafios que a gestão desta área implica. De referir ainda que se aplica esta abordagem a redes neuronais do tipo LSTM, que são também um tipo de algoritmos atualmente muito estudados pela comunidade científica na previsão de séries temporais.
66
67
68 APÊNDICE II – CRIAÇÃO DE DATASET PARA METEOROLOGIA EQUADOR E DATASET COM NÚMERO DE FINS DE SEMANA POR MÊS
69 APÊNDICE III – AGREGAÇÃO DOS DADOS POR CLUSTER DE LOJA
70 APÊNDICE IV– TRATAMENTO MISSING VALUES ‘PROMO?’
71 APÊNDICE V– EXPLORAÇÃO E ANÁLISE DETALHADA DOS DADOS ‘CLUSTER3.CSV’
72
73
74 APÊNDICE VI – CLUSTERING ABORDAGEM 1
75
82 APÊNDICE VIII – REDES NEURONAIS
83
84