• Nenhum resultado encontrado

Roberto Figueiredo de Paula. Predição de Deslocamento Improdutivo

N/A
N/A
Protected

Academic year: 2021

Share "Roberto Figueiredo de Paula. Predição de Deslocamento Improdutivo"

Copied!
30
0
0

Texto

(1)

Roberto Figueiredo de Paula

Predição de Deslocamento Improdutivo

Monografia de Final de Curso

16/05/2020

Monografia apresentada ao Departamento de Engenharia Elétrica da

PUC/Rio como parte dos requisitos para a obtenção do título de

Especialização em Business Intelligence.

Orientadores:

Manoela Rabello Kohler

(2)

Agradecimentos

(3)

Se queres prever o futuro, estude o passado

(Confúcio)

Não se deve ir atrás de objetivos fáceis, é preciso buscar o que só pode ser alcançado por meio dos maiores esforços

(4)

RESUMO

Toda empresa de distribuição de energia elétrica possui um departamento responsável pelo atendimento ao usuário referente a chamados de suporte devido à falta de energia. Abordamos aqui o fornecimento de uma solução Preditiva para a identificação de Deslocamentos Improdutivos das equipes técnicas de atendimento destas ocorrências. O modelo classifica estes deslocamentos como produtivo ou improdutivo. O Deslocamento Improdutivo ocorre quando uma equipe técnica ao chega ao local do atendimento e constata que não há nada a fazer. Isto acontece pelos motivos de defeito inexistente, defeito interno de responsabilidade do usuário, endereço não localizado, local fechado, etc.. O custo estimado para um deslocamento técnico em operadoras de energia elétrica é de $100,00 (cem dólares) e o percentual dos chamados referentes a deslocamento improdutivo está em torno de 25% do total dos chamados. O presente trabalho tem como objetivo apresentar uma solução para redução dos atendimentos improdutivos das equipes técnicas. A solução proposta fornece um resultado preditivo para identificar os Deslocamentos Improdutivos, objetivando a redução no custo dos deslocamentos e a priorização no atendimento dos deslocamentos indicados pelo sistema como produtivos. Foram utilizados modelos de machine learning (decision tree, support vector machine e regressão logística). A melhor acurácia com a ferramenta Rapidminer foi alcançada com modelo

Logistic Regression. Nesta configuração a acurácia foi de 98,43%, sendo este valor suficiente para

(5)

ABSTRACT

In an electricity distribution company, it has a department responsible for customer service regarding support calls due to power outages. We approach here the provision of a Predictive solution for the identification of Unproductive Displacements of the technical teams to attend these occurrences. The model classifies these displacements as productive or unproductive. Improductive displacement occurs when a technical team arrives at the service location and realizes that there is nothing to do. This happens for reasons of non-existent defect, internal defect of the user's responsibility, address not found, closed location, etc. The estimated cost for a technical displacement in electric energy operators is $ 100.00 (one hundred dollars) and the percentage of calls referring to unproductive commuting is around 25% of the total calls. The present work aims to present a solution to reduce unproductive attendance by technical teams. The proposed solution provides a predictive result to identify Unproductive Displacements, aiming at reducing the cost of travel and prioritizing the service provided by the system as productive. Machine learning models (decision tree, support vector machine and logistic regression) were used. The best accuracy with the Rapidminer tool was achieved with the Logistic Regression model. In this configuration, the accuracy was 98.43%, which is sufficient to meet the proposed objectives.

(6)

Sumário

1.

INTRODUÇÃO ... 7

1.1. MOTIVAÇÃO ... 8 1.2. OBJETIVOS DO TRABALHO ... 9 1.3. DESCRIÇÃO DO TRABALHO ... 9 1.4. ORGANIZAÇÃO DA MONOGRAFIA ... 10

2.

DESCRIÇÃO DO PROBLEMA ... 11

3.

FUNDAMENTAÇÃO TEÓRICA ... 12

4.

ARQUITETURA DO SISTEMA PROPOSTO... 15

5.

RESULTADOS ... 20

6.

CONCLUSÕES E TRABALHOS FUTUROS ... 21

(7)

1. INTRODUÇÃO

Através de pesquisa não foi encontrado outro trabalho que proponha uma solução semelhante à apresentada nesta monografia.

As distribuidoras de energia elétrica no Brasil estão cada vez mais sendo avaliadas pelos órgãos reguladores em relação ao desempenho do atendimento técnico aos seus clientes. Um meio para melhorar o atendimento é reduzir os Deslocamentos Improdutivos. Isto porque ao atender um chamado improdutivo a equipe técnica pode deixar de atender um chamado produtivo. Na Figura 1 identificamos o fluxo destes atendimentos, e a Tabela 1 descreve a classificação dos deslocamentos improdutivos.

Figura 1 – Fluxo dos chamados de suporte

Tabela 1 – Classificação dos deslocamentos improdutivos

Mesmo com a elevação do número de solicitações de clientes e metas desafiadoras, por muitas vezes não é viável aumentar o número de funcionários, sendo uma medida importante aumentar a produtividade da equipe técnica com a redução dos atendimentos improdutivos. Este trabalho tem Classe Descrição da classificação

Encontrado em ordem Cliente com energia elétrica no momento que a equipe chega ao local Defeito interno Cliente sem energia elétrica, com defeito interno (após medidor)

Endereço não localizado Equipe não localiza o endereço, por motivos de nomes ou número da rua Prédio fechado Equipe localiza o endereço, sem cliente no local / fechado

Iluminação pública Equipe localiza defeito em fios da iluminação pública, onde a responsabilidade é da prefeitura Distribuição dos Serviços Atendimento Campo Saida Entrada Reclamação do cliente Atendimento Produtivo ou Inprodutivo Atendimento Cliente

(8)

como objetivo aumentar a produtividade do atendimento através da predição dos Deslocamentos Improdutivos.

O sistema está baseado no desenvolvimento de um modelo para classificar os deslocamentos de atendimento como produtivo ou improdutivo. Esta classificação utiliza modelos de Machine Learning Supervisionados, onde é feita uma seleção, com elevado índice de acurácia, de ocorrências improdutivas e produtivas. Com a sinalização de chamados improdutivos, a gerência operacional da operadora de serviço pode deslocar as equipes de atendimento para os chamados considerados produtivos. Com esta informação a operadora consegue uma redução do custo operacional e um aumento de produtividade.

