• Nenhum resultado encontrado

Aplicação de machine learning para predição de manutenção de máquinas em empresa de transporte e logística de combustíveis

N/A
N/A
Protected

Academic year: 2021

Share "Aplicação de machine learning para predição de manutenção de máquinas em empresa de transporte e logística de combustíveis"

Copied!
74
0
0

Texto

(1)

ESCOLA DE ENGENHARIA

DEPARTAMENTO DE ENGENHARIA DE PRODUÇÃO GRADUAÇÃO EM ENGENHARIA DE PRODUÇÃO

NITERÓI Julho / 2020

APLICAÇÃO DE MACHINE LEARNING PARA PREDIÇÃO DE MANUTENÇÃO DE MÁQUINAS EM EMPRESA DE TRANSPORTE E LOGÍSTICA DE COMBUSTÍVEIS

AUTOR: GUSTAVO PEREIRA LUCCHETTI

(2)

GUSTAVO PEREIRA LUCCHETTI

APLICAÇÃO DE MACHINE LEARNING PARA PREDIÇÃO DE MANUTENÇÃO DE MÁQUINAS EM EMPRESA DE TRANSPORTE E

LOGÍSTICA DE COMBUSTÍVEIS

Projeto final apresentado como pré-requisito parcial à obtenção do título de bacharel em Engenharia de Produção pela Universidade Federal Fluminense.

Orientador: Prof. Dr. Valdecy Pereira

NITERÓI 2020

(3)
(4)

GUSTAVO PEREIRA LUCCHETTI

APLICAÇÃO DE MACHINE LEARNING PARA PREDIÇÃO DE MANUTENÇÃO DE MÁQUINAS EM EMPRESA DE TRANSPORTE E

LOGÍSTICA DE COMBUSTÍVEIS

Projeto final apresentado como pré-requisito parcial à obtenção do título de bacharel em Engenharia de Produção pela Universidade Federal Fluminense.

Aprovado em 03 de julho de 2020

BANCA EXAMINADORA

_______________________________________________________ Prof. Dr. Valdecy Pereira – Orientador

Universidade Federal Fluminense

_______________________________________________________ Prof. Dr. Ricardo Bordeaux Rego

Universidade Federal Fluminense

_______________________________________________________ Prof. Dr. Gilson Brito Alves Lima

(5)

RESUMO

A aplicação da ciência de dados para resolução de problemas de negócios teve relevante crescimento diante do aumento do volume de dados disponibilizados por usuários, clientes e empresas. A partir desse contexto e da necessidade que as companhias possuem de otimizar suas atividades, incluindo a manutenção de seu maquinário, o presente trabalho teve como objetivo elaborar um algoritmo que consiga predizer se uma manutenção será realizada dentro do prazo definido ou não, além de analisar os principais atributos das máquinas e manutenções registradas dentro de uma empresa de transporte e logística de combustíveis. Por meio de técnicas de redução de dimensionalidade, o Truncated SVD, e de classificação de dados, o K - Nearest Neighbours, e da coleta e seleção de dados de registros das manutenções dessa empresa, o algoritmo foi construído e testado com variações da base de dados original e diferentes valores dos parâmetros do KNN. Após os testes, os resultados obtidos foram comparados pelo cálculo de indicadores de avaliação escolhidos: acurácia, precisão, recall, F1 Score, curva ROC (Receive Operator Characteristic) e AUC (Area Under Curve). O resultado do melhor modelo foi considerado satisfatório para a predição de futuras manutenções, e a análise das variáveis selecionadas evidenciou características relacionadas às manutenções que sofrem atraso onde a empresa pode atuar para evitar novos atrasos, mudando a alocação de recursos quando necessário.

Palavras-chave: ciência de dados, manutenção, aprendizado de máquina, algoritmo, classificação.

(6)

ABSTRACT

The application of data science to solve business problems has grown significantly due to the increase in the volume of data made available by users, customers and companies. Based on this context and the need that companies have to optimize their activities, including the maintenance of their machinery, the present work aimed to develop an algorithm that can predict whether a maintenance will be carried out within its defined period or not, in addition to analyzing the main attributes of the machines and maintenance registered within a fuel transportation and logistics company. Through dimensionality reduction techniques, Truncated SVD, and data classification, K - Nearest Neighbors, and the collection and selection of data from the maintenance records of this company, the algorithm was built and tested with variations of the original dataset and different values of the KNN parameters. After the tests, the results obtained were compared by calculating the chosen evaluation indicators: accuracy, precision, recall, F1 Score, ROC (Receive Operator Characteristic) curve and AUC (Area Under Curve). The result of the best model was considered satisfactory for the prediction of future maintenance, and the analysis of the selected variables showed characteristics related to maintenance that are delayed where the company can act to avoid further delays, changing the allocation of resources when necessary.

Keywords: data science, maintenance, machine learning, algorithm, classification.

(7)

LISTA DE FIGURAS

Figura 1 - SVD ... 16

Figura 2 - Thin SVD ... 22

Figura 3 - Compact SVD ... 23

Figura 4 - Truncated SVD ... 23

Figura 5 - Gráfico de exemplo de pontos antes da aplicação do KNN ... 24

Figura 6 - Gráfico de exemplo após aplicação do KNN para k = 1 ... 25

Figura 7 - Gráfico de exemplo após aplicação do KNN para k = 3 ... 25

Figura 8 - Matriz de Confusão ... 26

Figura 9 - Curva ROC ... 28

Figura 10 - Histograma da variável Valor de Compra ... 31

Figura 11 - Distribuição de valores da variável Tipo de Manutenção ... 32

Figura 12 - Número de manutenções dentro e fora do prazo por tipo de manutenção 32 Figura 13 - Distribuição de valores da variável Tipo de Máquina ... 33

Figura 14 - Número de manutenções dentro e fora do prazo por tipo de máquina ... 34

Figura 15 - Número de manutenções dentro e fora do prazo pela data de emissão ... 35

Figura 16 - Distribuição de valores da variável Centro de Trabalho ... 36

Figura 17 - Distribuição de valores da variável Criticidade ... 37

Figura 18 - Número de manutenções fora e dentro do prazo por criticidade da manutenção ... 37

Figura 19 - Número de manutenções dentro e fora do prazo pelo prazo de conclusão ... 38

Figura 20 - Número de manutenções dentro e fora do prazo pela data de fim da manutenção ... 39

Figura 21 - Visualização dos dados após aplicação do Truncated SVD para t = 2 ... 42

Figura 22 - Visualização dos dados após aplicação do Truncated SVD para t = 3 ... 42

Figura 23 - Matriz de Confusão da base de teste do modelo ... 47

(8)

SUMÁRIO

1. INTRODUÇÃO ... 10

1.1. CONTEXTUALIZAÇÃO DO PROBLEMA ... 10

1.2. A TEMÁTICA CIÊNCIA DE DADOS... 11

1.3. OBJETIVO GERAL ... 12 1.4. OBJETIVOS ESPECÍFICOS ... 12 1.5. LIMITAÇÕES DO TRABALHO ... 13 1.6. ESTRUTURA DO TRABALHO ... 13 2. REVISÃO DA LITERATURA ... 15 2.1. SVD ... 15 2.1.1 Thin SVD ... 22 2.1.2 Compact SVD ... 22 2.1.3 Truncated SVD ... 23 2.2. ALGORITMO KNN ... 24 2.3. INDICADORES DE AVALIAÇÃO ... 26 2.3.1. Acurácia ... 26 2.3.2. Precisão ... 26 2.3.3. Recall ... 27 2.3.4. F1 Score ... 27 2.3.5. Curva ROC ... 28 2.3.6. AUC ... 29 3. METODOLOGIA ... 29 3.1. ENTENDIMENTO DO NEGÓCIO ... 29 3.2. COLETA DE DADOS ... 29

3.3. TRATAMENTO E ANÁLISE DOS DADOS ... 30

3.3.1. Valor da compra para manutenção ... 30

3.3.2. Tipo de manutenção ... 31

3.3.3. Tipo de máquina ... 33

3.3.4. Data de emissão da nota ... 34

3.3.5. Código do centro de trabalho ... 35

3.3.6. Criticidade ... 36

3.3.7. Prazo de conclusão ... 38

3.3.8. Data de fim da manutenção ... 39

3.4. PRÉ-PROCESSAMENTO DOS DADOS ... 39

3.5. REDUÇÃO DE DIMENSIONALIDADE DA BASE ... 41

3.6. APLICAÇÃO DO MODELO DE CLASSIFICAÇÃO ... 43

3.6.1. Base de dados completa ... 43

3.6.2. Projeção 3D ... 43

(9)

3.7. ESCOLHA DO MODELO FINAL... 44

4. RESULTADOS DO MODELO ... 46

4.1. MATRIZ DE CONFUSÃO ... 46

4.1.1. Acurácia, Precisão, Recall e F1 ... 47

4.1.2. Curva ROC e AUC ... 47

5. CONCLUSÃO ... 48

6. REFERÊNCIAS BIBLIOGRÁFICAS ... 52

7. APÊNDICES ... 54

7.1. TABELA DE DADOS ... 54

