F
ACULDADE DEE
NGENHARIA DAU
NIVERSIDADE DOP
ORTOBigdata geoanalytics to optimize fleet
operations
Rui Daniel Cruz e Silva da Costa Gonçalves
Mestrado Integrado em Engenharia Informática e Computação Orientador: João Pedro Mendes Moreira
Bigdata geoanalytics to optimize fleet operations
Rui Daniel Cruz e Silva da Costa Gonçalves
Mestrado Integrado em Engenharia Informática e Computação
Abstract
The host institution in which this dissertation was made, Gisgeo, is a company specialized in the development of Geographic Information Systems (GIS), software responsible for collecting and manipulating georeferenced data, whose customers are also business entities. Inside the vari-ous commercial activities that exist within a company, tracking its assets and staff is fundamental for the company’s success, since it increases their safety and is an advantage for controlling all the internal managing processes. In the specific case of organizations owning a fleet, this tracking and management of vehicles is crucial so that the companies are able to maintain their competitiveness on the market. One of the main elements in this management is the quantity of fuel consumed by the vehicles, which has a direct and fairly significant impact on the financial performance of the companies, as well as an increase in the emission of polluting gases. It is also a consequence of factors that may jeopardize the safety of its workers.
Gisgeo gives priority to the use of open source technologies and the provided data are confi-dential, presenting information regarding spatial and temporal location of all vehicles of its custo-mers, as well as their traveled distances and total consumption. With this information it became possible to, through the implementation of a data mining process, detect vehicles whose consump-tion has been excessive, when compared to the other vehicles being analysed, after a previous study of the provided database and the construction of a dataset in which the analysis could be performed. Thus, it became possible to identify which vehicles practiced a less efficient driving, which may contribute to help make decisions to improve energy performance, in order to cut the operation costs of these companies and, from an ecological stand point, witness a reduction in their ecological footprints.
Resumo
A instituição de acolhimento na qual foi realizada esta dissertação, a Gisgeo, é uma empresa especializada no desenvolvimento de Sistemas de Informação Geográfica (SIG), software respon-sável por recolher e manipular dados georreferenciados, cujos clientes são também, por sua vez, entidades empresariais. Dentro das diversas atividades comerciais existentes dentro de uma em-presa, a monitorização de ativos e de pessoas é fundamental para o seu sucesso, uma vez que aumenta a segurança destes e é uma mais-valia no controlo de todo o processo de gestão interna. No caso concreto de organizações detentoras de uma frota, essa monitorização e gestão dos veí-culos é crucial para que as empresas consigam manter a sua competitividade no mercado. Um dos principais elementos nesta gestão é a quantidade de combustível gasto pelos veículos, que tem um impacto direto e bastante significativo no desempenho financeiro das empresas, bem como num aumento das emissões de gases poluentes. É também consequência de fatores que podem pôr em causa a segurança rodoviária dos seus trabalhadores.
A Gisgeo atribui prioridade à utilização de tecnologias open source e os dados disponibilizados são confidenciais, apresentando informação relativa à localização espacial e temporal de todos os veículos dos seus clientes, bem como distâncias percorridas e consumos totais destes. Com esta informação tornou-se possível, através da implementação de um processo de data mining, detetar veículos cujo consumo tenha sido excessivo, em comparação com os outros veículos em análise, depois de um estudo prévio da base de dados disponibilizada e da construção de um dataset em que essa análise pudesse ser feita. Assim, tornou-se possível identificar que veículos praticaram uma condução menos eficiente, o que poderá contribuir para ajudar na tomada de decisões para melhorar os desempenhos energéticos, de maneira a reduzir os custos de operação destas empresas e, de um ponto de vista ecológico, verificar-se uma diminuição das suas pegadas ecológicas.
Agradecimentos
Primeiramente, gostaria de agradecer à Faculdade de Engenharia da Universidade do Porto (FEUP) por todo o meu percurso académico nos últimos anos e a todos os professores que, de alguma forma, me ensinaram aquilo que sei hoje na área da informática.
Agradecer ao professor João Mendes Moreira por toda a orientação prestada desde o início da elaboração desta dissertação, e também à Gisgeo por todo o acompanhamento, em especial ao Cláudio Pereira pela ajuda e compreensão nos últimos meses.
Gostaria de agradecer aos meus amigos André Regado, Francisco Couto, António Presa, Pedro Sousa, Mário Ferreira, Alcino Sousa e Luís Pinto por fazerem da minha passagem pela FEUP algo que vou querer recordar por muitos anos.
Ao Grupo de Ação Social do Porto (G.A.S.Porto) pelas pessoas formidáveis que conheci nos últimos anos, por todas as experiências insubstituíveis, por me fazer querer ser sempre melhor e por representar, para mim, muito mais do que um grupo de voluntariado.
E por fim, agradecer à minha família, em particular à minha mãe e à minha irmã, por sempre terem sido o meu porto de abrigo e a quem devo tudo o que sou hoje.
Rui Gonçalves
“Não tenhamos pressa, mas não percamos tempo.” José Saramago
Conteúdo
1 Introdução 1
1.1 Contexto/Enquadramento . . . 1
1.2 Motivação e Objetivos . . . 2
1.3 Estrutura da Dissertação . . . 3
2 Data mining e Outlier Detection 5 2.1 Introdução . . . 5
2.2 Knowledge Discovery in Databases . . . 7
2.3 Pré-processamento dos dados . . . 9
2.3.1 Data Cleaning . . . 10
2.3.2 Data Integration . . . 10
2.3.3 Data Reduction . . . 10
2.3.4 Data Transformation . . . 10
2.4 Métodos de data mining . . . 11
2.5 Outlier Detection . . . 13
2.5.1 Métodos estatísticos . . . 15
2.5.2 Métodos baseados em proximidade . . . 17
2.5.3 Métodos baseados em clustering . . . 19
2.5.4 Métodos baseados em classificação . . . 20
3 Problema, solução e tecnologias utilizadas 23 3.1 Problema . . . 23 3.2 Solução . . . 24 3.3 Tecnologias . . . 24 3.3.1 PostgreSQL . . . 25 3.3.2 DBeaver . . . 25 3.3.3 R . . . 25
4 Construção do dataset e deteção de consumos excessivos 27 4.1 Base de dados utilizada . . . 27
4.1.1 Estrutura da base de dados . . . 28
4.1.2 CAN bus . . . 30
4.2 Construção do dataset . . . 31
4.2.1 Junção das tabelas tabela1 e tabela2 . . . 31
4.2.2 Redução da nova tabela . . . 32
4.2.3 Divisão em duas tabelas . . . 35
4.3 Deteção de consumos excessivos . . . 36
4.3.1 Consumos excessivos em autoestradas . . . 36 ix
CONTEÚDO
4.3.2 Consumos excessivos dentro das localidades . . . 37 5 Conclusões e Trabalho Futuro 39 5.1 Trabalho Futuro . . . 40
Referências 41
Lista de Figuras
2.1 Algumas das tecnologias adotadas pelo processo de data mining [HPK11] . . . . 8
2.2 Visão dos passos do processo de extração de conhecimento [FPSS96] . . . 9
2.3 Representação da aplicação de clustering num conjunto de dados [Ber06] . . . . 12
2.4 Exemplo de outliers num gráfico bidimensional [CBK09] . . . 13
2.5 Utilização de um boxplot na deteção de outliers [HPK11] . . . 16
2.6 Clusters com densidades diferentes [CBK09] . . . 18
2.7 Método baseado em classificação multi-class [US12] . . . 21
4.1 Gráfico exemplo de veículo cujo consumo foi de 0 litros . . . 33
4.2 Gráfico exemplo de veículo cuja distância percorrida foi de 0 quilómetros . . . . 34
4.3 Gráficos exemplo de veículos eliminados da análise . . . 34
4.4 Gráfico de veículo com dados normais . . . 35
4.5 Boxplot de todos os registos feitos em autoestrada . . . 36
4.6 Boxplot de todos os registos feitos dentro de localidades . . . 37
LISTA DE FIGURAS
Lista de Tabelas
4.1 Exemplo de registos da tabela tabela1 . . . 29 4.2 Exemplo de registos da tabela tabela2 . . . 30 4.3 Exemplo de registos da nova tabela do dataset . . . 32
LISTA DE TABELAS
Abreviaturas e Símbolos
BIRCH Balanced Interative Reducing and Clustering using Hierarchies CAN Controller Area Network
CBLOF Cluster-Based Local Outlier Factor CRAN Comprehensive R Ar-chive Network
DBSCAN Density-Based Spacial Clustering of Applications with Noise ECU Electronic Control Unit
ESD Extreme Studentized Deviate EUA Estados Unidos da América GIS Geographic Information System GPS Global Positioning System GUI Grafical User Interface
IDE Integrated Development Environment IQR InterQuartile Range
ISO International Organization for Standardization KDD Knowledge Discovery in Databases
kNN k Nearest Neighbors
LDOF Local Distance-Based Outlier Factor LOF Local Outlier Factor
OLAP OnLine Analytical Processing
RGPD Regulamento Geral de Proteção de Dados SAS Statistical Analysis System
SGBD Sistema de Gestão de Bases de Dados SIG Sistema de Informação Geográfica
Capítulo 1
Introdução
Neste capítulo irá ser dada uma visão geral sobre o enquadramento do trabalho, sendo explora-dos e definiexplora-dos os problemas abordaexplora-dos nesta dissertação, bem como a motivação para o trabalho a realizar e os objetivos a serem cumpridos. A motivação e os objetivos irão ser incluídos numa única secção. Por fim, a estrutura do relatório é explicada no final do capítulo.
1.1
Contexto/Enquadramento
Esta dissertação foi realizada num contexto empresarial, sendo a instituição de acolhimento a Gisgeo Information Systems. A Gisgeo1 é uma empresa portuguesa especializada no desenvol-vimento de Sistemas de Informação Geográfica (SIG). Estes podem ser definidos, de uma forma geral, como sistemas capazes de realizar vários tipos de operações sobre informação geográfica, como armazenar, analisar e apresentar essa informação. As soluções desenvolvidas pela Gisgeo são de apoio à decisão com base em dados geográficos, para que possam ser aplicadas na gestão das organizações, de modo a poupar custos e a otimizar os recursos. Esta empresa atribui grande relevância ao desenvolvimento de SIG com recurso a tecnologias open source. A sede desta em-presa encontra-se no Porto, sendo que existem duas filiais em Setúbal e em Matosinhos.
Hoje em dia é cada vez mais essencial para as empresas que possuam frotas de veículos fa-zer com que a gestão dessa frota seja feita da forma mais eficiente possível. Os problemas que este tipo de empresas têm de enfrentar diferem bastante daqueles de empresas cuja gestão esteja mais focada em ativos imóveis, como máquinas industriais, uma vez que uma frota de veículos é mais afetada por fatores externos [VMBP12]. O desempenho da empresa e o lucro obtido são fortemente influenciados pelos custos associados ao transporte e à manutenção desse conjunto de veículos. Estas empresas procuram sempre minimizar os custos de operação e maximizar a segu-rança rodoviária. Um dos pontos cruciais para que esta redução de custos se verifique é a redução no consumo de combustível por parte dos veículos que possuem.
1http://www.gisgeo.pt/
Introdução
As áreas em que está inserido este tema são bastante abrangentes. A área principal que esta dissertação aborda é a de data mining. O processo de data mining obriga, forçosamente, a que sejam investigadas e implementadas também áreas como análise estatística, machine learning, sistemas de informação, entre outras, bem como várias tecnologias existentes para o tratamento da informação e a extração de conhecimento.
1.2
Motivação e Objetivos
A segurança de todas as pessoas a bordo de um veículo sempre foi e continua a ser um grande problema com o qual não é fácil lidar. Nos Estados Unidos morrem anualmente, em média, entre 41,000 e 43,500 pessoas em acidentes de trânsito, sendo a principal causa de morte de pessoas com idades compreendidas entre 1 e 34 anos [PEB10]. Apesar de existirem várias causas para um número tão avultado de mortes, bem como para a severidade dos ferimentos causados, uma condução agressiva é apontada como a causa predominante. É estimado que cerca de 56% dos acidentes fatais nos EUA entre 2003 e 2007 tenham sido resultado de um comportamento agressivo na estrada, em que perto de um terço é resultado de velocidade excessiva [PEB10].
Além dum potencial aumento da segurança rodoviária dos funcionários da empresa e de todos os possíveis passageiros, os valores de redução no consumo de combustível a que uma condu-ção mais eficiente pode levar, através da aplicacondu-ção de energy-efficient driving, são significativos. Energy-efficient drivingpode ser definido como um conjunto de técnicas durante a condução que visam reduzir o consumo de combustível, tentando, ao mesmo tempo, ter uma condução o mais eficiente possível. Entre estas técnicas, uma melhor gestão das velocidades, das acelerações e abrandamentos, e na escolha adequada de peças para a viatura trará benefícios em termos de efi-ciência para a empresa.
Para além das vantagens para as empresas, também existe uma melhoria clara na redução da poluição emitida pelos veículos da frota. Segundo a agência de proteção ambiental norte-americana, aproximadamente 31% dos gases com efeito de estufa emitidos nos EUA provêm do setor dos transportes, e um quarto da produção mundial de petróleo é utilizada para a criação de combustível automóvel [DW13]. Observando resultados obtidos de conduções dentro das cidades e em autoestradas, foi possível concluir que uma alteração de um estilo de condução moderado para um estilo mais eficiente pode levar a poupanças na ordem dos 10%, e de um estilo agressivo para um eficiente origina poupanças de cerca de 20% [GES12]. Além de uma evidente melhoria na segurança das pessoas a bordo dos veículos da frota, e da poupança em termos de combustível, uma energy-efficient driving pode levar a uma redução dos custos associados à manutenção dos veículos, nomeadamente na substituição de peças desgastadas, tais como pastilhas de freio e os pneus.
Havendo, então, provas de que uma modificação do estilo de condução por parte dos conduto-res terá repercussões positivas fundamentalmente nos três níveis referidos (segurança rodoviária, custos para a empresa e emissão de gases poluentes), o objetivo passa então por fazer uma análise que sirva de apoio à decisão aos gestores das empresas, com recurso a todos os dados existentes
Introdução
que sejam considerados relevantes. De uma forma mais concreta, essa análise será feita sobre todos os veículos existentes na base de dados da Gisgeo com vista a serem detetados aqueles que têm vindo a exceder o consumo de combustível de forma significativa (considerados como outli-ers), em comparação com os outros veículos em análise. A técnica utilizada para poder detetar esses outliers será escolhida tendo em conta os dados existentes e depois de uma revisão exaustiva da atual literatura.
Este conhecimento adicional sobre os seus veículos poderá, posteriormente, ser utilizado pelas empresas no seu processo de tomada de decisões para facilitar a criação de estratégias tendo em vista a redução desses consumos. Este processo de tomada de decisões dentro de uma organização é, por natureza, complexo, e é dificultado pelo ambiente empresarial [FZC16]. Várias classes de limitações podem ser identificadas:
• Limites cognitivos, intrínsecos tanto à qualidade dos dados disponíveis para a tomada de decisão como às técnicas e procedimentos levados a cabo pelo gestor;
• Custo acrescido pela contratação de assistentes e consultores que iriam ajudar no processo de tomada de decisão;
• Limitações a nível temporal, que poderão ter de ser feitas de forma urgente em situações críticas, ou em casos em que várias decisões terão de ser tomadas ao mesmo tempo; • Limitações comunicativas ou colaborativas em cenários em que várias pessoas com
conhe-cimentos em diferentes ramos estão envolvidas na tomada de decisões.
1.3
Estrutura da Dissertação
Para além deste capítulo introdutório, em que é dado um contexto geral ao tema da disserta-ção, este relatório irá ter mais 4 capítulos. No Capítulo 2 é descrito em detalhe o estado da arte e trabalhos relacionados, explicando a evolução tecnológica do processo de data mining, cuja im-portância é cada vez mais vital no seio das empresas para se efetuar uma extração de conhecimento dos dados que possuem, dando especial realce a um dos métodos, outlier detection. No Capítulo 3 é explicado o problema e dada uma perspetiva de solução. No Capítulo 4 é detalhado o estudo da base de dados fornecida e explicada em pormenor a construção do dataset e os resultados obtidos da deteção dos outliers existentes. Por fim, no Capítulo 5 são apresentadas as conclusões a tirar do trabalho realizado durante a elaboração deste projeto, bem como propostas de trabalho futuro que poderão adicionar mais valor à solução apresentada.
Introdução
Capítulo 2
Data mining e Outlier Detection
Neste capítulo é apresentado o estado da arte sobre data mining e, mais concretamente, outlier detection (deteção de outliers) e são apresentados trabalhos relacionados para mostrar o que existe neste domínio. É importante, inicialmente, abordar uma visão histórica do processo de data mi-ning, falando da sua evolução tecnológica e de alguns trabalhos que foram relevantes para definir alguns dos seus conceitos chave. Irão ser abordados os vários passos que um processo de data mining exige e algumas das técnicas mais utilizadas nesta área, com especial ênfase em outlier detection, para que uma extração de conhecimento possa ser feita com qualidade.
2.1
Introdução
Para poder tomar uma decisão os gestores de empresas precisam de conhecimento. Em mé-todos tradicionais, a transformação de dados em conhecimento depende da análise manual e in-terpretação dos dados por parte de analistas, cujos relatórios servem como base para as decisões dos gestores [FPSS96]. Hoje em dia, contudo, este tipo de abordagem tornou-se lenta, onerosa e demasiado subjetiva, uma vez que a tarefa de obter esse conhecimento é, grande parte das vezes, extremamente complexa. A sua extração é feita recorrendo a uma quantidade muito grande de da-dos cujo tamanho está para além das capacidades de processamento de bases de dada-dos tradicionais ou computadores [CLS+16]. Este conceito de elevada grandeza associada aos conjuntos de dados dos quais se visa extrair conhecimento que possa servir para gerar valor é denominado de Big Data.
"Now that we have gathered so much data, what do we do with it?"
Face à avultada quantidade de dados e à necessidade que existe de fazer a sua análise, pro-blemas acabam por ocorrer, pelo que um processo automatizado de extração de conhecimento é imprescindível [BL12]. Em muitos casos dentro das empresas, ferramentas baseadas em OLAP
Data mining e Outlier Detection
são usadas para facilitar a visualização de dados de múltiplas formas e, com isso, poder fazer uma análise mais dedutiva desses dados [RKBK06]. Mas um processo de data mining alarga a visão do suporte à decisão ao possibilitar a descoberta de padrões escondidos e a relação existente entre os dados, levando, assim, a uma análise mais indutiva.
Data mining pode ser entendido como o processo de exploração e análise de grandes quan-tidades de dados com um propósito de descobrir padrões e regras implícitos mas potencialmente importantes, que podem levar a aumentos nos lucros de uma empresa [BL12]. Este processo foi sendo desenvolvido e foi evoluindo ao longo dos anos, muito graças à contribuição de várias áreas dentro da matemática, computação e bases de dados. O conhecimento sobre data mining pode, então, ser visto como um resultado da evolução natural das tecnologias de informação [HPK11]. Dessas tecnologias, algumas tiveram um impacto significativo para o desenvolvimento do pro-cesso de data mining que, mais do que uma tecnologia, é uma integração e incorporação de várias outras tecnologias e técnicas de outros domínios. Entre elas, destacam-se:
• Estatística: data mining tem uma relação inerente com a área da estatística, que estuda o agrupamento, a análise, interpretação e apresentação de dados através da elaboração e im-plementação de modelos estatísticos. Estes modelos podem ser vistos como um conjunto de funções matemáticas que descrevem o comportamento e a distribuição probabilística de dados e que permitem tirar conclusões e tomar decisões [Dav03]. Existem dois ramos principais em estatística: estatística descritiva e estatística inferencial. Estatística descritiva consiste na aplicação de métodos unicamente destinados a organizar e sumariar informação, métodos esses que incluem a construção de gráficos e tabelas e o cálculo de várias medidas descritivas, como médias, percentagens, etc. Por outro lado, estatística inferencial permite, tal como o nome indica, inferir conclusões sobre um grande conjunto de dados tendo por base a análise e medição de dados de um conjunto mais pequeno [WH99]. Investigação nesta área tem vindo a integrar técnicas de análise estatística com técnicas de machine le-arning por forma a desenvolver técnicas ainda mais sofisticadas dentro do processo de data mining. Esta constante inovação é cada vez mais imprescindível para poder integrar os mo-delos na extração de conhecimento, uma vez que a quantidade de dados é cada vez maior e exige técnicas mais sofisticadas que permitam reduzir o custo computacional.
• Machine Learning: o termo machine learning refere-se à deteção automatizada de padrões significativos nos dados, por forma a fazer com que os computadores consigam aprender sem a necessidade de serem explicitamente programados. A investigação nesta área visa responder à pergunta "Como podemos desenvolver sistemas de computadores que melhoram automaticamente com a experiência, e quais são as leis fundamentais que governam os processos de aprendizagem?"[Mit06]. Devido ao amplo domínio que é machine learning, tendo em conta as tarefas de aprendizagem podemos encontrar 3 diferentes tipos, a saber:
– Supervised Learning: neste tipo de machine learning, a aprendizagem é feita com o uso de exemplos previamente classificados dentro do dataset de treino, com o objetivo de o computador conseguir, através da utilização de um modelo prever, com recurso a
Data mining e Outlier Detection
esse dataset de treino, o resultado pretendido. Este tipo de aprendizagem é usado, a título de exemplo, em sistemas de reconhecimento de imagem;
– Unsupervised Learning: neste tipo de aprendizagem, ao contrário do que acontece em supervised learning, os dados pertencentes ao dataset que é utilizado para formular o modelo não foram previamente classificados. Deste modo, o objetivo é encontrar a estrutura e distribuição subjacente aos dados, de forma a poder perceber que padrões se encontram escondidos. Unsupervised learning pode ser usado, por exemplo, em casos em que é preciso saber que tipo de clientes existem num supermercado, para poder direcionar melhor as técnicas de marketing;
– Semi-supervised Learning: este tipo de machine learning é uma combinação tanto de supervised learning como de unsupervised learning, em que é feito uso de uma grande quantidade de dados em que apenas uma pequena parte está já classificada. Os dados que ainda não foram classificados ajudam a refinar as fronteiras que existem entre as classificações já existentes dos dados classificados. Se, por exemplo, quisermos dividir um conjunto de imagens de animais em que apenas algumas estão classificadas e as restantes não, faz sentido usarmos uma abordagem deste género.
As semelhanças técnicas entre os conceitos de machine learning e data mining são muitas, mas a investigação feita em machine learning é maioritariamente focada na precisão dos modelos desenvolvidos, enquanto que data mining se foca, para além da precisão, na sua eficiência e escalabilidade [HPK11].
• Sistemas de base de dados: a pesquisa em sistemas de bases de dados foca-se na criação, manutenção e utilização de bases de dados, com uma enorme evolução tecnológica nos últimos anos em modelos de dados, linguagens de interrogação e métodos de processamento e otimização, bem como na sua escalabilidade no processamento de uma grande quantidade de dados. Grande parte dos métodos de data mining precisam de lidar com essa grande quantidade de dados, pelo que estes sistemas ajudam a facilitar essa tarefa.
• Information Retrieval: o termo information retrieval pode ser muito abrangente, mas en-quanto área de estudo pode ser definido como a ciência de encontrar material, normalmente documentos, que podem ser de vários tipos, como documentos de texto, imagem, vídeo, etc [SMR08], em que é assumido que não possuem nenhum tipo de estrutura. O crescimento cada vez maior de dados de texto e multimédia partilhados na Internet em bibliotecas digi-tais e plataformas de partilha online, por exemplo, tem vindo a aumentar a importância da integração de métodos de information retrieval no processo de data mining.
2.2
Knowledge Discovery in Databases
No final da década de 1980, este termo foi introduzido pela primeira vez por investigadores, apesar de ainda não existir grande consenso sobre que temas eram albergados por este processo
Data mining e Outlier Detection
Figura 2.1: Algumas das tecnologias adotadas pelo processo de data mining [HPK11]
[Coe11]. No início da década seguinte era já comummente reconhecido como um sub-processo de um processo mais abrangente denominado Knowledge Discovery in Databases (KDD), que era, segundo um dos seus principais investigadores, Usama M. Fayyad, um processo não-trivial de identificação de padrões válidos, novos, potencialmente úteis e compreensíveis nos dados. Sendo assim, data mining pode ser considerado como apenas uma parte imprescindível de entre nove passos para se poder extrair conhecimento [MR09]:
• Entender e definir os objetivos dentro do domínio do problema em que a extração do conhe-cimento vai ser feita;
• Selecionar e criar um conjunto de dados em que a extração vai ser realizada. Esta tarefa inclui perceber que tipos de dados estão disponíveis, obter dados adicionais, se necessário, e posteriormente integrar todos esses dados num conjunto;
• Pré-processamento e limpeza, em que a confiança dos dados é melhorada, retirando, para isso, os dados que sejam possíveis de descartar;
• Transformação dos dados. Nesta fase, a melhoria na escolha dos dados para o processo é feita, recorrendo a métodos como a redução do tamanho e a transformação de atributos; • Escolher o método de data mining apropriado, como, por exemplo, classificação, regressão
ou clustering (grande parte dos métodos existentes são baseados em aprendizagem indutiva, onde um modelo é criado por generalização de um certo número de exemplos). Esta escolha está dependente dos objetivos definidos para a extração do conhecimento;
• Escolher o algoritmo de data mining, que inclui selecionar um método específico para en-contrar os padrões;
Data mining e Outlier Detection
• Aplicar o algoritmo certo, que é a parte principal na implementação do processo de data mining;
• Avaliação e interpretação dos padrões obtidos, que terão de estar de acordo com os objetivos definidos no início;
• Fazer uso do conhecimento extraído, incorporando-o para poder tomar decisões e, assim, melhorar a oferta da empresa.
Figura 2.2: Visão dos passos do processo de extração de conhecimento [FPSS96]
2.3
Pré-processamento dos dados
Atualmente, as bases de dados fazem parte do dia a dia de grande parte das empresas e, devido ao seu crescente tamanho e ao tão diversificado conjunto de origens, são muito suscetíveis à falta de dados ou a dados incorretos e inconsistentes. Um conjunto de dados de má qualidade conduzirá a um fraco desempenho das técnicas de data mining posteriormente implementadas.
“How can the data be preprocessed in order to help improve the quality of the data and, consequently, of the mining results? How can the data be preprocessed so as to improve the efficiency and ease of the mining process?” [HPK11]
Existem muitos fatores que influenciam negativamente a qualidade dos dados, e por isso exis-tem essencialmente 4 diferentes tarefas de pré-processamento que podem ser feitas para que se chegue a um dataset no qual possam ser implementados os métodos de data mining necessários. São eles data cleaning, data integration, data reduction e data transformation.
Data mining e Outlier Detection
2.3.1 Data Cleaning
Esta tarefa de pré-processamento visa “limpar” os dados através do preenchimento de valores que estejam em falta, de nivelar valores muito díspares e de resolver inconsistências [HPK11]. Alguns métodos para poder resolver estes problemas envolvem:
• Ignorar o tuplo: este método não é muito eficaz a não ser que o tuplo não contenha valor em grande parte dos seus atributos;
• Preencher manualmente os valores em falta: em geral, este método pode não ser exequível se o dataset for muito grande;
• Média ou mediana: usar uma medida como a média ou a mediana do atributo para preencher os valores em falta;
• Binning: vários valores são divididos em bins (caixas) com aqueles que estão à sua volta, e depois as várias bins são niveladas de acordo com, por exemplo, o valor da mediana de cada bin.
2.3.2 Data Integration
Esta tarefa refere-se à agregação de dados de várias fontes, como diferentes schemas de bases de dados ou diferentes ficheiros, em um único conjunto que pode ajudar, feita de forma cuidadosa, a reduzir redundâncias e inconsistências nos dados e, assim, melhorar a precisão e velocidade dos métodos de data mining. A tarefa de data integration precisa de particular cuidado, uma vez que as diferentes fontes têm, normalmente, estruturas e nomes dos atributos diferentes.
2.3.3 Data Reduction
Devido às ordens de tamanho encontradas hoje em dia nas bases de dados das empresas, é imprescindível que haja algum tipo de redução do conjunto de dados a analisar. Com a aplicação de técnicas de data reduction é possível obter uma representação do dataset que é bastante menor no seu volume, mas que ainda assim mantém a integridade dos dados originais. Este fator contribui imenso para uma mais rápida e eficiente aplicação dos métodos de data mining.
2.3.4 Data Transformation
Nesta tarefa, os dados sofrem uma transformação para apresentarem valores apropriados para a implementação dos métodos de data mining, tornando assim este processo mais eficiente e os resultados encontrados mais fáceis de perceber. Algumas das estratégias incluem [HPK11]:
• Agregação: onde operações de agregação, como dados mensais ou anuais de um certo atri-buto, são aplicadas ao conjunto de dados;
Data mining e Outlier Detection
• Normalização: como forma de evitar a dependência nas unidades de medida utilizadas, os dados são normalizados, de forma a que os dados de todos as atributos estejam presentes no mesmo intervalo ([-1,1] ou [0,1], por exemplo), tentando atribuir-lhes o mesmo peso. Esta estratégia é útil em situações em que os intervalos dos vários atributos são bastante diferentes entre si;
• Discretização: onde os valores numéricos de um dado atributo são substituídos por interva-los de valores ou por classificações conceptuais.
2.4
Métodos de data mining
O aumento na utilização de sistemas de informação por todos os setores empresariais levou a um aumento na heterogeneidade no tipo de dados existentes e, por isso, à necessidade de uma forma de os analisar e poder extrair conhecimento também diferente na sua composição [CSM14]. De um modo geral, existem dois objetivos distintos na aplicação dos métodos de data mining, nomeadamente:
• Descrição: métodos descritivos focam-se em encontrar padrões que possam descrever os dados e na sua subsequente apresentação, visando responder à pergunta "O que aconteceu?" • Predição: métodos preditivos fazem uso de variáveis já existentes por forma a poder prever
valores futuros, visando responder à pergunta "O que pode acontecer?"
Os métodos de data mining utilizados para extrair conhecimento podem ser divididos de acordo com o tipo de padrões que podem descobrir. Dentro do tipo de aprendizagem unsupervised learning são eles análise associativa, clustering e outlier detection, e dentro do tipo de aprendiza-gem supervised learning são eles classificação e regressão:
• Análise associativa: Esta técnica de data mining representa a descoberta de regras de asso-ciação que mostram condições que, por vezes, ocorrem em simultâneo dentro de um certo conjunto de dados [HPK11]. Este tipo de técnicas são muito comummente utilizadas quando empresas pretendem efetuar análise de certos produtos, para poder obter resposta a pergun-tas do tipo "Os consumidores que adquirem um computador têm uma probabilidade de 50% de também comprar software?". Esta regra pode ser sintetizada na Equação 2.1, em que X é uma variável representando um cliente.
buys(X , ”computer”) ⇒ buys(X , ”so f tware”)[support = 1%, con f idence = 50%] (2.1) O valor support de 1% significa que, dentro da análise efetuada, em 1% de todas as com-pras feitas, os itens computador e software foram comprados em conjunto. Dois tipos de algoritmos utilizados nesta técnica são a priori e árvore de padrões frequentes (FP-Tree) [F.B08].
Data mining e Outlier Detection
• Clustering: Clustering, de uma forma geral, é uma divisão de dados em grupos, ou clusters, de dados considerados similares, e diferentes dos dados de outros grupos. Por vezes pode dar-se o caso de um certo dado pertencer a mais do que um grupo, ocorrência a que se dá o nome de soft clustering, ao passo que quando todos os dados pertencem a apenas um grupo dá-se o nome de hard clustering.
Figura 2.3: Representação da aplicação de clustering num conjunto de dados [Ber06] Nesta técnica, alguns dos dados são descartados para poder simplificar o processo de extra-ção de conhecimento. Algoritmos normalmente implementados nesta técnica são o k-means clustering, clustering hierárquico e balanced iterative reducing and clustering using hierar-chies (BIRCH). Qualquer que seja o algoritmo implementado, todos têm um conjunto de propriedades que os distinguem [Ber06], nomeadamente:
– Escalabilidade para grandes conjuntos de dados; – Capacidade de processar dados com muitas dimensões; – Capacidade de encontrar grupos com formatos irregulares; – Descartar dados considerados não relevantes;
– Dependência em conhecimento prévio e parâmetros definidos pelo utilizador.
• Classificação: Classificação é o processo de prever um certo output baseado num dado input [VV07]. Para que esse output seja obtido, esta técnica faz, primeiramente, um pro-cessamento dos dados existentes num conjunto de treino, para perceber que tipo de relações poderá existir entre input e output nesse conjunto. Depois deste processamento, é fornecido ao algoritmo implementado um conjunto de dados que ainda não tenha sido analisado, cha-mado de conjunto de previsão, mas que não possua nenhum output. O algoritmo então faz o processamento desse novo conjunto de dados e tenta atribuir valores ao output.
• Regressão: Este método de data mining é usado para prever, por exemplo, números, vendas, lucros, áreas, temperatura e taxas de hipoteca [GG15]. Começa com um conjunto de da-dos já conhecido e vai “treinando” para poder estimar os valores seguintes, por comparação
Data mining e Outlier Detection
com os valores iniciais. Exemplos deste método incluem redes neuronais (que representam modelos de input-output capazes de aprender através de tentativa e erro) e máquinas de ve-tores de suporte (que usam um conjunto de métodos que criam funções de output a partir de dados iniciais, que podem ser usados para classificação, regressão e classificar problemas) [F.B08].
2.5
Outlier Detection
Outro tipo de análise que é possível fazer para se extrair conhecimento, além dos métodos já abordados, é a deteção de outliers. Outliers, também chamados de anomalias, novelties, noise, entre outros, dependendo do autor e do contexto em que são apresentados, são, de um modo geral, pontos num conjunto de dados que são significativamente diferentes do resto dos dados [Agg13]. Segundo Douglas Hawkins, este conceito é descrito da seguinte forma:
“An outlier is an observation which deviates so much from the other observations as to arouse suspicions that it was generated by a different mechanism.” [Haw80]
Uma vez que se assume que os outliers não são gerados pelos mesmos mecanismos que os restantes dados, a sua deteção e análise é uma tarefa crítica em muitas situações importantes, como, por exemplo, deteção de fraudes, diagnósticos médicos ou acessos não autorizados a redes de sistemas críticos de segurança.
Figura 2.4: Exemplo de outliers num gráfico bidimensional [CBK09]
De uma forma geral, é possível dividir os outliers em três categorias diferentes [HPK11]: • Outliers globais: a maioria dos métodos de deteção utilizados visam encontrar outliers que
pertençam a esta categoria, que representa outliers que estão significativamente afastados do resto dos pontos num determinado dataset. A tarefa principal para detetar este tipo de outliers é encontrar a melhor medição para o desvio relativamente aos restantes pontos.
Data mining e Outlier Detection
Por exemplo, os clientes de um banco efetuam, normalmente, transferências de montantes apenas até 1000 C, mas existe um cliente cujas transferências nunca são menores do que 5000 C. Fazendo uma análise do valor médio dos montantes transferidos por cliente, então o conjunto de transferências deste cliente pode ser tomado como anómalo e ser considerado um outlier.
• Outliers contextuais: se um certo ponto num dataset for bastante diferente do resto num contexto específico, mas não em outros contextos, é considerado um outlier contextual, ou condicional [CBK09]. Um exemplo que permite perceber bem a necessidade de se ter em conta o contexto na deteção de outliers é na análise de temperaturas em diferentes alturas. Uma temperatura de 30ºC não é considerado um outlier quando verificada no Porto durante o verão, mas será certamente se for registada durante o mês de janeiro. Dentro desta categoria, os atributos de cada um dos pontos são, geralmente, divididos em dois grupos:
– Atributos contextuais: estes atributos são usados para poder enquadrar o contexto dos pontos no dataset. No exemplo acima, dentro deste conjunto de atributos pode estar a data e a localização.
– Atributos comportamentais: estes atributos definem melhor as características de cada um dos pontos, e são usados para avaliar que pontos são considerados outliers no contexto a que pertencem. No exemplo apresentado, estes podem ser, a par da tempe-ratura, a humidade.
• Outliers coletivos: se um pequeno sub-conjunto de dados dentro do dataset estiver signifi-cativamente afastado do resto dos dados, então esse sub-conjunto é considerado um outlier coletivo, embora os pontos pertencentes a esse sub-conjunto possam não o ser individual-mente [CBK09].
As razões da existência de outliers podem ser bastante variadas, mas na sua maioria são cau-sadas por erros, sejam eles humanos ou dos sistemas computacionais responsáveis pelo seu arma-zenamento e manipulação, ou desvios naturais, e a sua deteção é sempre um desafio enorme, em particular devido a dois fatores. Primeiramente, a fronteira que existe entre os outliers dos dados normais é muito imprecisa, tornando difícil a distinção entre estas duas categorias. Grande parte dos datasets reais, de empresas, são bastante pobres e possuem erros nos valores dos atributos em análise, afetando imensamente a precisão dos métodos utilizados para a deteção. O segundo fator prende-se com o facto de, frequentemente, se pretender detetar não só os outliers mas também compreender a razão pela qual esses outliers foram avaliados como tal [HPK11].
Após a aplicação dos métodos mais adequados, os outliers encontrados podem ser classifica-dos segundo uma de duas métricas [CBK09]:
• Pontuações: a maioria dos métodos existentes atribuem uma pontuação de anomalia a todos os dados num dataset, de acordo com o grau em que estes são divergentes do que é con-siderado normal. Assim, o output destes métodos é uma lista com todas as pontuações de
Data mining e Outlier Detection
anomalia de cada uma das instâncias do dataset, não dizendo de forma precisa aquelas que podem ser consideradas como outliers;
• Rotulação: métodos deste tipo atribuem um rótulo a cada instância do dataset, classificando-as como normais ou outliers. Os métodos que atribuem pontuações podem também clclassificando-assi- classi-ficar posteriormente os dados impondo-lhes valores limite, de modo a facilitar a tomada de decisões.
Devido à extensa quantidade de casos em que é interessante fazer uma deteção de outliers, existem muitos métodos diferentes que podem ser implementados de acordo com a análise que se pretende fazer.
2.5.1 Métodos estatísticos
Métodos estatísticos para a deteção de outliers foram os primeiros a serem implementados para resolver este problema [ZMH10]. Eles assumem que os dados tendem a seguir um modelo estatístico, conhecido ou não a priori, e determinam, para cada uma das instâncias em análise, a probabilidade de ter sido gerado pelo modelo em questão. Aqueles que ocorrerem em regiões de grande probabilidade do modelo seguido são considerados dados normais, enquanto que aqueles que ocorrerem em regiões de baixa probabilidade do modelo são considerados outliers. Depen-dendo se o modelo é previamente conhecido ou não, os métodos estatísticos de deteção de outliers podem ser divididos em paramétricos ou não-paramétricos.
2.5.1.1 Métodos Paramétricos
Em métodos paramétricos existe conhecimento prévio sobre a distribuição dos dados, e por isso assume-se que os dados normalmente tendem a seguir uma distribuição paramétrica com um parâmetro Θ e com uma função densidade de probabilidade do tipo f (x, Θ), em que x representa uma instância do dataset, em que a função devolve o valor da probabilidade de cada um dos dados em análise.
• Grubbs’ Test: uma técnica usada para detetar outliers em datasets univariados é chamada de Grubbs’ Test. Para cada valor x de um atributo de uma instância do dataset, e assumindo que os valores em análise seguem uma distribuição de Gauss, é calculada uma pontuação z da seguinte forma:
z= |x − ¯x|
s , (2.2)
em que ¯x representa a média dos valores de todas as instâncias e s o desvio padrão total, dado pela Fórmula 2.3:
s= s
∑Ni=1(xi− ¯x)2
N− 1 , (2.3) 15
Data mining e Outlier Detection
na qual N indica o número total de dados em análise. Depois de calculada a pontuação z para todos os dados, o critério de distinção entre normalidade e anormalidade é dado por:
z≥N√− 1 N v u u t tα /(2N),N−22 N− 2 + t2 α /(2N),N−2 , (2.4)
sendo que uma instância é considerada como outlier se se verificar esta condição. O valor de tα /(2N),N−2é obtido a partir da distribuição t de Student com N − 2 graus de liberdade e
um nível de significância de α 2N.
2.5.1.2 Métodos Não-Paramétricos
Em métodos não-paramétricos não se assume a priori nenhum modelo estatístico para os da-dos. A estrutura desse modelo é determinada a partir dos dada-dos. A utilização de histogramas é uma forma simples para detetar outliers em casos em que não há conhecimento do modelo seguido pelos dados. Ao criar o histograma é necessário ter em atenção o número de barras e o tamanho de cada uma, para que a deteção de outliers seja mais precisa. Após a construção do histograma, os valores que não estiverem incluídos em nenhuma das barras podem ser considerados outliers, ou pode ser atribuída uma pontuação de anomalia a cada instância do conjunto de dados em análise de acordo com a dimensão da barra em que está incluída. Outro método para a deteção de outliers é através da utilização de boxplots:
• Boxplot: uma técnica estatística simples para detetar outliers univariados ou multivariados é com o recurso a um diagrama de caixa, ou boxplot [CBK09]. Um boxplot representa graficamente os valores extremos máximo e mínimo, o quartil superior, o quartil inferior e a mediana.
Figura 2.5: Utilização de um boxplot na deteção de outliers [HPK11]
Entre a mediana e cada um dos valores dos quartis inferior (Q1) e superior (Q3) localizam-se
25% dos dados, fazendo, assim, como que a amplitude interquartil (IQR), ou seja, a distância 16
Data mining e Outlier Detection
entre estes dois quartis (Q3− Q1), represente 50% dos registos. Um boxplot também indica
os valores a partir dos quais todas as observações são consideradas outliers. Esses valores são obtidos a partir do resultado do produto entre um coeficiente coe f , que normalmente toma o valor de 1.5, e o valor de IQR. Qualquer valor que seja inferior a Q1− coe f × IQR
ou superior a Q3+ coe f × IQR é considerado um outlier. O boxplot apresentado na Figura
2.5 permite detetar facilmente os outliers.
A implementação de métodos estatísticos na deteção de outliers apresenta algumas vantagens, tais como [Pet03]:
• São matematicamente justificáveis na medida em que se um modelo se verificar, tendem a detetar eficazmente outliers.
• Sendo dado um modelo probabilístico, estes métodos são bastante eficientes e podem mos-trar o significado dos outliers encontrados.
• Após a construção do modelo, os dados em que o modelo se baseou já não são necessários, não sendo preciso reter informação acessória.
Apesar das vantagens, existem também algumas desvantagens inerentes a estes métodos [CBK09]: • A principal desvantagem dos métodos estatísticos reside no facto de que os dados seguem
uma determinada distribuição, o que pode nem sempre ser verdade.
• Mesmo em casos em que se justifique a existência de uma distribuição, escolher a técnica de deteção mais apropriada para cada situação nem sempre é uma tarefa simples.
• Técnicas baseadas na construção de histogramas, apesar de relativamente simples, não são capazes de fazer compreender as interações entre diferentes atributos, no caso da análise estar a ser feita sobre um dataset multivariado.
2.5.2 Métodos baseados em proximidade
A ideia por detrás de métodos baseados em proximidade é a de encontrar pontos que se en-contrem isolados do resto dos dados tendo em conta funções de distância de cada ponto [Agg13]. Assume-se que a proximidade de um outlier relativamente aos seus vizinhos é significativamente diferente da proximidade da maioria dos pontos no dataset relativamente aos seus vizinhos. Al-guns dos métodos mais utilizados incluem:
• Método DB(r, p): para um dado conjunto de dados D a analisar é necessário definir uma distância r ≥ 0 que seja um valor razoável para representar a vizinhança dos dados. Para cada objeto o ∈ D examina-se o número de pontos que lhe são vizinhos, ou seja, aqueles cuja distância até o é inferior a r. Assim, o é considerado outlier se
k{o0|dist(o, o0) ≤ r}k
kDk ≤ p, (2.5) 17
Data mining e Outlier Detection
onde o0 é qualquer ponto de D à exceção de o, dist(o, o0) é a métrica de distância usada, como, por exemplo a distância euclidiana, e p um valor entre 0 e 1 definido a priori [HPK11]. Ou seja, os outliers são aqueles em que pelo menos uma fração p dos dados esteja a uma distância superior a r.
• Distância kNN: um método bastante comum dentro da comunidade de data mining e ma-chine learning é fazer a análise dos k vizinhos mais próximos (k Nearest Neighbors), colma-tando a necessidade, no método DB(r, p), de se definir a priori os valores de r e p [Pet03]. Computando para cada ponto o do dataset a sua distância-k, que representa a distância entre oe o seu k vizinho (ok), é possível obter a pontuação de anomalia de cada instância.
Defi-nindo um valor que delimite uma fronteira entre os dados considerados normais e anormais, obtém-se um conjunto de dados considerados outliers, aqueles que obtiveram as maiores pontuações.
• Local Outlier Factor (LOF): ao contrário daquilo que se verifica na deteção de outliers usando a distância kNN, o método LOF tem em conta variações na densidade do data-set, computando, por isso, a densidade de cada instância em análise tendo em consideração a densidade dos seus vizinhos [CBK09]. Na Figura 2.6 é possível perceber a importância deste método, uma vez que apenas com a utilização de distância kNN não seria possível considerar o ponto p2 como outlier sem considerar também todos os pontos do cluster C1
como tal.
Figura 2.6: Clusters com densidades diferentes [CBK09]
Para cada ponto sob avaliação, este método começa por calcular uma distância de alcance reachdistk(o0← o), obtida através da Fórmula 2.6:
reachdistk(o0← o) = max{distk(o0), dist(o0, o)}, (2.6)
em que distk(o0) é a distância-k de um dos pontos na vizinhança de o e dist(o0, o) a distância
entre o0e o [HPK11]. De seguida é calculada a densidade local de alcance (local reachability 18
Data mining e Outlier Detection
density) de o, que é o valor inverso da média da distância de alcance de o até todos os pontos na sua vizinhança: lrdk(o) = kNk(o)k ∑o0∈N k(o)reachdistk(o 0← o) (2.7)
Nk(o) representa aqui o conjunto dos pontos da vizinhança de o. Por fim, a pontuação LOF
atribuída a o será a média da razão entre lrdk(o0) e lrdk(o) de todos os valores pertencentes
a Nk(o): LOFk(o) = ∑o0∈N k(o) lrdk(o0) lrdk(o) kNk(o)k (2.8) Quanto maior for o valor de LOFk(o), maior a certeza com que o pode ser considerado um
outlier, uma vez que a densidade local deste é bastante inferior à dos seus k vizinhos. As duas maiores vantagens da utilização de métodos baseados em proximidade residem no facto de não ser necessária a utilização de qualquer modelo probabilístico, quer baseado nos da-dos ou conhecido a priori, e na capacidade de serem detetada-dos outliers locais [Pet03]. Contudo, existem algumas desvantagens, das quais fazem parte:
• Estes algoritmos dependem da introdução de alguns parâmetros, como k ou a distância r, fazendo com que, se estes valores forem diferentes, o conjunto de outliers detetados seja diferente.
• Uma vez que é necessário computar as distâncias de todas as instâncias do dataset, a com-plexidade temporal da maioria destes algoritmos é quadrática (O(n2)), limitando a perfor-mance da sua aplicação.
2.5.3 Métodos baseados em clustering
A existência de outliers está intrinsecamente relacionada com o conceito de clusters. Neste tipo de abordagem à deteção de outliers, os dados são agrupados em clusters e, dependendo da situação, a deteção dos outliers existentes depois do processo de clustering pode seguir 3 categorias diferentes [CBK09]:
• Os dados normais pertencem todos a um dos clusters existentes, enquanto que os outliers não pertencem a nenhum. Para fazer esta análise é necessário aplicar um algoritmo de clustering sobre o dataset e declarar que as instâncias desse dataset que não pertencem a nenhum dos clusters são outliers. Contudo, nem todos os algoritmos de clustering levam em conta a existência de outliers, e por isso obrigam a que todas as instâncias encontradas pertençam a um dos clusters, mesmo quando são claramente outliers. Por isso é necessário escolher um método que faça essa distinção, como é o caso dos métodos de clustering baseados em densidades, tal como DBSCAN;
Data mining e Outlier Detection
• Os dados normais encontram-se relativamente perto do centroide mais próximo, enquanto que os outliers encontram-se longe do centroide mais próximo. Este tipo de abordagem ocorre em dois passos. Primeiramente os dados são agrupados com o recurso a um algoritmo de clustering. Seguidamente é calculada uma pontuação para cada instância que será igual à distância de cada uma ao centroide mais próximo. Um dos algoritmos mais conhecidos e utilizados para este fim é o k-means.
– Algoritmo k-means: Neste algoritmo iterativo, dado um conjunto de dados e um valor k, é capaz de dividir os dados em k clusters tal que cada ponto pertence a exatamente um cluster [VS10]. Inicialmente define-se a posição de k centroides, um para cada cluster, tentando colocá-los o mais afastados entre si quanto possível. De seguida associa-se cada ponto ao centroide mais próximo, formando assim k clusters e recom-putando depois as posições dos centroides para que estejam no centro do cluster que definem. Com estas novas posições dos centroides, é necessário regressar ao passo de associar cada ponto ao cluster mais próximo. Este processo repete-se até que na última iteração não tenha havido alteração nenhuma relativamente à iteração anterior. Depois de agrupados os dados em clusters, aqueles que estiverem mais afastados dos seus respetivos clusters são considerados outliers. Devido à complexidade temporal desta abor-dagem, algumas soluções foram apresentadas para melhorar a eficiência, como a utilização da métrica LDOF (Local Distance-based Outlier Factor) juntamente com o afastamento dos pontos mais próximos do centroide antes do cálculo das pontuações de anomalia [PDN11]; • Os dados normais pertencem a clusters densos de grande dimensão, enquanto que os outliers pertencem a clusters pequenos ou esparsos. Abordagens feitas a este problema com recurso a métodos de clustering baseados em densidades ou à distância de cada instância de um dataset ao centroide do seu cluster não conseguiriam detetar corretamente outliers. O mé-todo CBLOF (Cluster-based Local Outlier Factor) leva em conta, para além da distância de cada ponto ao seu controide, o tamanho de cada cluster, com vista a resolver este problema [CBK09].
O facto de os métodos baseados em clustering poderem ser implementados em ambientes não supervisionados e de cada ponto apenas precisar de ser comparado com outros pontos do mesmo cluster, aumentando a performance, são claras vantagens destes métodos. Apesar disso, existem algumas desvantagens, sendo a principal o facto de a performance destes métodos estar bastante dependente da eficiência dos métodos de clustering escolhidos, que grande parte das vezes não estão otimizados para a deteção de outliers.
2.5.4 Métodos baseados em classificação
Métodos de deteção de outliers baseados em classificação criam um modelo de classificação a partir de um conjunto de dados de treino já existente e em que os dados estão já classificados
Data mining e Outlier Detection
[ZMH10]. Posteriormente, classificam cada nova instância como normal ou como outlier. Estes métodos podem ser divididos em duas categorias, dependendo do número de classes normais que apresentam [US12]:
• Multi-class: esta categoria assume que os dados de treino contêm dados que pertencem a várias classes consideradas normais, e não apenas uma. Se uma nova instância de teste não for considerada como normal, ou seja, o modelo de classificação considerou que não poderia pertencer a nenhuma das classes, então esta é classificada como sendo um outlier. Algumas das técnicas multi-class utilizadas atribuem um valor de confiança à previsão feita. Se esse valor for baixo, então o modelo não tem confiança suficiente nessa instância para a classificar numa das classes, sendo então considerada como um outlier.
Figura 2.7: Método baseado em classificação multi-class [US12]
• One-class: nesta categoria é assumido que todos os dados de treino pertencem a apenas uma classe. Depois de se descobrir a fronteira que delimita essa classe, com a utilização de um algoritmo de classificação, todas as novas instâncias que não estejam dentro dessa classe são classificadas como outliers.
Data mining e Outlier Detection
Capítulo 3
Problema, solução e tecnologias
utilizadas
Neste capítulo irá ser descrito com mais detalhe do que no capítulo introdutório o problema em mãos e uma perspetiva de solução para tentar resolver esse mesmo problema. Para finalizar, são explicadas as tecnologias que foram utilizadas na solução apresentada e a razão pela qual foram escolhidas.
3.1
Problema
Um dos pontos em que a gestão da frota pode ter grande impacto no seio da empresa é no tipo de condução praticada pelos condutores dos veículos dessa frota. Por necessitarem de combustível para a sua operação, a circulação destes veículos representa uma grande despesa para a empresa. Assim, a recolha de informação sobre consumos de combustível dos veículos cujo consumo, com-parativamente com os outros veículos existentes na base de dados da Gisgeo, seja demasiado grande poderá permitir que as empresas às quais esses veículos pertencem consigam diminuir os seus gastos, nomeadamente em termos energéticos, ou seja, nos custos inerentes ao consumo de combustível. Para empresas com grandes frotas de veículos, esta informação poderá ser uma ajuda muito significativa na redução dos prejuízos financeiros e num aumento do desempenho interno.
A Gisgeo possui um conjunto de dados na sua bases de dados, tais como dados relativos à localização dos veículos, dados sobre distâncias percorridas e consumos totais dos veículos, etc. Esses dados precisam ser processados e analisados para que se lhes possa extrair conhecimento que possibilite aos gestores das empresas clientes da Gisgeo saber que tipo de condução foi praticada em cada veículo. Tendo esse conhecimento, é possível tomar decisões mais fundamentadas sobre o que fazer para mitigar ao máximo os gastos com combustível, tendo em conta o local onde essa condução está a ser efetuada.
Problema, solução e tecnologias utilizadas
Um aspeto fundamental na abordagem a este problema foi, desde o início da elaboração desta dissertação, e frisado veementemente pela Gisgeo ao longo da mesma, a importância do cuidado na manipulação de informação que poderia ser considerada sensível e de caráter confidencial. A empresa trabalha com dados de clientes, que por sua vez são também entidades empresariais que possuem frotas de veículos. Por este motivo, a Gisgeo tem acesso a informação como nomes dos clientes, dados pessoais de funcionários, localizações GPS dos veículos, entre outros. Por este motivo, a responsabilidade e compromisso perante a empresa aumentou, e em especial desde a entrada em vigor do novo Regulamento Geral de Proteção de Dados (RGPD).
3.2
Solução
Para poder, então, apoiar os gestores das empresas na sua tomada de decisão, foi implementada uma abordagem de data mining com um método de outlier detection, em que os outliers detetados são os veículos em que se verificou um consumo excessivo de combustível. Contudo, antes que fosse possível detetar esses veículos, tornou-se indispensável investir grande parte do tempo no estudo da base de dados interna da Gisgeo e no pré-processamento dos dados que me foram dispo-nibilizados, para que estes pudessem ser utilizados e os resultados obtidos fossem mais confiáveis. Devido a esta necessidade, acabaram por ser removidos muitos dos registos feitos, tanto porque os valores apresentavam erros como por não apresentarem valor. Assim que o conjunto dos dados foi pré-processado, foi possível efetuar a deteção dos outliers.
Estes outliers, ou veículos com consumos de combustível excessivos, foram detetados atra-vés da utilização da ferramenta boxplot. Esta ferramenta permite encontrar outliers globais nos extremos máximo e mínimo do dataset. Foi criado um atributo k pl que atribui a cada veículo um valor que representa o consumo desse veículo em quilómetros por litro. Quanto menor for esse valor, menos eficiente foi o tipo de condução praticada nesse veículo. Assim, dos outliers detetados pelo boxplot, apenas aqueles cujo valor é inferior a Q1− 1.5 × IQR, ou seja, abaixo do
extremo mínimo, foram considerados como sendo consumos excessivos. A utilização de boxplots para a deteção de outliers, apesar de representar uma análise simples, permite que possa ser feita a visualização dos outliers, numa primeira fase, e a extração dos valores desses pontos, numa se-gunda. Outro método descrito apresentado no estado da arte para encontrar outliers globais nos extremos dos datasets, Grubbs’ test, não poderia ter sido utilizado neste caso em concreto, uma vez que assume a existência de apenas um outlier no conjunto total dos dados. Uma generalização deste método, denominada Generalized ESD Test, não assume a existência de um número fixo de outliers a priori, mas provou-se demasiado inclusiva e não apresentou qualquer resultado para este problema.
3.3
Tecnologias
A empresa na qual esta dissertação foi desenvolvida trabalha maioritariamente com tecnolo-gias open source, pelo que foi, desde início, incentivada a utilização de ferramentas deste tipo na
Problema, solução e tecnologias utilizadas
elaboração do trabalho. Nesta secção é apresentada uma revisão de todas as tecnologias de relevo que foram usadas.
3.3.1 PostgreSQL
PostgreSQL é o sistema de gestão de bases de dados (SGBD) utilizado a nível interno pela empresa. Todos os dados em bruto que foram utilizados na dissertação estão guardados numa base de dados PostgreSQL, pelo simples facto de este ser um SGBD open source.
3.3.2 DBeaver
Para poder aceder à base de dados PostgreSQL da empresa, e de facto visualizar e manipular os dados aí presentes, foi utilizada uma ferramenta, também ela open source, chamada DBeaver. Para poder fazer o acesso necessário a uma base de dados PostgreSQL existe uma ferramenta chamada pgAdmin, utilizada exclusivamente para efetuar a administração e o desenvolvimento sobre bases de dados desse tipo. No entanto foi-me sugerida, a nível da empresa, a utilização da ferramenta DBeaver.
3.3.3 R
R1 é uma das linguagens de programação, senão a maior e mais influente em todo o mundo, para computação e gráficos estatísticos. É uma linguagem que facilita a manipulação de dados, cálculo e a visualização de gráficos, incluindo, para esse efeito:
• Manipulação de dados e de armazenamento eficiente; • Conjunto de operadores para cálculos sobre arrays;
• Uma coleção grande, coerente e integrada de ferramentas intermédias para análise de dados; • Facilidade na visualização gráfica de análises de dados.
Um dos pontos fortes de R, especialmente quando comparado com outras linguagens de pro-gramação utilizadas para os mesmos fins, como é o caso de Python, Julia ou SAS, é o facto de possuir uma grande quantidade de packages para além das oito que estão originalmente integra-das na distribuição de R utilizada. Estas packages extra são desenvolviintegra-das em grande parte pela comunidade e são, em muitos casos, imprescindíveis para uma implementação mais fácil e rápida dos métodos pretendidos. A rede principal de packages em R é a CRAN (Comprehensive R Ar-chive Network), que é administrada pela R Foundation. Uma das principais packages utilizadas denomina-se RPostgreSQL, que permite a existência de uma interface com a finalidade de esta-belecer uma conexão com a base de dados PostgreSQL e, desta forma, aceder à informação aí existente.
Uma vez que existe uma preferência clara por parte da empresa pelo uso de tecnologias open source, R é a melhor opção para levar a cabo a análise necessária.
1https://www.r-project.org/
Problema, solução e tecnologias utilizadas 3.3.3.1 RStudio
Ao instalar o R, é possível criar scripts a partir da linha de comandos. Contudo, existe um IDE específico para o desenvolvimento de software em R, chamado RStudio. Uma vez que R é uma linguagem usada para análise estatística, exige muitas vezes a visualização de uma grande quantidade de gráficos. Assim, o RStudio, para além de facilitar o processo de desenvolvimento, facilita também a componente de visualização dos gráficos gerados.
Capítulo 4
Construção do dataset e deteção de
consumos excessivos
Neste capítulo é explicado, de forma detalhada, todo o trabalho realizado que culminou na extração de conhecimento útil para resolver o problema em questão. Primeiramente será explicada a estrutura da base de dados disponibilizada pela empresa, para que fosse possível criar o dataset onde foi aplicado o método descrito. Em seguida, será dada uma explicação sobre como foi construido esse mesmo dataset, bem como as etapas de pré-processamento usadas para reduzir a quantidade de dados e maximizar o mais possível a confiança nos dados existentes. Por fim, é aplicada a estratégia para a deteção de veículos com um consumo excessivo, em dois tipos de vias distintas, e os resultados obtidos após essa aplicação.
4.1
Base de dados utilizada
A empresa onde foi desenvolvida a presente dissertação possui uma base de dados com toda a informação que foi utilizada para poder construir o dataset, cuja construção será abordada em pormenor na secção seguinte. Contudo, até que fosse obtido um dataset com apenas a informação necessária e de forma organizada, a base de dados disponibilizada teve de ser devidamente explo-rada e as tabelas com dados sem nenhuma relevância ou com dados insuficientes afastadas, como as que têm informação, por exemplo, sobre as diferentes marcas dos veículos analisados ou sobre as empresas e condutores das mesmas.
Atualmente, a Gisgeo encontra-se num processo de reestruturação dessa mesma base de da-dos, motivo pela qual foi utilizada uma versão própria para ambiente de estágio empresarial, com informação recolhida durante um período de, aproximadamente, 6 anos e 6 meses, entre abril de 2012 e outubro de 2018, pelo que não recebe informação nova e os dados previamente recolhi-dos permanecem inalterarecolhi-dos. Sendo assim, os darecolhi-dos presentes no dataset também nunca foram alterados.
Construção do dataset e deteção de consumos excessivos
4.1.1 Estrutura da base de dados
Embora não tenha sido permitido o acesso integral à base de dados, a parte que foi disponibi-lizada tem um volume de dados armazenado suficientemente grande para o problema em questão cair na categoria de Big Data, bem como pelo facto de ser posteriormente implementado um método de deteção de outliers, como foi já revisto. O número de tabelas existente é de várias dezenas, e o tamanho total da base de dados ultrapassa os 482GB. Apesar do grande número de tabelas existente, a informação não se encontra dividida de igual forma, sendo que grande parte delas possui uma quantidade de dados irrisória quando comparada com as duas principais tabelas (tabela1 e tabela2)1que em conjunto representam, aproximadamente, 94,62% do volume total da base de dados. A importância destas duas tabelas é enorme, uma vez que foram as únicas que foram utilizadas para a criação do dataset, pois possuem todos os dados necessários. Elas arma-zenam informação recolhida dos veículos com uma periodicidade predefinida, geralmente a cada 30 segundos ou 1 minuto. Essa informação difere entre estas duas tabelas, mas ambas registam informação recolhida de um dado veículo a uma dada hora, apenas quando o veículo está ligado, assumindo que não ocorreu nenhum erro do equipamento.
4.1.1.1 Tabela tabela1
A tabela tabela1, assim como a tabela tabela2, possui informação imprescindível para que o dataset necessário possa ser construído. É, de longe, a tabela que corresponde à maior parte do volume da base de dados, contabilizando cerca de 89,09% desta, o que representa, em valores absolutos, pouco mais que 430GB. Este valor avultado deve-se não ao tamanho dos dados guar-dados, mas antes à quantidade existente desses mesmos guar-dados, o que é inteiramente justificável dado o intervalo de tempo de recolha de dados e a periodicidade com que são registados na base de dados. Estão armazenados nesta tabela 2798496864 registos, mas apenas 8779 veículos distin-tos, perfazendo uma média de, sensivelmente, 318771 registos por veículo. Esta tabela possui 8 atributos diferentes que representam:
• O id de um veículo, que representa uma chave externa que aponta para a chave primária de uma tabela sobre as viaturas;
• A data e a hora, com precisão ao segundo, em que se deu o registo da informação instantânea de um dado veículo;
• A latitude registada de um veículo num dado momento, em graus decimais; • A longitude registada de um veículo num dado momento, em graus decimais;
• A velocidade instantânea registada de um veículo num dado momento, em valores inteiros; • O estado da ignição, que toma somente dois valores que indicam se o veículo está ligado ou
desligado;
1Por questões de confidencialidade, os nomes reais das tabelas e dos seus atributos foram substituídos ou omitidos