O sistema trabalha com os atributos gerados pelas ordens de serviço. No projeto em produção, estes dados serão disponibilizados através de um Data Lake, e serão tratados pelo modelo e submetidos a predição. A integração com o sistema Legado da operadora será realizada também através do mesmo Data Lake. Com isto garantimos a integridade do Sistema Legado. O resultado da inferência será gravado no Data Lake, indicando com alto índice de acerto as ocorrências improdutivas, e evitando assim o deslocamento de uma equipe técnica para atendê-la. Por outro lado, as ocorrências sinalizadas como produtivas podem receber prioridade no atendimento.

1.1 MOTIVAÇÃO

Sistemas de Aprendizado de Máquina são sistemas que combinam algoritmos e modelos matemáticos da área de Aprendizado de Máquina em soluções que visam a implantação do uso de tais algoritmos e modelos em ambientes reais. Aprendizado de máquina, por sua vez, se refere a área de estudos voltada ao desenvolvimento e compreensão de modelos matemáticos caracterizados pelo aprimoramento de seus resultados por meio da ingestão de dados de treino, de forma que esses modelos possam realizar predições e decisões sem que sejam explicitamente programados para o fazerem [1].

Algoritmos e modelos matemáticos de Aprendizado de Máquina são apresentados frequentemente pelo setor acadêmico como soluções de problemas reais e complexos. No entanto, a implantação em ambientes de produção poucas vezes é abordada [2].

Diante deste contexto percebemos que existe uma demanda para o desenvolvimento de novas metodologias e plataformas para aplicação de Aprendizado de Máquina em ambiente de produção.

1.2 OBJETIVO DO TRABALHO

O trabalho tem como objetivo aumentar a produtividade dos atendimentos de chamados técnicos em operadora de energia elétrica. Este ganho na produtividade será alcançado através de um modelo de predição de chamados improdutivos.

(9)

1.3 DESCRIÇÃO DO TRABALHO

Foi realizado um estudo de caso com o intuito de entender a operacionalidade da empresa de energia elétrica referente ao atendimento dos chamados de suporte técnico.

A empresa forneceu a base de dados para treinamento em dois arquivos csv, referentes ao ano de 2017 e 2018. Desenvolvemos um programa em python para importar os dois arquivos para o banco de dados Postgre [3]. Utilizamos este banco de dados porque no projeto em produção os dados serão lidos e gravados em um banco de dados Postgre.

Foi feito um protótipo utilizando a ferramenta Rapidminer Studio [4] e a linguagem de programação Python [5]. Com este protótipo fizemos a Análise Exploratória dos dados e o pré-processamento. Três modelos de inferência para foram utilizados para fazer o treinamento e a predição, utilizando a ferramenta Rapidminer Studio [4]. Análise Exploratória dos dados e o pré-processamento foram atualizados no banco de dados Postgre, para o pré-processamento dos modelos. Em produção o projeto prevê um sistema operando em servidores Linux com a linguagem de programação python [5]. Todo o trabalho realizado no Rapidminer será usado no projeto referente a plataforma Linux com python e o framework Django [6].

1.4 ORGANIZAÇÃO DA MONOGRAFIA A monografia está organizada em 6 capítulos.

O capítulo 1 descreve o contexto do projeto e identifica o objetivo do trabalho. Também relatamos neste capitulo a metodologia usada.

No capítulo 2 é feita uma descrição do problema . No capítulo 3 é descrita a fundamentação teórica.

No capítulo 4 são descritos os recursos e plataformas propostas no projeto.

No capítulo 5 apresenta os resultados obtidos com a ferramenta Rapidminer e as conclusões do experimento.

(10)

2 DESCRIÇÃO DO PROBLEMA

Através de pesquisa não foi encontrado outro trabalho que proponha uma solução semelhante à apresentada nesta monografia.

O problema tratado nesta monografia se refere a minimizar o Deslocamento Improdutivo no atendimento de ocorrências no âmbito de operadoras de energia elétrica. A solução proposta se aplica a triagem de ordens e despacho de ocorrências para atendimento, tendo por base um modelo preditivo capaz prever, com alto grau de acurácia, ocorrências improcedentes, evitando assim que equipes sejam deslocadas desnecessariamente para atendimento. É requerido que o conjunto de informações quantitativas e qualitativas dos atendimentos técnicos, referentes a ordens de reparo dos diversos serviços prestados, sejam disponibilizados via "data lake". Estes dados devem ser estruturados em forma numérica, ou fornecidos como informações não estruturadas simples, desde que possam ser transformados para que sejam tratados pelos métodos da solução proposta. A integração com os ambientes de produção será realizada através deste "data lake", garantindo a facilidade de acesso e exigindo um mínimo de modificações nos sistemas existentes.

O modelo preditivo proposto será responsável pela inferência das ocorrências com a finalidade de sinalizar ao processo de triagem as ordens que apresentam potencial improdutivo, evitando que as mesmas sejam despachadas, e também as ordens procedentes para que as mesmas sejam iniciadas o mais rápido possível.

(11)

3 FUNDAMENTAÇÃO TEÓRICA

A metodologia utilizada está baseada nos Sistemas de Aprendizado de Máquina. O aprendizado

de máquina é um método de análise de dados que automatiza a construção de modelos analíticos. É um ramo da inteligência artificial baseado na ideia de que sistemas podem aprender com dados, identificar padrões e tomar decisões com o mínimo de intervenção humana.

O aprendizado de máquina pode ser dividido em 3 grupos : supervisionado, não supervisionado e por reforço, Figura 2.

Figura 2 – Categorias de Aprendizado de Máquina – adaptado da aula Manoela Kohler em 11/02/2019