(10)

1. INTRODUÇÃO

1.1. CONTEXTUALIZAÇÃO DO PROBLEMA

A manutenção de maquinário é uma atividade indispensável na rotina de uma companhia, que deve estabelecer em que momento e com que frequência realizar. Segundo Rebai et al (2013), as operações de manutenção preventiva são essenciais para manter os equipamentos de processamento em boas condições de trabalho. Em várias situações industriais, cada operação de manutenção deve ser realizada após um prazo otimista e antes de um prazo pessimista para garantir um custo mínimo de manutenção.

Considerando que uma empresa deve buscar atingir bom desempenho em suas operações, o processo de manutenção de máquinas possui alta relevância, visto que existe relação direta entre o mesmo e os objetivos de desempenho definidos por Slack et al (1993).

1. Qualidade: para garantir baixos números de defeito, refugo e tempo entre falhas, um equipamento precisa ser devidamente manutenido de acordo com suas características.

2. Rapidez: problemas em uma máquina que não passou por sua manutenção podem gerar maior tempo de ciclo, além de possíveis atrasos na entrega do produto final.

3. Confiabilidade: a maior possibilidade de falhas no processo produtivo devido ao mau gerenciamento da manutenção das máquinas gera incerteza quanto à quantidade de estoque que uma empresa terá em relação a sua demanda. Ademais, como consequência da menor rapidez nesse caso, a confiabilidade também é afetada dado que os clientes podem não receber seu produto no prazo previamente definido.

4. Flexibilidade: o funcionamento adequado de uma máquina está diretamente relacionado com sua capacidade máxima de produção para que possa se adequar à demanda existente, também a um menor tempo de setup, essencial para que a produção seja mais flexível.

(11)

5. Custo: caso a manutenção de um equipamento não seja feita no tempo certo, ele pode quebrar e parar a produção por completo, diminuindo a produtividade e, consequentemente, aumentando o custo por produto, além do custo caso se torne inviável atender a demanda.

1.2. A TEMÁTICA CIÊNCIA DE DADOS

Nos últimos quinze anos, foram realizados amplos investimentos em infraestrutura de negócios, o que melhorou a capacidade de coletar dados dentro de uma empresa. Atualmente, praticamente todos os aspectos dos negócios estão abertos à coleta de dados e muitas vezes são instrumentados para isso: operações, fabricação, gerenciamento da cadeia de suprimentos, comportamento dos clientes, desempenho de campanhas de marketing, procedimentos de fluxo de trabalho e assim por diante. Ao mesmo tempo, as informações agora estão amplamente disponíveis em eventos externos, como tendências de mercado, notícias da indústria e movimentações de concorrentes. Essa ampla disponibilidade de dados levou a um crescente interesse em métodos para extrair informações e conhecimentos úteis dos dados - o domínio da ciência de dados (PROVOST ET AL, 2013).

Uma importante pergunta deve ser feita quando se trata desse assunto: o que é, de fato, ciência de dados? Provost e Fawcett (2013) dizem que é difícil definir exatamente o que é. De acordo com eles, a ciência de dados envolve princípios, processos e técnicas para entender fenômenos através da análise (automatizada) de dados. O objetivo final da ciência de dados é melhorar a tomada de decisão, já que isso geralmente é de grande interesse para as empresas.

Segundo McAfee e Brynjolfsson (2012), decisões baseadas em dados tendem a ser melhores decisões. Os líderes abraçarão esse fato ou ser substituídos por outros que as fazem. Setor após setor, as empresas que descobrem como combinar conhecimento de domínio com ciência de dados se destacarão de suas concorrentes.

(12)

1.3. OBJETIVO GERAL

Dados os temas abordados, esse trabalho teve como objetivo elaborar, por meio de dados de manutenção de máquinas, um modelo para predizer se a manutenção de uma máquina será realizada dentro do prazo desejado de acordo com as suas características, de forma a não prejudicar a produtividade de uma empresa de transporte e logística de combustíveis.

Posteriormente, foram avaliadas as variáveis utilizadas pelo modelo para determinar o cumprimento ou não do prazo de manutenção de acordo com sua importância. Com essa análise, é possível compreender o que, de fato, leva uma máquina a ser manutenida com atraso e, consequentemente, atuar para evitar que futuros atrasos ocorram.

1.4. OBJETIVOS ESPECÍFICOS

Para atingir o objetivo geral do trabalho, foram definidos alguns objetivos específicos dentro de suas etapas de acordo com o resultado esperado de cada uma delas. Esses objetivos são:

1. Selecionar as variáveis a serem utilizadas pelo algoritmo;

2. Analisar as variáveis para compreender as características e o comportamento delas;

3. Gerar visualizações dos dados para, posteriormente, visualizar o resultado do modelo;

4. Escolher um modelo que obtenha resultados satisfatórios em relação aos indicadores escolhidos de avaliação;

5. Realizar a análise de sensibilidade do modelo;

6. Analisar os resultados da classificação, a fim de entender o que, de fato, leva uma manutenção a ser realizada fora do seu prazo.

(13)

1.5. LIMITAÇÕES DO TRABALHO

Considerando que o modelo desenvolvido tem como objetivo predizer um evento, não é possível afirmar que seu resultado será sempre condizente com a realidade, visto que ele não leva em consideração todos os fatores internos e externos, qualitativos e quantitativos que possam influenciar no prazo de manutenção de uma máquina. Portanto, o modelo deve ser usado como uma ferramenta de auxílio para tomada de decisões relacionadas ao trabalho de manutenção na empresa, por meio da interpretação dos resultados produzidos.

Outro fator que possui influência direta no trabalho é o tamanho da amostra de dados utilizada. Em um modelo preditivo, o volume de dados é de suma importância para que o resultado esteja próximo do esperado. No entanto, a empresa que forneceu os dados solicitou que fosse utilizada apenas uma amostra do que foi fornecido. Após unir os diferentes arquivos e tratar os dados, a base obtida possui 683 registros, o equivalente a 0,17% do maior arquivo (BW), que possui 410.209 registros.

No desenvolvimento do algoritmo, houve também uma limitação em relação ao modelo escolhido. Existem diversos modelos de classificação além do KNN, como Decision Tree, Random Forest, SVM e Regressão Logística, que utilizam outros parâmetros e classificam os dados de outras formas, podendo obter resultados melhores ou piores dependendo dos dados apresentados. O mesmo ocorre para a redução de dimensionalidade do dataset. Outros métodos, como PCA e t-SNE, possuem o mesmo objetivo, também podendo ser aplicados nessa situação. Para trabalhos futuros, deve se considerar testar outros métodos e comparar os resultados com os do modelo final proposto.

1.6. ESTRUTURA DO TRABALHO

(14)

• Capítulo 1: é o capítulo de introdução, contendo uma contextualização do tema abordado, o objetivo geral, os objetivos específicos e as limitações do projeto.

• Capítulo 2: contém a revisão da literatura, onde são descritos os métodos utilizados de acordo com o trabalho de outros autores. • Capítulo 3: descrição da metodologia empregada para o

desenvolvimento do modelo.

• Capítulo 4: capítulo para demonstrar os resultados do modelo final. • Capítulo 5: apresenta a conclusão da aplicação do modelo e dos

resultados obtidos, além da possibilidade de continuações para o trabalho.

Após o capítulo de conclusão, estão as referências utilizadas ao longo do projeto, a base de dados e o código em Python que aplica o modelo.

(15)

2. REVISÃO DA LITERATURA

Neste capítulo são abordados os métodos utilizados no trabalho para elaborar, calibrar e avaliar os resultados do algoritmo de acordo com estudos prévios. São eles: Truncated SVD, para redução de dimensionalidade de matrizes; KNN, para a classificação dos dados; Acurácia, Precisão, Recall, F1 Score, Curva ROC e AUC para comparar os resultados do modelo com diferentes parâmetros.

2.1. SVD

Segundo Baker (2005), o SVD (Singular Value Decomposition) pode ser observado a partir de três pontos de vista mutuamente compatíveis. Por um lado, pode ser visto como um método para transformar variáveis correlacionadas em um conjunto de relações não correlacionadas que melhor expõem os vários relacionamentos entre os dados. Ao mesmo tempo, o SVD é um método para identificar e ordenar as dimensões ao longo dos quais os pontos exibem a maior variação. Isso está relacionado à terceira maneira de ver o SVD, que depois de identificado onde há maior variação, é possível encontrar a melhor aproximação dos pontos originais usando menos dimensões. Portanto, o SVD pode ser visto como um método para redução dimensionalidade de dados.

O SVD é baseado em um teorema da álgebra linear que diz que uma matriz retangular 𝐴 pode ser decomposta no produto de três matrizes - uma matriz ortogonal 𝑈, uma matriz diagonal 𝑆 e a transposição de uma matriz ortogonal 𝑉. O teorema apresentado dessa forma:

𝐴𝑚𝑥𝑛 = 𝑈𝑚𝑥𝑚 𝑆𝑚𝑥𝑛 𝑉𝑇𝑛𝑥𝑛 (1)

