Você está na página 1de 4

Manual do utilizador

No âmbito do estágio curricular na Nors, com o tema “Inteligência Computacional Aplicada


à Previsão de Vendas” realizado por Carina Rolo, estudante de mestrado em Engenharia
Matemática, segue-se o documento que tem como objetivo, resumir o processo elaborado
ao longo dos nove meses de estágio.
Caso estudo
O objetivo do projeto passa por utilizar o histórico de vendas das peças do fornecedor
VALEO, no armazém do Seixal, para prever vendas, com a ajuda de redes neuronais, mais
precisamente LSTM (long-short term memory). De seguida, analisar se estas são benéficas
para a empresa e se podem ser uma mais-valia para o modelo com onze métodos, já
implementado na empresa. O projeto foi desenvolvido em python.
Passo 1: Processamento dos dados
Os dados fornecidos pela Nors para o desenvolvimento do estudo, foram retirados de
SGIX (de 01/2017 até 05/2019) e de SAP (de 06/2019 até 12/2022). Os ficheiros
dados_sgix.py e dados_sap.py organizam os dados fornecidos por referência e por mês,
enquanto o ficheiro dados_final.py une os dados obtidos dos dois códigos anteriores,
ficando-se com dois mil, quatrocentas e trinta e seis referências, contendo estas um
histórico de setenta e dois meses.
Passo 2: Agrupamento de referências
De modo a que as redes tenham uma boa performance, inicia-se a separação das séries
temporais por grupos, de maneira que as séries semelhantes fiquem unidas. Esta
separação foi realizada tendo em conta as características das séries temporais. O ficheiro
Feature_Extraction.py retira das séries as características: média, variância, mediana,
tendência, sazonalidade, correlação da série (RAW e TSA)1, assimetria (RAW e TSA)1 e
curtose (RAW e TSA)1.
Após a extração das características segue-se a análise destas, para perceber quais delas
devem ser utilizadas no estudo. Deste modo, o ficheiro KMeans_Complete.py realiza
combinações das características e utiliza o algoritmo K-Means para criar agrupamentos.
Posteriormente analisa-se com quais combinações se obtêm melhores grupos, sendo estas
conclusões, retiradas com o auxílio dos índices de validação.
Ao longo desta análise, foram encontrados grupos com apenas uma referência, com a
suspeita de poder ser considerada um outlier, sendo realizado o estudo de outliers com o
algoritmo hierárquico aglomerativo, ficheiro Outliers_Hierarquico.py.
1
RAW corresponde aos dados originais e TSA corresponde aos dados retirando tendência e sazonalidade.

No fim deste estudo iterativo, que passa por analisar as combinações e resultados, retirar
outlier, voltar a analisar combinações e assim sucessivamente, chega-se à conclusão de
retirar três referências, que serão analisadas individualmente nas LSTM, e que as
características mais adequadas para o estudo são média, variância e mediana.
Passo 3: Escolha do melhor algoritmo de clustering
Utilizando agora as características média, variância e mediana, no ficheiro
Test_Other_Methods.py segue-se a escolha do melhor algoritmo entre KMeans,
KMedoids, Mean-Shift, BIRCH e Spectral Clustering. Através dos índices de validação,
conclui-se que o melhor agrupamento provém do algoritmo KMeans com k=5. Com o
amparo do ficheiro Extração_Clusters.py, faz-se a separação das dois mil, quatrocentas e
trinta e duas referências por grupos.
Passo 4: Limpeza dos dados para as LSTM
Para a utilização das redes é necessário não haver vendas negativas, ou seja, usa-se o
ficheiro Dados_positivos.py, que realiza uma limpeza dos dados. O processo é simples,
quando ocorre uma venda negativa em algum mês, esse valor é substituído por "zero".
Além disso, o valor do mês anterior é ajustado, subtraindo-se o valor da venda negativa do
mês em questão, sendo este processo repetido em todos os meses com vendas negativas.
No final, se o primeiro mês contiver um valor negativo, ele também é substituído por
"zero".
Por fim, retira-se as linhas “zero” e esta limpeza leva a uma redução do número de
referências em estudo, de dois mil, quatrocentas e trinta e duas para mil, novecentos e
catorze.
Passo 5: Análise e ajustamento das redes LSTM
Uma vez que temos cinco grupos e mais três referências individuais, o número de redes a
analisar e a ajustar parâmetros serão oito. Os ficheiros python, scrip_clust{i}.py i Є
{0,1,2,3,4,5,6,7}, permitem ajustar os parâmetros hidden nodes, epoch, batch e learning
rate da rede LSTM. Estes ajustes são concretizados tendo em conta a raiz do erro
quadrático médio das previsões com as vendas reais. Segue-se um exemplo do ajuste da
rede:
Passo 6: Aplicação das redes LSTM
Após concluir o treinamento em todas as oito redes neurais, realiza-se agora as previsões
das referências para os meses de outubro, novembro e dezembro de 2022. Esta tarefa é
executada por meio de três ficheiros: Rede_out.py para outubro, Rede_nov.py para
novembro e Rede_dez.py para dezembro. Contudo, pode-se otimizar utilizando apenas um
ficheiro e alterar o conjunto entrada.
Nos códigos mencionados, o programa efetua previsões das referências por grupo,
levando em consideração os parâmetros específicos de cada grupo, que foram definidos
durante o Passo 5. Em seguida, essas previsões individuais são agregadas em um único
arquivo Excel.
Passo 7: Avaliação do modelo
Por fim, com o ficheiro Avaliação_Com_Peças.py, prossegue-se com a análise e
comparação das previsões da rede neural, em relação aos onze métodos do modelo Nors.
Esta análise é realizada por diferentes perspetivas:

 Análise por Grupo: avaliar individualmente cada grupo para determinar quais dos
doze métodos (inclui a Rede Neural), apresenta melhor desempenho ao calcular as
previsões. Esta comparação é feita considerando o erro absoluto, medido pela
diferença entre a previsão e a venda real (| Previsão – Venda Real |).
 Análise Geral: examinar todas as referências em conjunto, para identificar o
método mais escolhido para fazer as previsões. Novamente, o critério utilizado é o
erro absoluto.
 Análise dos Modelos: considerando três modelos específicos: C1 o Modelo Nors
(onze métodos), C2 o Modelo Rede (um método), e C3 o Modelo Nors + Rede
(modelo com 12 métodos sendo a combinação dos dois anteriores). Esta análise é
realizada tendo em conta as seguintes métricas:
a. Acertos - Percentagem de referências em que a previsão igualou a venda.
b. Satisfaz - Percentagem de referências/peças em que a previsão satisfez a
procura.
c. Excesso - Percentagem de referências/peças em que a previsão resultou em
excesso de stock.
d. Vendas Perdidas / Falta - Percentagem de referências em que a previsão
não foi suficiente para satisfazer a procura.
e. Nível de Serviço - Percentagem de referências/peças em que a previsão
somada ao stock de segurança foi suficiente para satisfazer a procura.
A análise tem como objetivo, verificar se as redes LSTM impactam as previsões de vendas
e se são uma melhoria em relação aos métodos existentes no modelo Nors.

Você também pode gostar