O supervisionamento é feito quando a partir de um conjunto de dados rotulados previamente definido deseja-se encontrar uma função que seja capaz de predizer rótulos desconhecidos. Nesse tipo de aprendizagem pode-se estimar números reais ou valores dentro de um conjunto finito. Tomemos como exemplo uma base de dados de clientes inadimplentes, onde diversas características como limite de compra, quantidade de pedidos, valor médio de cada pedido e etc são características que podem levar à inadimplência. A aprendizagem supervisionada vai trabalhar com algoritmos capazes de analisar as características de cada cliente e prediz as chances de um determinado cliente, ainda não rotulado, de ser inadimplente. Pode ser categorizado como classificação quando o rótulo é categórico, Regressão quando o rótulo é contínuo, ou se trata de Previsão de Séries quando o rótulo é contínuo e dependente de tempo (Instituto Senai de Inovação). Na Figura 3 ilustramos o processo de aprendizado de máquina Supervisionada.

Podemos usar um sistema de classificação, por exemplo, utilizando um conjunto de dados de recursos humanos para treinamento de um algorítimo, que tenham twitters marcados como positivos, negativos e neutros, e assim treinar o classificador de análise de sentimentos.

Na Regressão o alvo é um valor numérico, que siga um espectro contínuo. Sistemas de Regressão poderiam ser usados por exemplo para responder as perguntas quanto custa, ou quantos

Machine Learning

Supervisionado Reforço

Classificação Regressão

Previsão de Séries Temporais

Agrupamento

Associação interação de agentes com Aprendizado através da um ambiente Não Supervisionado

(12)

existem, ou ainda quando o valor que esta sendo previsto for composto por variaveis continuas, como por exemplo no preço das cotações de ações na Bolsa de Valores. Neste exemplo, cotações históricas podem ser usadas para arriscar previsões sobre preços futuros de ações. O algorítimo vai procurar por padrões nos dados de entrada, usando os atributos como dia da semana, o período do ano, os dados financeiros da empresa, o tipo do setor de atuação, a presença de eventos geopolíticos entre outos (DSA cap 11 Introdução a Machine Learnig).

Figura 3 – Processo Supervisionado, S. Kotsiantis, University of Patras, Supervised Machine Learning: A Review of Classification Techniques, 2007

A primeira etapa é coletar o conjunto de dados. Se um especialista estiver disponível, ele poderá sugerir quais campos (atributos, recursos) são os mais informativos. Se não, o método mais simples

Problema

Identificação dos dados necessários Pré-processamento dos dados Definição do conjunto de treinamento Escolha do algorítmo Treinamento

Análise dos dados de teste

Ajustar os parâmetros

OK ? Classificador

Sim Não

(13)

é o da "força bruta", que significa coletar tudo que esta disponível na esperança de que os recursos certos (informativos, relevantes) podem ser isolados. No entanto, um conjunto de dados coletado pelo método "força bruta" não é diretamente adequado para indução. Contém na maioria casos de ruído e valores ausentes e, portanto, requer pré-processamento significativo. Na maioria dos casos os dados serão coletados de uma única fonte como um arquivo texto, uma planilha ou um banco de dados.

O segundo passo é a preparação e pré-processamento dos dados, chamado de análise exploratória dos dados. A qualidade do projeto é baseada principalmente na qualidade dos dados de entrada. Este processo envolve a limpeza dos dados, eliminação de dados desnecessários, re-codificação dos dados, transformação, organização, entre outras técnicas. No momento em que os dados estiverem preparados para análise iniciamos o processo de aprendizagem de máquina. No treinamento do modelo nos pegamos o conjunto de dados e apresentamos estes dados ao algoritimo selecionado. Como o algoritimo pode gerar dados tendenciosos, é importante avaliar o resultado apresentado pelo modelo. Após esta avaliação pode ser necessário retornar a alguma etapa anterior. É importante definirmos o objetivo da acurácia antes de iniciarmos a primeira etapa. Por exemplo, se estamos criando um modelo para prever as vendas da nossa empresa no próximo ano temos que definir qual o mínimo de acurácia aceitável. Uma precisão de 90% é adequada, ou ela deve ser no mínimo 95% ?. Se o modelo for fazer uma previsão de câncer a acurácia não pode ser 90%, deve estar próxima de 100% (DSA cap 11 Introdução a Machine Learnig). Portanto, a acurácia desejada vai depender do tipo de problema para o qual o modelo esta sendo criado.

Na aprendizagem não supervisionada o conjunto de dados utilizado não possui nenhum tipo de rótulo. O objetivo desse tipo de aprendizagem é descobrir similaridades entre os objetos analisados a fim de detectar similaridades e anomalias. Imagine que não se tem explicitamente em uma base de dados a informação de que um cliente é inadimplente. Neste caso, um algoritmo de aprendizagem não-supervisionado vai criar agrupamentos a partir das características dos clientes e, muito provavelmente, os inadimplentes estarão em algum grupo criado. Além disso, como cada agrupamento vai possuir clientes com características semelhantes, especialistas podem definir um nível de risco para cada grupo criado. Ao invés de definir apenas como inadimplentes ou não, os clientes podem ser agrupados de acordo com o nível de risco de se tornar inadimplente. Pode-se utilizar os agrupamentos por exemplo para criar campanhas de marketing mais direcionadas. Clientes no mesmo grupo possuem grande similaridade, o que pode refletir em necessidades, comportamentos e desejos (Instituto Senai de Inovação).

A Aprendizagem por Reforço é muito usada em Games e Robótica. Aprendizagem por Reforço é o treinamento de modelos de aprendizado de máquina para tomar uma sequência de decisões. O agente aprende a atingir uma meta em um ambiente incerto e potencialmente complexo. No aprendizado por reforço, o sistema de inteligência artificial enfrenta uma situação. O computador utiliza tentativa e erro para encontrar uma solução para o problema. Para que a máquina faça o que o programador deseja, a inteligência artificial recebe recompensas ou penalidades pelas ações que executa. Seu objetivo é maximizar a recompensa total (DSA ,Deep Learning Book - Capítulo 62).

(14)

Existem varias aplicações que utilizam tecnologias de Inteligência Artificial e aprendizado de máquina. Entre elas podemos citar : Detecção de Fraudes, Sistemas de Recomendação, Mecanismos de Busca, Sistemas de Vigilância em Vídeo, Reconhecimento de Manuscrito, Processamento de Linguagem Natural, Bots de Serviço ao Cliente, Segurança de Tecnologia da Informação (TI), Análise de Streamingde Dados, Manutenção Preditiva, Detecção de Anomalia, Previsão de Demanda, Logística ,Negociação Financeira, Diagnóstico de Cuidados de Saúde, Veículos Autônomos, Robôs.