onde 𝑚 ≫ 𝑛, 𝑈𝑇𝑈 = 𝐼, 𝑉𝑇𝑉 = 𝐼, sendo 𝐼 a matriz identidade; as colunas de 𝑈 são autovetores ortonormais de 𝐴𝐴𝑇, as colunas de 𝑉 são autovetores ortonormais de 𝐴𝑇𝐴 e 𝑆 é uma matriz diagonal contendo as raízes quadradas dos autovalores de U ou V em ordem decrescente, contendo apenas valores maiores ou iguais a 0.

(16)

Figura 1 - SVD

Para auxiliar no entendimento da aplicação do SVD, Baker (2005) utiliza o exemplo a seguir.

Considerando uma matriz

𝐴 = [ 3 1 1 −1 3 1]

Para encontrar 𝑈, primeiro deve-se encontrar 𝐴𝐴𝑇. A matriz transposta 𝐴𝑇 é

𝐴𝑇 = [ 3 −1 1 3 1 1 ] Então 𝐴𝐴𝑇 = [ 3 1 1 −1 3 1] [ 3 −1 1 3 1 1 ] = [11 1 1 11]

Em seguida, é necessário encontrar os autovalores e os autovetores correspondentes do 𝐴𝐴𝑇. Os autovetores de uma matriz são definidos pela equação 𝐴𝑣⃗ = 𝜆𝑣⃗, e aplicá-la à matriz 𝐴𝐴𝑇 resulta em

[11 1 1 11] [ 𝑥1 𝑥2] = 𝜆 [ 𝑥1 𝑥2]

Que pode ser reescrito pelas equações

11𝑥1+ 𝑥2 = 𝜆𝑥1 (2)

(17)

E rearranjado para chegar a

(11 − 𝜆)𝑥1+ 𝑥2= 0 (4)

𝑥1+ (11 − 𝜆)𝑥2= 0 (5)

Chega-se ao valor de 𝜆 igualando o determinante da matriz de coeficientes a zero, |(11 − 𝜆) 1 1 (11 − 𝜆)| = 0 De forma que (11 − 𝜆)(11 − 𝜆) − 1𝑥1 = 0 (6) (𝜆 − 10)(𝜆 − 12) = 0 𝜆 = 10, 𝜆 = 12

Dá os dois autovalores 𝜆 = 10, 𝜆 = 12. Substituindo 𝜆 nas equações 4 e 5, encontra-se os autovetores. Para 𝜆 = 10, tem-se

(11 − 10)𝑥1+ 𝑥2 = 0

𝑥1 = −𝑥2

o que é verdadeiro para muitos valores, então é escolhido 𝑥1 = 1 e,

consequentemente, 𝑥1 = −1, chegando ao autovetor [1, −1] correspondente ao autovalor λ = 10. Para λ = 12:

(11 − 12)𝑥1+ 𝑥2 = 0 𝑥1 = 𝑥2

e pela mesma razão de antes, considera-se 𝑥1 = 1 e 𝑥2 = 1. Agora, para λ = 12, o autovetor é [1, 1]. Esses autovetores se tornam colunas em uma matriz ordenada pelo tamanho do autovalor correspondente. Em outras palavras, o autovetor do maior autovalor é a primeira coluna, o autovetor do segundo maior autovalor é a segunda coluna e assim por diante até o autovetor do menor autovalor como a última coluna da matriz. Na matriz abaixo, o autovetor para λ = 12 é a primeira coluna e o autovetor para λ = 10 é a segunda.

(18)

[1 1 1 −1]

Finalmente, a matriz deve ser convertida em uma matriz ortogonal, que é feito aplicando o processo de ortonormalização de Gram-Schmidt para as colunas, começando por 𝑣⃗1. 𝜐⃗1= 𝑣⃗1 |𝑣⃗1|= [1,1] √12+ 12= [1,1] √2 = [ 1 √2, 1 √2] (7) A partir daí, 𝑤⃗⃗⃗2= 𝑣⃗2− 𝜐⃗1∙ 𝑣⃗2∗ 𝜐⃗1= [1, −1] − [ 1 √2, 1 √2] ∙ [1, −1] ∗ [ 1 √2, 1 √2] = [1, −1] − 0 ∗ [1 √2, 1 √2] = [1, −1] − [0,0] = [1, −1] (8) Normalizando o vetor 𝜐⃗2 = 𝑤⃗⃗⃗2 |𝑤⃗⃗⃗2|= [ 1 √2, −1 √2] (9) Tem-se a matriz 𝑈 = [ 1 √2 1 √2 1 √2 −1 √2]

O cálculo de 𝑉 é similar. 𝑉 é baseado em 𝐴𝑇𝐴, então

𝐴𝑇𝐴 = [3 −11 3 1 1 ] [ 3 1 1 −1 3 1] = [ 10 0 2 0 10 4 2 4 2 ]

Os autovalores são encontrados por

[ 10 0 2 0 10 4 2 4 2 ] [ 𝑥1 𝑥2 𝑥3] = 𝜆 [ 𝑥1 𝑥2 𝑥3]

(19)

Que representa o sistema de equações

10𝑥1+ 2𝑥3= 𝜆𝑥1 (10)

10𝑥2+ 4𝑥3= 𝜆𝑥2 (11)

2𝑥1+ 4𝑥2+ 2𝑥3= 𝜆𝑥3 (12)

Que pode ser reescrito como

(10 − 𝜆)𝑥1+ 2𝑥3= 0 (13) (10 − 𝜆)𝑥2+ 4𝑥3= 0 (14) 2𝑥1+ 4𝑥2+ (2 − 𝜆)𝑥3= 0 (15) E é resolvido por | (10 − 𝜆) 0 2 0 (10 − 𝜆) 4 2 4 (2 − 𝜆) | = 0

E resulta nos autovalores de 𝐴𝑇𝐴, 𝜆 = 0, 𝜆 = 10, 𝜆 = 12. Substituindo 𝜆 nas

equações 13, 14 e 15, encontram-se os autovetores. Para 𝜆 = 12, tem-se

−2𝑥1+ 2𝑥3= 0 (16)

−2𝑥2+ 4𝑥3 = 0 (17)

2𝑥1+ 4𝑥2+ −10𝑥3 = 0 (18)

Que não possui apenas uma resposta. Então, utiliza-se 𝑥1 = 1

𝑥1 = 1, 𝑥2 = 2, 𝑥3 = 1

(20)

𝑥3 = 0 𝑥1 = −2𝑥2

Utilizando 𝑥1 = 2, o autovetor é 𝜐⃗2 = [2, −1,0]. Finalmente, para 𝜆 = 0,

10𝑥1+ 2𝑥3= 0 (19)

10𝑥2+ 4𝑥3= 0 (20)

2𝑥1+ 4𝑥2+ 2𝑥3= 0 (21)

Que não possui apenas uma resposta. Então, é utilizado 𝑥1 = 1, de forma que

𝑥1 = 1, 𝑥2 = 2, 𝑥3 = −5

O autovetor de 𝜆 = 0 é 𝜐⃗3 = [1,2, −5]. Ordenando 𝜐⃗1, 𝜐⃗2 e 𝜐⃗3 como colunas em uma matriz de acordo com seus respectivos autovalores, encontra-se

[

1 2 1

2 −1 2

1 0 −5

]

Que, pelo processo de ortonormalização de Gram-Schmidt, é convertida em uma matriz ortonormal, começando por 𝑣⃗1.

𝜐⃗1= 𝑣⃗1 |𝑣⃗1|= [ 1 √6, 2 √6, 1 √6] (22) A partir daí, 𝑤 ⃗⃗⃗2 = 𝑣⃗2− 𝜐⃗1∙ 𝑣⃗2∗ 𝜐⃗1= [2, −1,0] (23) 𝜐⃗2= 𝑤⃗⃗⃗2 |𝑤⃗⃗⃗2| = [2 √5, −1 √5, 0] (24) Por fim, 𝑤 ⃗⃗⃗3= 𝑣⃗3− 𝜐⃗1∙ 𝑣⃗3∗ 𝜐⃗1− 𝜐⃗2∙ 𝑣⃗3∗ 𝜐⃗2= [1,2, −5] (25)

(21)

𝜐⃗3= 𝑤⃗⃗⃗3 |𝑤⃗⃗⃗3| = [ 1 √30, 2 √30, −5 √30] (26) Encontrando a matriz 𝑉 = [ 1 √6 2 √5 1 √30 2 √6 −1 √5 2 √30 1 √6 0 −5 √30] E sua transposta 𝑉𝑇 = [ 1 √6 2 √6 1 √6 2 √5 −1 √5 0 1 √30 2 √30 −5 √30]

Para 𝑆, as raízes quadradas dos autovalores diferentes de zero (𝜆 = 12, 𝜆 = 10) são utilizadas para preencher a diagonal da matriz em ordem decrescente, e os outros valores da matriz são zero. Os autovalores diferentes de zero de U e V são sempre os mesmos, por isso, não importa de qual matriz retirar. Para que 𝑆 tenha as dimensões adequadas para permitir a multiplicação entre U e 𝑉𝑇, são adicionadas colunas ou linhas apenas com zero. Dessa forma