Se um algorítimo de Machine Learning não for capaz de generalizar uma função matemática que faça previsões sobre novos conjuntos de dados, ele não está aprendendo e sim memorizando dados, o que é muito diferente (DSA ,Deep Learning Book - Capítulo 62).Um tópico importante na configuração do modelo de aprendizado de máquina supervisionado é a questão do sobre-ajuste, também chamado de overfitting. Este problema ocorre quando o modelo matemático se adapta tão bem aos dados de treino que quando é testado em um conjunto de dados desconhecido, o seu desempenho cai, resultando em um desempenho não confiável quando praticado em novas medições. Este fenômeno é mais frequente em bancos de dados pequenos. Segundo o professor Teófilo Emidio de Campos (Universidade de Brasília), um classificador muito complexo possui menos poder de generalização. A complexidade da superfície de decisão de um classificador é proporcional ao número de parâmetros livres que ele possui, ou seja, o número de parâmetros utilizados para a determinação das superfícies de decisão. Intuitivamente pode parecer lógico que, para que um classificador seja poderoso, esse deve construir fronteiras de decisão detalhadas. Mas quando o número de parâmetros livres é grande, o classificador tende a se adaptar a detalhes específicos da base de treinamento, o que pode causar uma redução da taxa de acerto (overfitting). Para evitá-lo, é desejável que o classificador seja o mais simples possível, pois assim será dada mais importância às maiores regularidades nos dados e as menores serão ignoradas, pois essas podem ser resultantes de ruídos. Também é possível evitar esse problema aumentando o número de padrões de treinamento do classificador, utilizando padrões que representem o máximo de variações possíveis dos dados.

Já o sub-ajuste (underfitting) é o oposto do sobre-ajuste, ou seja, o modelo é incapaz de captar a variabilidade dos dados, não sendo capaz de se ajustar bem aos dados de treinamento. A precisão nos dados de treinamento e de teste pode ser insatisfatória porque o algoritmo de aprendizagem não tem dados suficientes para serem aprendidos. Neste caso, podemos melhorar o desempenho aumentando a quantidade de exemplos de dados de treinamento,e aumentando o número de passagens nos dados de treinamento existentes.

O objetivo do trabalho é a classificação das ocorrências em deslocamento produtivo e improdutivo, portanto o aprendizado de máquina com Classificação Supervisionada se aplica bem neste caso. Neste trabalho foram utilizados os modelos Decision Tree, SVM e Logistic Regression.

(15)

A Arvore de Decisão é um modelo computacional de classificação onde a obtenção do modelo de classificação é feita pela identificação de relacionamentos entre variáveis dependentes e independentes em bases de dados rotuladas. O classificador é induzido por mecanismos de generalização fundamentados em exemplos específicos (conjunto finito de objetos rotulados). Toda informação sobre cada objeto (caso) a ser classificado deve poder ser expressa em termos de uma coleção fixa de propriedades ou atributos. O número de classes pode ser definido a ‘priori’, o que transforma a modelagem num processo de treinamento supervisionado, ou então será definido automaticamente a partir dos dados disponíveis, o que caracteriza um processo de treinamento não-supervisionado. Neste trabalho vamos utilizar o treinamento Supervisionado.

Há duas possibilidades de classes: classes discretas e classes contínuas. Quando um objeto pertence ou não pertence a uma determinada classe, não havendo a possibilidade de pertinência gradual, nos referimos a classes discretas em contrapartida, a classes de valores contínuos. Algumas árvores de decisão vão trabalhar apenas com classes discretas, enquanto outras admitem classes contínuas (resolvem problemas de regressão).

Deve haver uma quantidade bem maior de objetos do que classes, inclusive para permitir a aplicação de testes estatísticos. A quantidade adequada de objetos vai depender do número de atributos, do número de classes e da complexidade intrínseca ao modelo de classificação. Neste trabalho iniciamos com uma base de dados de 67 atributos, e após a análise exploratória e o pré-processamento reduzimos para 27 atributos. A base de dados deste trabalho é constituída por objetos descritos por um conjunto de atributos (propriedades, características), sendo que a cada objeto deve ser associada uma classe, dentre um conjunto de classes possíveis.

Os atributos são variáveis observáveis e independentes, que assumem valores em variados domínios. Costuma-se especificar os atributos da seguinte forma:

Contínuos: assumem valores numéricos em intervalos no eixo dos números reais; Categóricos ordinais: assumem um conjunto finito de valores, que podem ser ordenados;

Categóricos não-ordinais: assumem um conjunto finito de valores que não podem ser ordenados. A classe é uma variável dependente cujo valor é definido a partir das variáveis independentes, ou seja, a partir dos atributos [7].

A árvore de decisão possui um ou mais ramos. O nó mais alto da árvore corresponde ao melhor classificador, e é chamado de nó raiz. Os nós folhas representam uma classificação ou decisão. Árvores de decisão podem trabalhar com atributos numéricos e categóricos. [8]

Para ilustrar o funcionamento básico de uma árvore de decisão, pode ser considerado o problema de diagnosticar pacientes. Suponha que um novo paciente chegue ao consultório do médico. Como o médico poderia diagnosticar o paciente?

A primeira pergunta que pode ser feita ao paciente é se ele tem sentido dor (corresponderia ao nó-raiz da árvore de decisão). No nó raiz é contemplado o atributo mais relevante da base. A seguir, outras perguntas podem ser feitas, dependendo da resposta obtida. Por exemplo, se o paciente está tendo febre ou enjoos, ou ainda se tem notado alguma mancha no corpo. O exemplo apresenta uma forma de solucionar um problema de classificação por meio de uma sequência de perguntas sobre uma série de características de um objeto (no caso, um paciente). Uma vez obtida a resposta àquela

(16)

pergunta, outra pode ser realizada até que se chegue a uma conclusão sobre a classe a que pertence o objeto. · Essa sequência de perguntas e suas possíveis respostas podem ser organizadas na forma de uma árvore de decisão, a qual é uma estrutura hierárquica composta por nós e arestas, "dividir para conquistar". Dessa forma, é possível utilizar uma árvore de decisão para classificar um novo paciente como saudável ou doente. Para isso, basta partir do nó raiz da árvore e ir percorrendo-a, através das respostas aos testes dos nós internos, até chegar em um nó folhpercorrendo-a, o qual indica a classe correspondente do novo paciente.