𝑆 = [√12 0 0 0 √10 0] 𝐴𝑚𝑥𝑛 = 𝑈𝑚𝑥𝑚 𝑆𝑚𝑥𝑛 𝑉𝑇 𝑛𝑥𝑛 = [ 1 √2 1 √2 1 √2 −1 √2] [√12 0 0 0 √10 0] [ 1 √6 2 √6 1 √6 2 √5 −1 √5 0 1 √30 2 √30 −5 √30] = [ 3 1 1 −1 3 1]

(22)

Segundo Demmel et al (2005), existem versões reduzidas do SVD que podem ser calculadas. Seja 𝑈𝑡 = [𝑢1, … , 𝑢𝑡] uma matriz mxt dos primeiros t

vetores singulares à esquerda, 𝑉𝑡 = [𝑣1, … , 𝑣𝑡] uma matriz txn dos primeiros t vetores singulares à direita e 𝑆𝑡 = 𝑑𝑖𝑎𝑔(𝜎1, … , 𝜎𝑡) uma matriz txt dos primeiros t valores singulares. Então podem ser feitas as seguintes definições.

2.1.1 Thin SVD

O Thin SVD de 𝐴 é definido por 𝐴 = 𝑈𝑛 𝑆𝑛 𝑉𝑇𝑛. O Thin SVD é muito menor para

armazenar e mais rápido para calcular que o SVD completo quando 𝑛 ≪ 𝑚.

Figura 2 - Thin SVD 2.1.2 Compact SVD

𝐴 = 𝑈𝑟 𝑆𝑟 𝑉𝑇

𝑟 é o Compact SVD de 𝐴, onde r é o número de valores singulares

diferentes de 0. O Compact SVD é muito menor para armazenar e mais rápido para calcular que o Thin SVD quando 𝑟 ≪ 𝑛.

(23)

Figura 3 - Compact SVD 2.1.3 Truncated SVD

𝐴𝑡 = 𝑈𝑡 𝑆𝑡 𝑉𝑇

𝑡 é o Truncated SVD de rank-t de 𝐴, em que 𝑡 < 𝑟. Hansen

(1987) diz que, para se encontrar o Truncated SVD, aproxima-se a matriz A com uma 𝐴𝑡 de classificação inferior t e ignora-se os componentes do lado direito correspondentes aos componentes ignorados de 𝐴. Ou seja, 𝐴𝑡 é uma matriz

próxima de 𝐴 em que os 𝑛 − 𝑡 menores valores singulares de 𝐴 são ignorados.

No presente trabalho, o Truncated SVD foi aplicado à base de dados de 81 colunas, utilizando 𝑡 = 2 e 𝑡 = 3, e gerando matrizes com menor número de dimensões, de forma a permitir a visualização dos dados e utilizá-las na aplicação do modelo a fim de comparar os resultados e encontrar a melhor forma de aplicá-lo.

(24)

2.2. ALGORITMO KNN

O algoritmo KNN (k-nearest neighbors) é um algoritmo de aprendizado de máquina simples. A ideia geral é relativamente simples: calcule a distância entre um ponto A e todos os outros pontos, encontre os k pontos mais próximos a ele e depois conte quantos desses k pontos pertencem a cada classificação. O ponto A receberá a classificação com maior número de pontos. (SUN ET AL, 20 18).

No exemplo a seguir, existem oitos pontos classificados como 0 ou 1 e um ponto A (4, 4) ainda não classificado. A partir do KNN, dependendo do valor de k escolhido, a classificação desse ponto poderá variar.

Figura 5 - Gráfico de exemplo de pontos antes da aplicação do KNN Para 𝑘 = 1, é selecionado apenas o primeiro ponto mais próximo de A – o ponto (5, 5) – que possui classificação 0. Logo, a classificação de A será a mesma.

(25)

Figura 6 - Gráfico de exemplo após aplicação do KNN para k = 1

No caso de 𝑘 = 3, são selecionados os três pontos mais próximos de A – (5, 5), (4, 2) e (2, 4). Desses três pontos, dois são classificados como 1 e apenas um como 0. Portanto, a classificação de A será 0 nesse caso.

(26)

2.3. INDICADORES DE AVALIAÇÃO

De acordo com Davis e Goadrich (2006), em um problema de decisão binária, um modelo de classificação rotula dados como positivos ou negativos. A decisão feita pelo classificador pode ser representada em uma estrutura conhecida como matriz de confusão ou tabela de contingência. A matriz de confusão tem quatro categorias: verdadeiros positivos (true positives) são dados rotulados corretamente como positivos. Os falsos positivos (false positives) se referem a dados negativos incorretamente rotulados como positivos. Verdadeiros negativos (true negatives) correspondem a negativos rotulados corretamente como negativos. Finalmente, os falsos negativos (false negatives) se referem a exemplos positivos incorretamente rotulados como negativos.

Figura 8 - Matriz de Confusão

Por meio da matriz de confusão, indicadores podem ser calculados para avaliar o resultado do modelo.

2.3.1. Acurácia

A acurácia é a relação entre o total de dados preditos corretamente, ou seja, verdadeiros positivos e verdadeiros negativos, com o total de valores preditos. Portanto, seu resultado representa, percentualmente, quantas vezes o modelo predisse o valor real na amostra de dados utilizada.

𝐴𝑐𝑢𝑟á𝑐𝑖𝑎 = 𝑇𝑃 + 𝑇𝑁

𝑇𝑃 + 𝐹𝑃 + 𝐹𝑁 + 𝑇𝑁 (27)

2.3.2. Precisão

Positivo Negativo Positivo True Positive (TP) False Positive

(FP) Negativo False Negative

(FP)

True Negative (TN) Predito

(27)

Segundo Powers (2007), a precisão denota a proporção de casos positivos previstos que são realmente positivos. Portanto, é calculado pela razão entre o total de verdadeiros positivos e a soma de verdadeiros positivos e falsos positivos.

𝑃𝑟𝑒𝑐𝑖𝑠ã𝑜 = 𝑇𝑃

𝑇𝑃 + 𝐹𝑃 (28)

Powers também cita a Precisão Inversa, que é a proporção de valor negativos previstos que são realmente negativos. Sua fórmula é

𝑃𝑟𝑒𝑐𝑖𝑠ã𝑜 𝐼𝑛𝑣𝑒𝑟𝑠𝑎 = 𝑇𝑁

𝑇𝑁 + 𝐹𝑁 (29)

2.3.3. Recall

Powers diz que o Recall é a proporção de casos reais positivos que estão corretamente previstos como positivos. O cálculo do recall é feito pela razão entre os verdadeiros positivos e a soma dos verdadeiros positivos e falsos negativos.

𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑇𝑃

𝑇𝑃 + 𝐹𝑁 (30)

Assim como a Precisão, o Recall também possui seu inverso para casos negativos.

𝑅𝑒𝑐𝑎𝑙𝑙 𝐼𝑛𝑣𝑒𝑟𝑠𝑜 = 𝑇𝑁

𝑇𝑁 + 𝐹𝑃 (30)

(28)

O cálculo do F1 Score é feito pela média harmônica entre precisão e recall. Ele é utilizado para avaliar a relação entre esses dois indicadores, de forma que a diferença do resultado deles não seja elevada.

𝐹1 = 2 𝑥 𝑃𝑟𝑒𝑐𝑖𝑠ã𝑜 𝑥 𝑅𝑒𝑐𝑎𝑙𝑙

𝑃𝑟𝑒𝑐𝑖𝑠ã𝑜 + 𝑅𝑒𝑐𝑎𝑙𝑙 (31)

2.3.5. Curva ROC

Davis e Goadrich (2006) definem a ROC (Receiver Operator Characteristic) como a curva que mostra como o número de exemplos positivos classificados corretamente varia com o número de exemplos negativos classificados incorretamente. Para encontrá-la, traça-se o False Positive Rate (FPR) no eixo x e o True Positive Rate (TPR) no eixo y. O FPR mede a fração de exemplos negativos que são classificados erroneamente como positivos, já o TPR mede a fração de exemplos positivos classificados corretamente, sendo o mesmo que o Recall.

(29)

No exemplo da figura 8, nota-se que o TPR cresce rapidamente em relação ao FPR, então esse classificador consegue classificar os dados positivos corretamente sem que, para isso, aumente seu percentual de falsos positivos.

2.3.6. AUC

De acordo com Bradley (1996), a AUC (Area Under Curve) é um indicador de performance do modelo classificador. Ela é calculada pela área abaixo da linha traçada pela ROC, então seu valor varia de 0 a 1, e quanto mais próximo de 1, melhor o modelo consegue classificar verdadeiros positivos sem classificar falsos positivos.

No exemplo da figura 9, a AUC é calculada pela área do trapézio formado pela ROC e pelas retas 𝐹𝑃𝑅 = 1 e 𝑇𝑃𝑅 = 0. Seu valor é 𝐴𝑈𝐶 = 0,875.

3. METODOLOGIA

3.1. ENTENDIMENTO DO NEGÓCIO