Além da obtenção da classe, a grande vantagem é que a trajetória percorrida até o nó folha representa uma regra, facilitando a interoperabilidade do modelo pelo usuário, no caso um médico [7]. O Top-Down Induction of Decision Tree (TDIDT) é um algoritmo bem conhecido e é utilizado como base para muitos algoritmos de indução de árvores de decisão, utilizaremos em nosso modelo o ID3 (J.R. QUINLAN).

3.2 SVM

O SVM (Support Vector Machine) é um algoritmo de aprendizado supervisionado muito utilizado quando se quer classificar dados em grupos diferentes, mas que também pode ser utilizado para regressão. Dependendo do problema pode ser mais rápido que uma rede neural. Originalmente concebido para lidar com classificação binária, portanto, se aplica bem ao nosso trabalho (deslocamento produtivo ou improdutivo) [8].

O algoritmo busca uma linha de separação entre duas classes distintas. Isto é, o SVM escolhe a reta, também chamada de hiperplano em maiores dimensões, entre dois grupos que se distancia mais de cada um. A reta é definida maximizando a margem de classificação. Os dados que ficam em cima da margem são chamados de vetores de suporte, Figura 3. O objetivo é criar o hiperplano minimizando o erro de classificação. Os atributos devem ser numéricos [8].

Figura 3 - Exemplo de um problema separável em um espaço bidimensional. Os vetores de suporte definem a margem da maior separação entre as duas classes.

Margem ótima hiperplano ótimo

(17)

O hiperplano de margem máxima é o qual proporciona uma maior partição entre as categorias. Ou seja, os elementos são mapeados de maneira que as classes são separadas com a maior distância possível entre elas. De maneira geral, o modelo SVM é caracterizado por apresentar uma boa capacidade de generalização, trabalhando de maneira robusta diante de bancos de dados de grande dimensão e pelo fato de ter apenas um único mínimo global. No entanto, as suas principais desvantagens são em relação a sua sensibilidade quanto a definição dos valores dos parâmetros e a complexidade de interpretação do modelo obtido por essa técnica [9].

3.3 LOGISTIC REGRESSION

A regressão logística é um algoritmo machine learning que utiliza um modelo de classificação, sendo muito utilizada para problemas de duas classes. O algoritmo trabalha com os conceitos de estatística e probabilidade e mede a relação entre a variável dependente categórica e uma ou mais variáveis independentes, estimando as probabilidades usando uma função logística e inferindo a classe. Isto quer dizer que este tipo de algoritmo de machine learning analisa diferentes aspectos ou variáveis de um objeto para depois determinar uma classe na qual ele se encaixa melhor. O algoritmo utiliza a equação da regressão linear da reta, aplica uma função sigmóide, Figura 4, e obtém a regressão logística para mapear os dados [10].

Para utilizar a regressão logística como classificador de várias classes deve-se fazer uma regressão para cada uma das classes de maneira independente. Ou ainda pode-se abordar problemas de multiclasse que é também conhecida como classificação em pares. Para tal, é construído um classificador para cada par de classes, utilizando apenas as instâncias dessas duas classes. A saída de novo elemento é baseada de acordo com a classe mais votada. Este método habitualmente gera resultados precisos em termos de erro de classificação. A regressão logística tente a gerar estimativas de probabilidade mais precisas que acarretam classificações mais assertivas que a da Regressão Linear [9].

Figura 4 - Função sigmóide

(18)

O método Normalização consiste em dar aos atributos pesos iguais e diminuir o tempo de convergência dos algoritmos.

A Redução de Dimensionalidade melhora a performance do modelo, eliminando os dados irrelevantes e/ou redundantes de uma determinada base de dados. O classificador tende a piorar conforme aumenta o número de atributos. Objetivos: diminuir custo de aprendizado, aumentar a precisão do algoritmo, e gerar modelos compactos e fáceis de interpretar [11].

O método Wrapper analisa a performance de várias combinações de atributos aplicando um modelo predito nestas combinações. O grupo de atributos escolhido é o que tem a melhor acurácia. Um algoritmo genético pode ser usado na definição dos grupos de atributos. Não vamos aplicar o método Wrapper em nosso trabalho.

No método de Agregação,dois ou mais atributos se fundem em um (PCA). Outliers são dados que estão muito distantes da distribuição de dados. Segundo manual do RapidMiner este operador identifica n outliers no DataSet fornecido com base na distância dos k vizinhos mais próximos. As variáveis n e k podem ser especificadas através de parâmetros. Utilizando a ferramenta RapidMiner o processamento trava devido ao tamanho da base.

O procedimento de Balanceamento de Dados consistem em equilibrar o número de instâncias de cada classe. O operador Sample do Rapidminer executa este procedimento.

(19)

4 ARQUITETURA DO SISTEMA PROPOSTO

A base de dados disponibilizada para o treino e teste dos modelos possui 1.636.199 registros e 67 atributos. O Label é o atributo produtivo, que é binominal. Temos como objetivo alcançar uma acurácia de 90%. Para a execução dos algoritmos de machine learning, devemos garantir que os dados estejam no formato correto e consistentes. Um dos procedimentos é o tratamento de dados faltantes, que não necessariamente são dados nulos. Se esse procedimento não for seguido, os algoritmos informarão resultados errados, ou ainda, na maioria das vezes, não conseguirão iniciar sua execução. Por exemplo, em uma base de dados que possui um atributo idade, o valor 0 não é nulo mas é considerado faltante pois não existe idade 0. O tratamento de Missing Values está demostrado na Tabela 2 e na figura 3.

Análise da base de dados através do comando python print(dataset.describe()) :

Podemos detectar a frequencia elevada de dados faltantes em determinados atributos, como por exemplo order_level e confirmed_open_dvc. Nesta situação optamos pela exclusão do atributo. Podemos detectar atributos faltantes, em que a maior parte dos registros possui um determinado valor para este atributo. Como por exemplo o atrubuto primary_device_type que tem 12,50% de registros com valor nulo neste atributo e 81,40% com o valor 'ET'. Decidimos excluir este atributo.