Antes de começar a trabalhar com os dados, foi necessário entender o contexto do negócio em questão, para que qualquer tipo de análise proveniente desses dados tivesse real significado para o problema. Dada essa questão, foi explorada a forma como a empresa realiza o processo de manutenção de seus equipamentos. Ele começa quando um dos centros de trabalho onde as máquinas podem se encontrar envia uma nota demandando pela manutenção de um equipamento. Essas notas são recolhidas por outro setor, que emite as ordens de compra dos materiais necessários para a manutenção. Por fim, é feita, de fato, a compra dos materiais, e nesses registros são encontrados os dados relacionados aos prazos das manutenções.

Foi possível identificar que, durante esse processo de pedidos, existem dados relevantes para diferenciar um atraso em manutenção de um prazo cumprido, além das principais características das máquinas e das manutenções utilizadas.

(30)

Os dados utilizados no estudo foram obtidos por meio de contato direto com a empresa em questão. Foram disponibilizadas três bases de dados:

▪ IW29: base de notas enviadas pelos centros de trabalho demandando por manutenção de um equipamento;

▪ IW49N: base de emissão de ordens de compra de material referente às notas enviadas pelos centros;

▪ BW: base de compras de materiais para manutenção.

3.3. TRATAMENTO E ANÁLISE DOS DADOS

Após a coleta, foi realizado o tratamento dos dados coletados para obter o dataset no formato correto. Primeiramente, foram selecionadas as variáveis de cada arquivo para serem utilizadas no modelo. Após isso, os arquivos foram unidos por meio de colunas chave, resultando na base de dados a ser utilizada.

Os arquivos foram unidos pelas colunas de número da ordem e número da nota, e as variáveis selecionadas para aplicar o modelo foram:

3.3.1. Valor da compra para manutenção

Variável que indica o quanto a empresa gastou com materiais para realizar a manutenção. Pela tabela 1, nota-se que esse valor pode ser zero, e apesar de 75% dos registros serem de até R$17.985,43, existem manutenções com custos muito acima da média, chegando a R$406.989,84.

Tabela 1 – Características da variável Valor de Compra Características da variável Valor de Compra Tipo Numérica Contagem 683 Média R$ 14.987,57 Desvio Padrão R$ 27.276,66 Mínimo R$ 0,00 25% R$ 2.037,17 50% R$ 6.294,00 75% R$ 17.985,43 Máximo R$ 406.989,84

(31)

Figura 10 - Histograma da variável Valor de Compra 3.3.2. Tipo de manutenção

Variável que indica o tipo de manutenção a ser executada. Elas são: • ZMEL – manutenção em que o equipamento não está defeituoso, apenas

passando por uma melhoria;

• ZAPO – manutenção relacionada a serviços de apoio a uma outra manutenção;

• ZCOR – manutenção de um equipamento defeituoso; • ZPRV – manutenção preventiva de um equipamento.

Tabela 2 – Características da variável Tipo de Manutenção Características da variável Tipo de Manutenção Tipo Categórica Contagem 683 Rótulos ZMEL ZAPO ZCOR ZPRV

(32)

Figura 11 - Distribuição de valores da variável Tipo de Manutenção

Figura 12 - Número de manutenções dentro e fora do prazo por tipo de manutenção

Analisando os gráficos, nota-se que o tipo de manutenção mais comum é a ZCOR, correspondendo a 67% das manutenções registradas. Proporcionalmente, é também o tipo de manutenção com maior número de atrasos – 64% dos registros foram considerados fora do prazo – enquanto os outros tipos de manutenção têm percentuais menores (manutenções de tipo ZAPO, ZMEL e ZPRV possuem 49%, 51% e 54% respectivamente).

(33)

3.3.3. Tipo de máquina

Variável que indica o tipo de máquina que sofrerá a manutenção, podendo ser dos tipos M1, M2, M3 ou M7.

Tabela 3 – Características da variável Tipo de Máquina Características da variável Tipo de Máquina Tipo Categórica Contagem 683 Rótulos M1 M2 M3 M7

(34)

Figura 14 - Número de manutenções dentro e fora do prazo por tipo de máquina

Dentre as manutenções registradas, a máquina do tipo M1 foi a mais frequente. No entanto, o principal a se destacar é em relação às máquinas do tipo M2. Enquanto os outros tipos tiveram um percentual próximo a 50% de manutenções fora do prazo, o percentual dela é de 81%. Esse fato pode indicar que o processo de manutenção de máquinas M2 é menos eficiente em relação aos outros, ou que o prazo de conclusão para esse tipo de máquina deveria ser maior.

3.3.4. Data de emissão da nota

Variável que indica a data em que a nota foi emitida para manutenção. Foram utilizadas notas de aproximadamente 2 anos para o modelo, de junho de 2017 até maio de 2019.

Tabela 4 – Características da variável Data de Emissão da Nota Características da variável

Data de Emissão da Nota

Tipo Data

Contagem 683

Menor data 09/06/2017

(35)

Figura 15 - Número de manutenções dentro e fora do prazo pela data de emissão

A figura 15 mostra que até julho de 2018, em nenhum mês o número de notas emitidas em que o prazo de conclusão se cumpriu foi superior ao de notas atrasada. No entanto, a partir de agosto de 2018, em apenas um mês a maioria das notas de manutenção foi cumprida com atraso. Isso pode indicar que a empresa já tomou iniciativas em relação a esse problema.

3.3.5. Código do centro de trabalho

Variável que indica o centro de trabalho onde a máquina referente à manutenção se encontra. Na base de dados existem 68 diferentes centros de trabalho, e destacados os que possuem o maior número de registros de manutenções.

Tabela 5 – Características da variável Código do Centro de Trabalho Características da variável Código do

Centro de Trabalho

Tipo Categórica

Contagem 683

Número de rótulos 68

(36)

T064 T060 T036

Figura 16 - Distribuição de valores da variável Centro de Trabalho

3.3.6. Criticidade

Variável que indica o nível de criticidade da manutenção. Uma manutenção pode ter criticidade A, B ou C, sendo A o nível mais alto e C o mais baixo de criticidade. Diferente das outras variáveis, essa possui 118 valores nulos.

Tabela 6 – Características da variável Criticidade Características da variável Criticidade Tipo Categórica Contagem 565 Rótulos A B C

(37)

Figura 17 - Distribuição de valores da variável Criticidade

Figura 18 - Número de manutenções fora e dentro do prazo por criticidade da manutenção

Analisando os gráficos referentes à criticidade da manutenção, é observado que manutenções da menor criticidade – criticidade C – tiveram a maior proporção de registros no prazo (46%), enquanto as manutenções de criticidade A e B tiveram 36% e 37%, respectivamente. Considerando a criticidade um fator relevante para a manutenção das máquinas, é possível que haja um erro na priorização das manutenções por parte da equipe responsável por executá-las.

(38)

3.3.7. Prazo de conclusão

Variável que indica o prazo dado para a conclusão de uma manutenção. Apesar de existirem registros até 2029, no gráfico da figura 19 só foram apresentados dados até 2019 para que possa ser feita a comparação entre manutenções concluídas dentro e fora do prazo.

Tabela 7 – Características da variável Prazo de Conclusão Características da variável Prazo

de Conclusão

Tipo Data

Contagem 683

Menor data 15/07/2017

Maior data 29/01/2029

Figura 19 - Número de manutenções dentro e fora do prazo pelo prazo de conclusão

Analisando o número de manutenções concluídas pelo prazo de conclusão, é possível identificar que houve um aumento de manutenções finalizadas dentro do prazo e um declínio de manutenções finalizadas com atraso. Isso reforça que a empresa está conseguindo cumprir com o prazo com maior frequência em relação aos anos anteriores, e também pode indicar que notas emitidas com prazos maiores tendem a ser cumpridas.

(39)

3.3.8. Data de fim da manutenção

Variável que indica a data em que a manutenção foi finalizada. Foram registradas notas finalizadas entre agosto de 2017 e dezembro de 2019.

Tabela 8 – Características da variável Data de Fim da Manutenção Características da variável Data

de Fim da Manutenção

Tipo Data

Contagem 683

Menor data 29/08/2017

Maior data 28/11/2019

Figura 20 - Número de manutenções dentro e fora do prazo pela data de fim da manutenção

Diferente do que foi apresentado pelas variáveis ‘Data de Emissão da Nota’ e ‘Prazo de Conclusão’, a figura 20 indica que, a partir de maio de 2018, em apenas dois meses o número de manutenções concluídas no prazo foi superior ao de atrasadas.

(40)

Após concluir a análise das variáveis selecionadas, alguns ajustes à base de dados foram necessários para que o algoritmo funcionasse corretamente e não tivesse seu resultado enviesado.

O primeiro passo foi excluir as linhas da base em que a variável ‘Criticidade’ era nula, visto que esses registros podem prejudicar o resultado do modelo.