(20)
(21)

Tabela 2 Tratamento de Missing Values

Atributo % missing

value Valor

%

ocupação Tratamento missing value Cause 5% 102 38,40% substituição do missing value por 102

Cmi 7,13% 0 62,85% substituição do missing value por 0 outros < 1%

Priority 4,0% 6 33,60% substituição do missing value pela Media

confirmed_open_dvc 70,40% exclusão deste atributo

primary_cluster_id 11,90% outros < 2,2% substituição do missing value pela Media

Subcause 5,20% substituição do missing value pela Media

end_time 7,20% substituição do missing value pela Media

scheduled_start_time 95,80% exclusão do atributo

scheduled_end_time 12,30% substituição do missing value pela Media Method 47,40% automatic 52,60% exclusão deste atributo

recloser_id 100% exclusão deste atributo

confirmed_open_dvc_type 94,50% exclusão deste atributo confirmed_open_dvc2 68,50% outros <0,001% exclusão deste atributo

confirmed_open_dvc 70,40% exclusão deste atributo

atributo incident_start_time 3,90% substituição do missing value pela Media

ownwr_id 2,90% substituição do missing value pela Media

atributo first_caller_id 11,70% substituição do missing value pela Media

incident_id 3,90% substituição do missing value pela Media

event_id 99,60 % exclusão deste atributo

order_level 66,06 % 2 30,13% exclusão deste atributo

first call 12,50% outros <0,001%

Sem este atributo na base obtivemos uma

accuracy foi de 89,27%

Com este atributo a accuracy de 89,25% Decidimos manter este atributo na base

(22)

Deleção dos registros c/ missing value

Scope 99,99% exclusão deste atributo

primary_device_type 12,50% ET 81,40% exclusão deste atributo

highest_hier_device 93,50% exclusão deste atributo

highest_hier_device 93,50% exclusão deste atributo

highest_hier_device_type 93,50% exclusão deste atributo

earliest_device 70,70% exclusão deste atributo

earliest_device_type 94,70% <2,3%. <2,3% exclusão deste atributo

Emergency 99,70% exclusão deste atributo

internal_primary_crew 46,60% <1% exclusão deste atributo external_primary_crew 46,60% <1% exclusão deste atributo internal_assigned_time 46,60% exclusão deste atributo internal_dispatched_time 46,60% exclusão deste atributo internal_enroute_time 46,60% exclusão deste atributo internal_arrived_time 46,60% exclusão deste atributo internal_released_time 46,60% exclusão deste atributo external_assigned_time 46,60% exclusão deste atributo external_dispatched_time 46,60% exclusão deste atributo external_enroute_time 46,60% exclusão deste atributo external_arrived_time 46,60% exclusão deste atributo external_released_time 46,60% exclusão deste atributo

Figura 3 - Tratamento de Missing Values na ferramenta RapidMiner O tratamento de seleção de atributos está demostrado na Tabela 3. Tabela 3 Tratamento de seleção de atributos

(23)

order_id 1 registro para cada ocorrência exclusão deste atributo order_number 1 registro para cada ocorrência exclusão deste atributo Status 92,80 % dos registros com o valor closed exclusão deste atributo Planning possui 95,20 % dos registros com o valor 0 exclusão deste atributo local_order 100 % dos registros com o valor 0 exclusão deste atributo atributo risk_area 99,40 % dos registros com o valor 0 exclusão deste atributo internal_served_by_moto 98,40 % dos registros com o valor 0 exclusão deste atributo external_served_by_moto 98,40 % dos registros com o valor 0 exclusão deste atributo A base de dados possui 46,52% dos registros referentes a deslocamento produtivo e 53,48 referente a deslocamento improdutivo. Considerei esta diferença pequena, portanto não é necessário realizar o balanceamento. Uma observação importante é que após a separação da base em treino e teste estes percentuais ficaram aproximadamente iguais, mantendo uma coerência entre a base original e as bases de treino e teste.

O protótipo do projeto foi desenvolvido em RapidMiner,e tambem foi feito um processamento dos modelos em paralelo com a linguagem de programação Python. Isto foi possível porque todo pre processamento foi atualizado no banco de dados Postgre. Neste protótipo estão contemplados os processos de análise exploratória e mineração de dados. Definimos também os três modelos usados para a inferência. A ferramenta Rapidminer não se aplica a uma empresa operadora de energia elétrica para o projeto proposto nesta monografia. Isto devido ao porte da empresa. Apresentamos a seguir a arquitetura do projeto proposto para operar em produção.

A ideia é utilizar um servidor com sistema operacional Linux. Os dados necessitam ser processados em tempo real, para a tomada de decisão no atendimento do chamado técnico. O sistema utilizara um stream de dados para processamento constante. O sistema terá funções que permitiram o agendamento das tarefas e acompanhamento das execuções dos modelos de Aprendizado de Máquina. Uma execução consiste no processamento de um modelo, que coleta dados no datalake a serem inferidos, processa a inferência e devolve o registro inferido para uma tabela especifica do data lake.

Os componentes do sistema são:

1 - Uma aplicação Web que execute o agendamento do programa para processamento de modelos de Aprendizado de Máquina, e exiba os resultados da inferência em tempo real.

2 - Um banco de dados para armazenamento do log do sistema.

3 - Desenvolvimento do programa para execução dos modelos de Aprendizado de Máquina. 4 - Um Web Service para o processamento do sistema.

(24)

Agendadores de Tarefas

No projeto proposto os dados serão processados em tempo real, portanto serão necessárias ferramentas agendadoras de tarefas, ou job shedulers. Essas são ferramentas responsáveis pela execução agendada de programas, viabilizando metas de frequência de processamento e execução.

Slurm

Slurm é uma ferramenta capaz de realizar o agendamento de tarefas, sendo uma das principais

ferramentas de código aberto utilizada em sistemas Linux. O Slurm é capaz de funcionar em clusters computacionais de forma distribuída ou baseada em apenas uma instância.

As três principais funções do slurm são a alocação de recursos de maneira exclusiva e não exclusiva a usuários por um período de tempo, prover um framework para iniciar, executar e monitorar tarefas paralelas em um conjunto de nós computacionais e arbitrar a contenção de recursos gerenciando filas de trabalhos pendentes. Sua arquitetura consiste de um daemon rodando em cada nó e um daemon central no nó principal. Os daemons provém comunicação hierárquica tolerante a falhas.