O passo seguinte foi transformar as variáveis categóricas em números. Essa alteração foi feita por meio de variáveis dummy, ou seja, para cada variável categórica, foram criadas variáveis binárias em que cada uma representava um possível valor dela, recebendo valor 1 caso o valor fosse o representado por aquela coluna e 0 caso contrário. Por exemplo, em relação a ‘Criticidade’, no lugar da coluna original com os dados, foram criadas três colunas, ‘A’, ‘B’ e ‘C’, e para uma linha em que a criticidade era ‘A’, ela recebeu 1 na coluna ‘A’, 0 em ‘B’ e 0 em ‘C’. Nos casos de valor vazio, todas as colunas receberam 0.

Em relação às variáveis de data, o tratamento foi feito de forma a obter a variável resposta do modelo, ou seja, o valor que diz se a manutenção foi realizada no prazo ou não. A coluna de ‘Data de Emissão da Nota’ foi descartada, visto que não influenciava nessa resposta, e foi criada a coluna ‘target’. Ela é uma variável binária, que recebeu valor 1 caso a ‘Data de Fim da Manutenção’ fosse menor ou igual a ‘Prazo de Conclusão’, e 0 caso contrário.

Com todos os dados já numéricos, foi realizada a normalização deles, de forma que todas as colunas tivessem valores apenas entre 0 e 1. Essa normalização foi calculada por proporção, em que cada valor é subtraído do menor valor e, então, dividido pela diferença entre o maior e o menor valores da mesma coluna.

A última análise feita foi da correlação das variáveis com a variável ‘target’, a fim de compreender se alguma característica da máquina ou da manutenção possui alta correlação com o resultado da manutenção no prazo ou não. No entanto, observou-se que nenhuma das variáveis estava altamente correlacionada com ela.

(41)

Variável Correlação tp_m1 0,2228 cen_t060 0,196318 cen_t044 0,142194 cen_t013 0,113284 cen_t014 0,112933

Tabela 10 – 5 Menores correlações com a variável target Variável Correlação tp_m2 -0,290764 tp_zapo -0,128185 cen_t015 -0,101299 cen_t025 -0,094532 cen_t067 -0,094532

3.5. REDUÇÃO DE DIMENSIONALIDADE DA BASE

A etapa seguinte, já com o dataset devidamente preparado para a aplicação do modelo, foi a utilização do Truncated SVD para reduzir o número de dimensões dele. O objetivo dessa redução é, principalmente, visualizar os dados em ℝ2 e ℝ3, visto que a base conta com 81 colunas após o tratamento dos dados, não sendo possível visualizá-la dessa forma.

(42)

Figura 21 - Visualização dos dados após aplicação do Truncated SVD para t = 2

Figura 22 - Visualização dos dados após aplicação do Truncated SVD para t = 3

(43)

3.6. APLICAÇÃO DO MODELO DE CLASSIFICAÇÃO

Para realizar a classificação, foi aplicado o modelo KNN. Com o objetivo de comparar resultados e escolher a melhor forma de utilizá-lo, a aplicação foi feita para a base de dados completa de 81 colunas e para as projeções de duas e três dimensões adquiridas por meio do Truncated SVD. Além disso, foram testados diferentes valores do parâmetro k, a fim de encontrar o valor ideal de vizinhos no algoritmo para a classificação dos dados.

A partir dos primeiros testes, foi percebido que, para valores de k > 5, a performance do modelo piorava, portanto os resultados apresentados serão correspondentes a valores de k de 2 a 5.

3.6.1. Base de dados completa

Utilizando a base de dados completa, sem a aplicação do Truncated SVD para reduzir o número de colunas, foram encontrados os resultados do modelo representados na tabela 11. Ela foi colocada em ordem decrescente em relação ao valor de F1, que será a principal métrica para a escolha do modelo final. Logo, utilizando essa base para aplicar o modelo, o valor de k que apresenta o melhor F1 é k = 2. Dentre as opções apresentadas, é também a de maior acurácia, atingindo 78,8%, e maior Recall, com 73,1%.

Tabela 11 – Resultados das métricas para o modelo com sua base de dados completa

K F1 Acurácia Precisão Recall AUC

2 61,3% 78,8% 52,8% 73,1% 76,8%

3 58,7% 72,6% 61,1% 56,4% 68,7%

5 53,7% 72,6% 50,0% 58,1% 68,1%

4 52,5% 74,3% 44,4% 64,0% 70,6%

(44)

A partir da utilização da base de dados com o Truncated SVD aplicado com t = 3, foram obtidos novos resultados do modelo, como mostra a tabela 12. Diferente da base original, nota-se que o modelo obteve o maior valor de F1 com k = 3. Nesse caso, a Acurácia observada não foi a maior entre os diferentes valores de k.

Tabela 12 – Resultado das métricas para o modelo com a base de dados reduzida a 3 dimensões pelo Truncated SVD

K F1 Acurácia Precisão Recall AUC

3 63,4% 73,5% 72,2% 56,5% 70,8%

4 58,8% 75,2% 55,6% 62,5% 71,4%

2 57,1% 76,1% 50,0% 66,7% 72,9%

5 56,0% 70,8% 58,3% 53,8% 66,8%

3.6.3. Projeção 2D

Por fim, o modelo foi aplicado à base de dados com 2 dimensões após a utilização do Truncated SVD. Assim como na base com 3 dimensões, o maior valor de F1 observado corresponde a k = 3, mas também não obteve a maior Acurácia.

Tabela 13 – Resultado das métricas para o modelo com a base de dados reduzida a 2 dimensões pelo Truncated SVD

K F1 Acurácia Precisão Recall AUC

3 56,3% 72,6% 55,6% 57,1% 70,8%

5 52,9% 71,7% 50,0% 56,2% 66,8%

2 49,1% 74,3% 38,9% 66,7% 72,9%

4 48,4% 71,7% 41,7% 57,7% 71,3%

3.7. ESCOLHA DO MODELO FINAL

Na escolha do modelo final, foram considerados os melhores resultados de cada base de dados utilizada em relação ao seu F1, apresentados na tabela

(45)

14. Como mostra a tabela, nenhum dos indicadores obtidos pela Projeção 2D foi superior em relação aos outros modelos, podendo ser descartado da comparação.

Analisando as duas outras possibilidades, nota-se que a Projeção 3D obteve melhor F1 com diferença de 2,1%, mas sua Acurácia foi 5,3% menor. É possível considerar, então, que exista um trade-off entre esses indicadores, mas que a diferença na aplicação de cada um não seja significante para novos dados. No entanto, ao comparar a Precisão e Recall dos dois modelos, observa-se que os valores foram significativamente diferentes entre ambos, apesar de resultarem em F1’s próximos. Portanto, para decidir qual aplicação do modelo deve ser replicada, foi necessário identificar qual desses indicadores deve ser priorizado.

O indicador de Precisão, no presente trabalho, deve ser interpretado como a porcentagem de manutenções classificadas pelo modelo como ‘Dentro do Prazo’ que foram finalizadas, de fato, sem atraso. Já o Recall deve ser interpretado pela porcentagem das manutenções que foram finalizadas no prazo e o modelo as classificou corretamente dessa forma.

Para a decisão final, foi priorizado o modelo com maior Precisão, visto que ela avalia os casos em que uma manutenção que ocorreu fora do prazo foi classificada como ‘Dentro do Prazo’, que são os falsos positivos, enquanto o Recall avalia os casos em que a manutenção foi feita no prazo, mas o modelo classificou como ‘Fora do Prazo’, os falsos negativos. Isso porque, para a empresa, o prejuízo será maior ao ignorar uma manutenção erroneamente classificada como ‘Dentro do Prazo’ do que atuando em um registro que o modelo classificou como ‘Fora do Prazo’ de forma errada.

Logo, foi definido que para o modelo final será utilizada a Projeção 3D dos dados e k = 3, que obteve F1 de 63,4%, 73,5% de Acurácia e 72,2% de Precisão, sendo a maior entre todas as possibilidades testadas.

Tabela 14 – Resultados das métricas do modelo

Dados K F1 Acurácia Precisão Recall AUC

(46)

Dataset

completo 2 61,3% 78,8% 52,8% 73,1% 76,8%

Projeção 2D 3 56,3% 72,6% 55,6% 57,1% 70,8%

Por fim, a partir da definição do modelo final, foi realizada uma análise dos resultados dos indicadores calculados – acurácia, precisão, recall, F1, curva ROC e AUC – para ele. O objetivo dessa análise é compreender a forma como o modelo classificou os dados e explorar os possíveis fatores relacionados a falsos positivos e falsos negativos na matriz de confusão.

4. RESULTADOS DO MODELO

Por fim, a partir da definição do modelo final, foi realizada uma análise dos resultados dos indicadores calculados – Acurácia, Precisão, Recall, F1, curva ROC e AUC – para ele. O objetivo dessa análise é compreender a forma como o modelo classificou os dados e explorar os possíveis fatores relacionados a falsos positivos e falsos negativos na matriz de confusão.

4.1. MATRIZ DE CONFUSÃO

Por meio da matriz de confusão apresentada na figura 23, é possível identificar como o modelo classificou as manutenções da base de teste e comparar com os valores reais dessas manutenções. O eixo vertical representa o valor predito pelo modelo, enquanto o eixo horizontal representa a real classificação daquele registro, sendo ‘0’ o valor correspondente a manutenção ‘Fora do Prazo’ e ‘1’ a manutenção finalizada ‘Dentro do Prazo’.

(47)

Figura 23 - Matriz de Confusão da base de teste do modelo

4.1.1. Acurácia, Precisão, Recall e F1

O modelo obteve Acurácia de 73,5%, acertando 83 dos 113 registros da base de testes. Dos 36 dados classificados como ‘Dentro do Prazo’ pelo modelo, 26 foram certos, resultando uma Precisão de 72,2%. Em relação ao Recall, esses 26 registros corretamente classificados representam 56,5% das 46 manutenções que ocorreram no prazo. Como dito anteriormente, foi priorizado que o modelo tivesse menor número de falsos positivos em relação aos falsos negativos, na matriz apresentados como 10 e 20, respectivamente. O F1, calculado pela média harmônica entre precisão e recall, é de 63,4%, sendo o maior encontrado ajustando os parâmetros do modelo.

4.1.2. Curva ROC e AUC

A curva ROC indica quão bem o modelo consegue classificar manutenções como ‘Dentro do Prazo’ corretamente sem gerar falsos positivos.

(48)

A figura 24 mostra essa curva, e a área abaixo dela, AUC, é de 0,708. Durante a escolha do modelo final, foram encontrados valores maiores da curva AUC utilizando outros parâmetros, mas pela priorização da precisão ao recall, esse indicador não foi utilizado como fator decisivo.

Figura 24 - Curva ROC da base de teste do modelo

5. CONCLUSÃO

Dado o contexto atual referente à temática de ciência de dados e sua popularização no âmbito corporativo, é evidente a importância que os projetos nessa área possuem para que as empresas não percam sua competitividade frente a seus concorrentes, visto que é uma transformação contínua para a cultura de tomada de decisão baseada em dados.

Esse trabalho teve como objetivo geral elaborar um modelo preditivo que identificasse se uma manutenção de máquina seria finalizada dentro do prazo previsto a partir de algumas características dessa manutenção, além de avaliar

(49)

as variáveis utilizadas pelo modelo para que fosse possível compreender o que leva uma manutenção a atrasar, auxiliando na tomada de decisão de uma empresa de transporte e logística de combustíveis. Por meio da seleção de variáveis relevantes para o modelo, uma análise descritiva delas e a visualização dos dados com uso do Truncated SVD para redução de dimensionalidade, foi possível aplicar o KNN com diferentes parâmetros e, a partir dos indicadores escolhidos para a avaliação do algoritmo, definir a melhor forma de aplicar o modelo. Depois disso, foi realizada a análise de sensibilidade do modelo, mostrando os resultados finais da classificação e seus falsos positivos e falsos negativos.

Para selecionar as melhores variáveis para o modelo, foi feita uma avaliação inicial das três bases de dados concedidas pela empresa. Observando cada coluna disponível, a decisão de utilizar uma variável ou não foi feita considerando principalmente o quanto ela representa uma característica da máquina ou da manutenção em questão. Além disso, foi avaliada a quantidade de dados preenchidos, dado que algumas colunas possuíam muitos registros vazios, não podendo ser aproveitadas no modelo.

As variáveis selecionadas na base de dados final foram analisadas por meio de uma descrição das suas principais características, como tipo de variável, distribuição e rótulos de dados, a fim de apresentar o comportamento dos dados utilizados. A comparação de manutenções dentro e fora do prazo a partir de algumas variáveis permitiu identificar possíveis características que influenciam no cumprimento do prazo de uma manutenção, e as visualizações temporais das manutenções mostraram uma melhoria ao longo dos anos em relação aos prazos, apesar de uma crescente quantidade de registros sendo finalizados com atraso a partir de 2018. Ademais, a correlação entre as variáveis utilizadas e a target, que indica o cumprimento do prazo ou não, não revelou nenhum valor relevante que sugerisse alguma característica principal associada ao prazo da manutenção.

A aplicação do Truncated SVD permitiu a visualização dos dados da base e, com auxílio dos gráficos, foi possível identificar que, no geral, os pontos se agrupam com outros que têm o mesmo valor na variável target. Ou seja,

(50)

manutenções ocorridas no prazo aparecem mais próximas entre si, e o mesmo acontece para as atrasadas. Dado que o KNN utiliza a distância de um ponto aos seus mais próximos para realizar a classificação, essa característica da base sugeriu que o modelo traria resultados satisfatórios.

Na aplicação do modelo, foram utilizadas tanto a base de dados original quanto as bases geradas pela aplicação do Truncated SVD, com 2 e 3 dimensões. Os valores de k do KNN variaram de 2 a 5, visto que números maiores testados geraram resultados inferiores. Utilizando o F1 Score como principal indicador de avaliação da classificação, mas analisando também a acurácia, precisão, recall e AUC de cada possibilidade, foi encontrado o modelo com melhor resultado. Essa análise foi feita inicialmente com os diferentes valores de k para cada base de dados, depois entre os melhores resultados encontrados em cada uma.

Depois da escolha do melhor modelo, uma análise de sensibilidade foi feita, com o intuito de detalhar os indicadores calculados na base de teste, observando quantas manutenções foram classificadas erroneamente, tanto para falsos positivos quanto falsos negativos. A plotagem da matriz de confusão e da curva ROC auxiliam na compreensão desse resultado, evidenciando, por exemplo, que o modelo gerou um maior número de falsos negativos, como havia sido priorizado anteriormente.

Pelo que foi observado ao longo do trabalho, algumas características relacionadas às manutenções têm maior influência no cumprimento do prazo do que outras. Alguns indícios disso estão na análise das variáveis, que indicam maior porcentagem de atrasos os registros de manutenção de equipamentos defeituosos, principalmente das máquinas do tipo M2 e de criticidade B. A partir desses resultados, é possível atuar para que próximas manutenções descritas de tal forma sejam priorizadas, caso necessário.

Considerando os indicadores de avaliação calculados, o resultado final pode ser considerado satisfatório. Para futuros registros de manutenções, mantendo-se uma acurácia próxima de 73,5% e precisão de 72,2%, o modelo poderá servir de balizador na decisão de como a equipe de manutenção da empresa deve priorizar os trabalhos a serem executados e o esforço e recursos

(51)

alocados em cada um deles. Isso não deve descartar uma análise qualitativa de especialistas, visto que o algoritmo não considera todos os fatores existentes relacionados a uma manutenção ou a outras prioridades da própria empresa, além de não acertar em todas as classificações.

Pode-se destacar nesse projeto e nos resultados obtidos, que, para o problema abordado, o modelo utilizado foi uma escolha correta. Isso porque, considerando que a base de dados utilizada possui a maioria das suas variáveis sendo categóricas que descrevem atributos específicos de uma manutenção ou máquina, a classificação por meio da distância entre os pontos aproveita que esses valores são binários, pois os registros com mesmos atributos tendem a ficar próximos e distante dos diferentes.

Em estudos futuros, podem ser exploradas outras técnicas de Machine Learning para classificar os dados de manutenção apresentados, como Random Forest e redes neurais. Na utilização do Truncated SVD, como nesse trabalho foram utilizados apenas 𝑡 = 2 e 𝑡 = 3, existe a possibilidade de os resultados serem melhores para outros valores de t, podendo ser testados valores entre 4 e 80. Outros valores de k também podem ser testados no KNN, pois, apesar de alguns testes, não foram testadas tantas possibilidades além dos apresentados no projeto. O mesmo modelo pode ser aplicado também com novas variáveis consideradas relevantes para o problema, contanto que a empresa tenha esses dados registrados em volume suficiente para utilização.

(52)

6. REFERÊNCIAS BIBLIOGRÁFICAS

BAKER, Kirk. Singular Value Decomposition Tutorial. 2005

BRADLEY, Andrew. The use of the Area Under the ROC Curve in the Evaluation of Machine Learning Algorithms. Pattern Recognition 30-7 pp. 1145-1159, 1997

DAVIS, Jesse; GOADRICH, Mark. The Relationship Between Precision-Recall and ROC Curves. Proceedings of the 23rd International Conference on Machine Learning, ACM. 06. 10.1145/1143844.1143874, 2006

DEMMEL, James; BAI, Zhaojun; DONGARRA, Jack; RUHE, Axel; VORST, Henk van der. Templates for the Solution of Algebraic Eigenvalue Problems: A Practical Guide. SIAM, Philadelphia, 2000

HANSEN, Per Christian. The Truncated SVD as a Method for Regularization. BIT 27, 534–553 (1987) doi:10.1007/BF01937276

MCAFEE, Andrew; BRYNJOLFSSON, Erik. Big Data: The Management Revolution. Harvard Business Review, 2012

POWERS, David. Evaluation: From Precision, Recall and F-Factor to ROC, Informedness, Markedness & Correlation. 2008

PROVOST, Foster; FAWCETT, Tom. Data Science and its relationship to Big Data and data-driven decision making. Big Data, 1, 51--59 (2013) doi: 10.1089/big.2013.1508

(53)

REBAI, Maher; Kacem, Imed; Adjallah, Kondo H. Scheduling jobs and maintenance activities on parallel machines. Oper Res Int J 13, 363–383 (2013) doi:10.1007/s12351-012-0130-1