Os nós da rede se dividem em partições, cada uma sendo uma fila de tarefas, cada tarefa é subdividida em subtarefas, que podem ser processadas pela partição em paralelo. Uma vez alocada a um conjunto de nós, o usuário é capaz de iniciar o trabalho em paralelo na forma de subtarefas em qualquer configuração dentro da alocação de nós [12].

Crontab

O nome é uma abreviação de cron table, pois se refere ao arquivo cron file utilizado internamente para agendamento e execução de tarefas. Esse programa consiste de um arquivo no sistema operacional Linux que periodicamente é lido pelo cron daemon, fazendo uso de expressões CRON, e suas linhas são interpretadas como entradas de uma tabela contendo em uma coluna a expressão que define sua agenda de execução e em outra coluna o comando a ser executado como um programa de linha de comando. Possui a vantagem de ser extremamente simples e possuir suporte para manipulação por meio de diversas linguagens de programação, incluindo Python 3, a linguagem escolhida para o Projeto [13].

Desenvolvimento Web

Será Utilizado Django [6] como framework de desenvolvimento de aplicações e serviços web. Este framework é compatível com a linguagem de programação Python, gratuito e de código aberto. Sua estrutura interna é baseada no paradigma MVC,possui integração nativa com bancos de dados a partir de uma interface própria. Todos os componentes de uma aplicação web são reproduzidos por meio de convenções próprias ao framework, baseados na reusabilidade de código e orientado à

(25)

integração nativa com bancos de dados diversos. O nome Django foi inspirado no músico de jazz Django Reinhardt.

O Django foi criado originalmente como sistema para gerenciar um site jornalístico na cidade de Lawrence, no Kansas. Tornou-se um projeto de código aberto e foi publicado sob a licença BSD em 2005. Desenvolvido e utilizado por mais de dois anos em uma operação ágil de notícias online, o

Django foi projetado para lidar com dois desafios: os prazos apertados de uma redação e os

requisitos rígidos dos experientes desenvolvedores web que o criaram. Ele permite que você construa rapidamente aplicações web de alto desempenho e elegância [6].

O desenvolvimento com o framework é marcado pela pouca quantidade de código produzido e pelas diversas interfaces de programação providas pela plataforma. Django utiliza o princípio DRY (Don't Repeat Yourself), onde faz com que o desenvolvedor aproveite ao máximo o código já feito, evitando a repetição. Com o ORM do Django você define a modelagem de dados através de classes em Python. Com isso é possível gerar suas tabelas no banco de dados e manipulá-las sem necessidade de utilizar SQL (o que também é possível).

Também se destacam a integração nativa com um sistema de administração embutido nas aplicações produzidas que fornece, sem custos adicionais de desenvolvimento, uma aplicação e interface de autenticação de usuários também utilizável em todas as camadas de serviço construídas paralelamente no mesmo ambiente.

O framework disponibiliza ao desenvolvedor interfaces próprias para o acesso a bancos de dados,templates para renderização de HTML, classes extensíveis para programação orientada a objetos, encaminhamento de requisições configurável, dentre outras facilidades.

Python é uma linguagem de programação de alto nível, interpretada, e orientada a objetos. É

muito usada em desenvolvimento de projetos de AI. O Python possui uma vasta biblioteca, fornecendo ferramentas para diversas aplicações.

Web Service

A Amazon Web Services [14], ou AWS, é a maior provedora de infraestrutura em nuvem do mercado. A empresa provê serviços para websites, aplicações cliente servidor, banco de dados, análise de dados, redes, dispositivos móveis, ferramentas de gerenciamento, armazenamento de dados, aluguel de servidores entre outros. Seus serviços podem ser acessados em seu portal web e por meio de suas API s e SDKs.

Desde o início de 2006, a AWS fornece a empresas de todos os tamanhos uma plataforma de serviços de tecnologia da informação na nuvem. Com a AWS, os desenvolvedores de software podem requisitar facilmente computação, armazenamento, banco de dados e outros serviços baseados na Internet para alimentar seus aplicativos. Os desenvolvedores têm a flexibilidade de escolher qualquer plataforma de desenvolvimento ou ambiente de programação que faça sentido para os problemas que eles estão tentando resolver. A AWS adota, para a maioria de seus serviços, o plano de pagamento pay-as-you-go, fazendo necessário apenas o pagamento pelos recursos consumidos. Como os desenvolvedores pagam apenas pelo que usam, sem custos iniciais de capital

(26)

e baixos custos operacionais, a AWS é a maneira mais econômica de fornecer recursos computacionais, dados armazenados e outros aplicativos aos usuários finais.

Prever como os usuários vão adotar um novo aplicativo é difícil. Quando os desenvolvedores tomam uma decisão de capacidade antes da implantação de um aplicativo, geralmente acabam com recursos caros ociosos ou capacidade limitada, o que pode resultar em uma experiência ruim para o usuário final até que as restrições de recursos sejam resolvidas. Com a AWS, esse problema desaparece. Os desenvolvedores podem provisionar a quantidade de recursos de que precisam, quando precisam. Se eles precisarem de mais, eles podem facilmente aumentar de escala. Se eles não precisam deles, simplesmente os desligam e param de pagar.

Com os serviços tradicionais de tecnologia da informação, pode levar semanas para obter os recursos adquiridos, entregues e executados. Esses longos prazos sufocam a inovação. Com a AWS, os desenvolvedores podem implantar centenas ou até milhares de nós de computação em minutos, sem precisar conversar com ninguém. Esse ambiente de autoatendimento altera a rapidez com que os desenvolvedores podem criar e implantar aplicativos e permite que as equipes de desenvolvimento de software inovem mais rapidamente e com mais frequência.

A AWS permite que os clientes desviem os recursos dos investimentos e operações do data

center e os movam para novos projetos inovadores. Os escassos recursos de TI e de engenharia

podem se concentrar em projetos que ampliam os negócios, em vez de na infraestrutura de TI que é importante, mas que raramente diferencia os negócios.

O Amazon Web Services fornece armazenamento de dados de baixo custo com alta durabilidade e disponibilidade. A AWS oferece opções de armazenamento para backup, arquivamento e recuperação de desastres, além de armazenamento em bloco, arquivo e objeto com alta segurança disponível sem custo adicional.

O Amazon Web Services fornece serviços de big data gerenciados, seguros, escaláveis, de autoatendimento e de pagamento conforme o uso, como streaming, armazenamento, NoSQL e bancos de dados relacionais, armazenamento de objetos, análises e arquivamento para ajudá-lo a coletar, armazenar e preparar, com qualquer tipo de dados em escalas crescentes de tamanho e velocidade.

A Amazon está disponível em diversas localidades, operando datacenters ao redor do mundo. Cada local é composto por uma região e zonas de disponibilidade, onde uma região é uma zona geográfica totalmente independente das demais, contendo diversas zonas de disponibilidade também isoladas entre si.

(27)

5 RESULTADOS

Na tabela 04 são apresentados os resultados da acurácia no processamento na ferramenta

RapidMniner. Na tabela 05,06 e 07 é apresentada a matriz de confusão.

Tabela 04 Resultados do processamento na ferramenta RapidMniner

Tabela 05 Matriz de Consusão , Decision Tree ,processamento na ferramenta RapidMniner inprodutivo produtivo

inprodutivo 611616 0 100%

produtivo 0 533722 100%

100% 100%

Tabela 06 Matriz de Consusão , Logist Regression, processamento na ferramenta RapidMniner inprodutivo produtivo

inprodutivo 611550 32 99,99%

produtivo 66 533690 99,99%

99,99% 99,99%

Tabela 07 Matriz de Consusão , SVM, processamento na ferramenta RapidMniner inprodutivo produtivo

inprodutivo 608494 0 100%

produtivo 3122 533722 99,42%

99,49% 100%

Conforme observado no Grafico 01,a melhor acurácia foi de 100%, obtida com o modelo Decision

Tree, tanto no Rapidminer quanto no Python. Este valor se revela suficiente para atender os objetivos

propostos. É importante observar que a base de dados tem um volume extremamente elevado para a

Modelo accuracy Observação

Decision Tree 100,00% base de treino para 30%, para compatibilizar com SVM

Logistic Regression 99,97% base de treino para 30%, para compatibilizar com SVM

SVM 99,89%

A base de treino com 70% dos dados o Rapidminer/Python travam e não respondem ao processamento. Foi necessario alterar a base de treino para 30%

(28)

capacidade do meu computador, e portanto foi necessário realizar o trino com 30% da base de dados. Na figura 04 ilustramos o modelo Logistic Regression na ferramenta RapidMiner.

Grafico 01 – Quadro comparativo do resultado da predição

(29)

6

CONCLUSÕES E TRABALHOS FUTUROS

O resultado obtido com o modelo Decision Tree com 100,00% de acurácia será de grande utilidade no atendimento dos chamados de deslocamentos produtivos, aumentando a performance no atendimento das ocorrências. Seria interessante fazer testes com outros classificadores, como K-NN e redes neurais. E ainda testar com outras parametrizações dos classificadores. A principal limitação do projeto foi o tamanho da base de dados, que causou um grande impacto principalmente no processamento dos modelos. Será necessário testar o sistema com uma base mais atualizada e de menor tamanho. Para que o sistema seja utilizado em produção é necessário o desenvolvimento do projeto apresentado no ambiente Linux. Pela complexidade do projeto é necessário que uma empresa se interessa em arcar com o custo de desenvolvimento.

(30)

Referências Bibliográficas

[1] BISHOP, C. M., Pattern Recognition and Machine Learning", Springer,v. ISBN 978-0-387-31073- 2, 2006.

[2] WAGSTAFF, K., Machine learning that matters, arXiv preprint ar-Xiv:1206.4656, , 2012.

[3] Postgre Documentation, Banco de Dados , consulta realizada em dezembro de 2019 e janeiro de 2020,https://www.postgresql.org/.

[4] https://www.rapidminer.com/, Software.

[5] Python Documentation, linguagem de programação, consulta realizada entre outubro de 2019 e fevereiro de 2020, https://www.python.org/.

[6] Django

,

Web Framework para Python, consulta realizada em outubro e novenbro de 2019,

https://www.djangoproject.com/ .

[7] Profs. FERNANDO J. VON ZUBEN & ROMIS R. F. ATTUX ,Árvore de Decisão,IA004 –

DCA/FEEC/Unicamp.

[8] Anotações da aula Data Mining ,prof. Manoela em 11/02/19.

[9] IAN WITTEN & EIBE FRANK , Data Mining Practical Machine Learning Tools and Techniques, second edition, 2005.

[10] Anotações da aula Data Mining ,prof. Manoela em 14/02/19. [11] Anotações da aula Data Mining ,prof. Manoela em 21/01/19.

[12] Slurm Workload Manager, consulta realizada em 18/11/19, https://slurm.schedmd.com/.

[13] Ubuntu Tutorial and Documentation, consulta realizada em outubro e novenbro de 2019,

https://ubuntu.com/

[14] Amazon Web Services, consulta realizada em janeiro de 2020, https://aws.amazon.com/pt/products/

Referências

Documentos relacionados

c.4) Não ocorrerá o cancelamento do contrato de seguro cujo prêmio tenha sido pago a vista, mediante financiamento obtido junto a instituições financeiras, no

Os autores relatam a primeira ocorrência de Lymnaea columella (Say, 1817) no Estado de Goiás, ressaltando a importância da espécie como hospedeiro intermediário de vários parasitos

A Lei nº 2/2007 de 15 de janeiro, na alínea c) do Artigo 10º e Artigo 15º consagram que constitui receita do Município o produto da cobrança das taxas

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Mediante o impacto do paciente com o ambiente do centro cirúrgico, a equipe de enfermagem deve estar voltada para o aspecto humano do atendimento, centrando suas

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Verificada a efetividade da proposta, a Comissão de Licitações declarou vencedor o licitante Francisco Souza Lima Helm, sendo o total do item 14 licitado o valor de

A meta prevista para este indicador era garantir a realização de exames complementares em dia a 100% de hipertensos e diabéticos do programa, por tanto não foi atingida,