SLACK, Nigel; CHAMBERS, Stuart; JOHNSTON, Robert. Operations Management.Pearson Education Limited, Sixth edition, 2010

SUN, Jingwen; DU, Weixing; SHI, Niancai. A Survey of kNN Algorithm. Information Engineering College, Panzhihua University of Technology, Sichuan, China, 2018

(54)

7. APÊNDICES

7.1. TABELA DE DADOS

valor_compra tp_manutencao tp_maquina data_nota cen criticidade conclusao_desejada data_fim 7888,45 ZMEL M3 09/06/2017 T041 C 06/12/2017 26/01/2018 7113,28 ZMEL M3 09/06/2017 T041 C 06/12/2017 22/09/2017 7888,45 ZMEL M3 09/06/2017 T041 C 06/12/2017 06/02/2018 0 ZMEL M3 09/06/2017 T041 C 06/12/2017 25/09/2017 286,9 ZMEL M3 09/06/2017 T041 C 06/12/2017 11/09/2017 406989,84 ZMEL M3 03/07/2017 T033 C 30/12/2017 10/02/2018 6780 ZMEL M3 03/07/2017 T033 C 30/12/2017 18/12/2018 16880 ZMEL M3 03/07/2017 T033 C 30/12/2017 05/12/2018 20880 ZMEL M3 03/07/2017 T033 C 30/12/2017 07/11/2018 480,2 ZMEL M3 03/07/2017 T033 C 30/12/2017 05/11/2018 1235,5 ZMEL M3 03/07/2017 T033 C 30/12/2017 30/11/2018 6876,75 ZMEL M3 03/07/2017 T033 C 30/12/2017 31/10/2018 12000 ZMEL M3 03/07/2017 T033 C 30/12/2017 13/11/2018 1120,5 ZAPO M1 19/07/2017 T017 B 15/01/2018 29/08/2017 25725,66 ZCOR M1 09/08/2017 T055 C 05/02/2018 18/10/2017 3997,35 ZMEL M3 14/08/2017 T060 10/02/2018 27/10/2017 3520 ZMEL M3 14/08/2017 T060 10/02/2018 29/09/2017 3968 ZMEL M3 14/08/2017 T060 10/02/2018 17/10/2017 3980 ZMEL M3 14/08/2017 T060 10/02/2018 20/10/2017 3710 ZMEL M3 14/08/2017 T060 10/02/2018 20/10/2017 26209 ZCOR M1 21/06/2017 T057 B 18/12/2017 18/12/2017 9412,42 ZCOR M1 30/06/2017 T033 C 26/12/2017 01/03/2019 9412,42 ZCOR M1 30/06/2017 T033 C 26/12/2017 29/08/2018 4638,16 ZCOR M2 22/08/2017 T064 B 21/09/2017 15/07/2019 59967 ZMEL M1 12/09/2017 T012 B 11/03/2018 28/08/2018 88032 ZCOR M1 19/09/2017 T059 C 24/02/2018 18/07/2018 2208 ZAPO M1 25/08/2017 T036 21/02/2018 20/02/2018 8040 ZAPO M1 31/08/2017 T036 27/02/2018 20/06/2018 9131,72 ZAPO M1 09/06/2017 T036 C 09/06/2019 27/03/2018 2603,94 ZAPO M1 09/06/2017 T036 C 09/06/2019 19/03/2018 14482,3 ZAPO M1 09/06/2017 T036 C 09/06/2019 16/05/2018 17933,76 ZAPO M1 22/09/2017 T064 21/03/2018 17/05/2018 32265,3 ZMEL M3 11/09/2017 T012 A 10/03/2018 02/03/2018 501,52 ZMEL M3 14/08/2017 T037 B 10/02/2018 21/03/2018 14968,61 ZMEL M3 14/08/2017 T037 B 10/02/2018 24/05/2019 88980,53 ZAPO M1 11/08/2017 T036 07/02/2018 19/11/2018 88980,53 ZAPO M1 11/08/2017 T036 07/02/2018 10/12/2018 2010 ZMEL M1 29/08/2017 T012 25/02/2018 16/05/2018 702,83 ZPRV M1 03/07/2017 T018 B 30/12/2017 25/04/2018

(55)

1905,6 ZCOR M2 12/09/2017 T009 A 11/11/2017 09/12/2018 6495 ZCOR M7 19/07/2017 T085 B 20/07/2019 01/06/2018 37329,87 ZCOR M1 19/10/2017 T097 C 17/04/2018 04/02/2019 1454,56 ZAPO M1 11/09/2017 T009 A 10/03/2018 18/04/2018 31886,8 ZAPO M1 16/10/2017 T036 14/04/2018 03/09/2018 11410,56 ZCOR M2 25/10/2017 T097 A 24/12/2017 09/10/2018 25649,31 ZAPO M1 13/10/2017 T017 30/03/2018 13/08/2018 2416,26 ZCOR M1 20/10/2017 T009 18/04/2018 26/01/2018 2557,7 ZCOR M1 20/10/2017 T009 18/04/2018 02/03/2018 13650 ZCOR M1 20/10/2017 T009 18/04/2018 02/02/2018 4536,06 ZAPO M1 01/09/2017 T009 28/02/2018 04/05/2018 57974 ZMEL M3 01/11/2017 T038 C 30/04/2018 08/08/2018 59882,24 ZCOR M1 02/08/2017 T011 B 29/01/2018 12/12/2018 18553,91 ZCOR M1 29/09/2017 T009 28/03/2018 11/04/2018 12866,24 ZAPO M1 09/10/2017 T036 B 07/04/2018 11/10/2018 9184 ZAPO M1 07/07/2017 T036 B 03/01/2018 18/07/2018 19803,52 ZCOR M1 26/09/2017 T008 25/03/2018 11/07/2018 9440,02 ZCOR M1 26/09/2017 T008 25/03/2018 07/06/2018 4374,04 ZAPO M1 23/10/2017 T036 A 21/04/2018 04/04/2019 4770 ZCOR M2 04/10/2017 T001 B 08/12/2017 02/05/2019 12222,84 ZAPO M1 10/11/2017 T036 09/05/2018 27/03/2018 12222,84 ZAPO M1 10/11/2017 T036 09/05/2018 31/07/2018 6298,2 ZCOR M1 26/10/2017 T007 24/04/2018 03/07/2018 17248 ZCOR M1 26/10/2017 T007 24/04/2018 14/12/2018 844 ZMEL M3 30/10/2017 T085 B 28/04/2018 16/08/2018 4000 ZMEL M3 10/11/2017 T013 C 09/05/2019 30/03/2018 4000 ZMEL M3 10/11/2017 T013 C 09/05/2019 28/03/2018 0 ZMEL M3 29/11/2017 T055 C 28/05/2018 26/04/2018 44133,35 ZAPO M1 29/08/2017 T009 B 03/02/2018 01/10/2018 4315,6 ZCOR M1 16/11/2017 T060 A 15/05/2018 20/03/2018 4315,6 ZCOR M2 28/11/2017 T060 A 08/12/2017 20/03/2018 2155,36 ZCOR M2 05/12/2017 T055 03/06/2018 16/02/2018 912,77 ZCOR M2 05/12/2017 T055 03/06/2018 18/09/2018 912,77 ZCOR M2 05/12/2017 T055 03/06/2018 18/09/2018 912,77 ZCOR M2 05/12/2017 T055 03/06/2018 18/09/2018 912,77 ZCOR M2 05/12/2017 T055 03/06/2018 18/09/2018 912,77 ZCOR M2 05/12/2017 T055 03/06/2018 18/09/2018 534,7 ZCOR M1 26/09/2017 T057 23/07/2018 12/01/2018 3000 ZCOR M1 26/09/2017 T057 23/07/2018 19/03/2018 21750 ZCOR M1 26/09/2017 T057 23/07/2018 29/08/2018 1154,08 ZMEL M3 19/10/2017 T001 A 21/04/2018 10/05/2018 684,8 ZMEL M3 19/10/2017 T001 A 21/04/2018 07/08/2018 1154,08 ZMEL M3 19/10/2017 T001 A 21/04/2018 27/06/2018 4300 ZAPO M1 30/11/2017 T012 C 29/05/2018 15/03/2018 6476,62 ZAPO M1 30/11/2017 T012 C 29/05/2018 14/08/2018 26740 ZAPO M1 30/11/2017 T012 C 29/05/2018 19/12/2018

Referências

Outline

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

A Psicologia, por sua vez, seguiu sua trajetória também modificando sua visão de homem e fugindo do paradigma da ciência clássica. Ampliou sua atuação para além da

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

Com o objetivo de compreender como se efetivou a participação das educadoras - Maria Zuíla e Silva Moraes; Minerva Diaz de Sá Barreto - na criação dos diversos

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

Neste tipo de situações, os valores da propriedade cuisine da classe Restaurant deixam de ser apenas “valores” sem semântica a apresentar (possivelmente) numa caixa

nuestra especialidad por su especial proyección en el ámbito del procedimiento administrativo y el proceso contencioso administrativo, especialmente los alcances de la garantía