TCC - Guilherme Toldo Stulp

Propaganda
UNIJUI – UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO
GRANDE DO SUL
DEPARTAMENTO DE CIÊNCIAS EXATAS E ENGENHARIAS
CURSO DE CIÊNCIA DA COMPUTAÇÃO
GUILHERME TOLDO STULP
APLICAÇÃO E AVALIAÇÃO DE ALGORITMOS DE MINERAÇÃO DE
DADOS PARA LOCALIZAR PADRÕES EM BANCOS DE DADOS
IJUÍ – RS
2014
2
GUILHERME TOLDO STULP
APLICAÇÃO E AVALIAÇÃO DE ALGORITMOS DE MINERAÇÃO DE
DADOS PARA LOCALIZAR PADRÕES EM BANCOS DE DADOS
Monografia submetida à Universidade
Regional do Noroeste do Estado do Rio
Grande do Sul, como requisito parcial para
a obtenção do certificado de Bacharel em
Ciência da Computação, pertencente ao
Departamento de Ciências Exatas e
Engenharias.
Orientador: Manuel Osório Binelo, Dsc.
IJUÍ – RS
2014
3
APLICAÇÃO E AVALIAÇÃO DE ALGORITMOS DE MINERAÇÃO DE
DADOS PARA LOCALIZAR PADRÕES EM BANCOS DE DADOS
GUILHERME TOLDO STULP
Monografia submetida à Universidade
Regional do Noroeste do Estado do Rio
Grande do Sul, como requisito parcial para
a obtenção do certificado de Bacharel em
Ciência da Computação, pertencente ao
Departamento de Ciências Exatas e
Engenharias.
_____________________________________
Orientador: Manuel Osório Binelo, Dsc.
BANCA EXAMINADORA
_____________________________________
Prof. Me. Rogério Samuel de Moura Martins
IJUÍ – RS
2014
4
Dedicatória
Com muito reconhecimento dedico esse
trabalho aos meus pais Luís Vanderlei e
Rosane, a minha irmã Natália e minha
namorada Carina, pessoas as quais tiveram
paciência e muita compreensão sempre que
necessário.
5
AGRADECIMENTOS
Em primeiro lugar a Deus pelo dom da vida, pela força, a energia e as bênçãos que têm me
proporcionado ao longo dessa jornada.
A minha namorada Carina e a toda minha família por todo o amor, apoio e empenho
destinados durante toda a minha formação.
Aos meus amigos os quais estiveram sempre presentes em todos os momentos e as novas
amizades construídas dentro da Universidade.
A UNIJUI e todo o corpo docente do curso de Ciência da Computação, por compartilhar
momentos de experiências e aprendizado ao longo dessa caminhada.
Ao professor Dr. Manuel Osório Binelo por ter me orientado nesse trabalho e me ajudado a
sanar todas as dúvidas.
E a todos que de alguma maneira contribuíram para que a realização deste trabalho fosse
possível.
6
“As pessoas não sabem o que querem até você mostrar a elas”. (Steve Jobs).
7
RESUMO
A mineração de dados possui muita importância nos dias atuais, principalmente no ambiente
empresarial, onde a quantidade de dados cresce em grande proporção tornando muito difícil a
tarefa de criar indicadores e relatórios que facilitem a compreensão desses números. Ao longo
da pesquisa, foram abordadas as principais técnicas de mineração de dados com analogias a
exemplos de possíveis utilizações práticas e seus respectivos algoritmos.
Por fim, foi realizado um estudo de análise comparativa entre os algoritmos de clusterização
Simple K-Means, EM (Expectation-Maximization) e X-Means, os quais foram aplicados em
dados gerados no software Octave conforme alguns critérios pré-estabelecidos, com o
objetivo de conseguir comparar os novos clusters descobertos em relação aos grupos
anteriormente criados, a fim de concluir qual algoritmo obteve melhores resultados. Como
resultado foi possível observar o comportamento dos algoritmos em relação a estrutura do
banco de dados. Foi possível observar que em bases que possuíam quantidade maior de
atributos, a taxa de erros foi consideravelmente menor e que o diferente desempenho de um
mesmo algoritmo em duas situações não semelhantes, como foi o caso do algoritmo Simple
K-Means, mostra que não necessariamente um único algoritmo pode ser a solução única para
diversos bancos de dados.
Palavras-chave: Mineração de dados, algoritmos, banco de dados.
8
ABSTRACT
Data mining has becoming a very important tool, especially in the business environment,
where the amount of data grows in large proportion, making very difficult the task of creating
indicators and reports that facilitate the understanding of these numbers. Throughout this
research, the main techniques of data mining are discussed, with analogies to examples of
possible practical applications and their algorithms.
Finally, a comparative analysis between the clustering algorithms Simple K-Means, EM
(Expectation-Maximization) and X-Means is presented. The data mining methods were
applied to data generated in Octave software according to some predetermined criteria in
order to conclude which algorithm produced the best results. As a result it was possible to
observe the behavior of the algorithms regarding the structure of the database. It was observed
that in data bases which had a larger number of attributes, the error rate was considerably
lower and that the different performance of the same algorithm in two non-similar situations,
as in the case of Simple k-means algorithm, shows that not necessarily a single algorithm may
be the only solution for multiple databases.
Keywords: Data mining, algorithms, database.
9
LISTA DE FIGURAS
Figura 1. Etapas do processo de KDD definidas por Fayyad.................................................. 21
Figura 2. As três partes da divisão do KDD segundo Fayyad................................................. 23
Figura 3. Etapas do processo de KDD conforme modelo CRISP-DM.................................... 24
Figura 4. Associação entre conjunto de dados e classes.......................................................... 32
Figura 5. Gráfico onde o valor de y é uma função linear de x................................................. 33
Figura 6. Exemplo de substituição de outliers......................................................................... 36
Figura 7. Dados agrupados em três clusters............................................................................ 37
Figura 8. Cluster criado com animais mamíferos.................................................................... 39
Figura 9. Cluster criado para animais marinhos...................................................................... 39
Figura 10. Resumo das Etapas do Algoritmo K-Means........................................................... 40
Figura 11. Exemplo da aplicação do algoritmo K-Means........................................................ 41
Figura 12. Exemplo de árvore de clusters na clusterização hierárquica.................................. 43
Figura 13. Exemplo de arquivo ARFF..................................................................................... 50
Figura 14. Script do primeiro banco de dados......................................................................... 52
Figura 15. Script do segundo banco de dados.......................................................................... 52
Figura 16. Script do terceiro banco de dados........................................................................... 53
Figura 17. Script do quarto banco de dados............................................................................. 53
Figura 18. Script do quinto banco de dados............................................................................. 53
Figura 19. Script do sexto banco de dados.............................................................................. 54
Figura 20. Script do sétimo banco de dados............................................................................ 54
Figura 21. Script do oitavo banco de dados............................................................................. 54
Figura 22. Script do nono banco de dados............................................................................... 55
Figura 23. Script com a função gera_grupo_idade_obj1......................................................... 56
Figura 24. Script do primeiro banco de dados do objetivo 2................................................... 56
10
Figura 25. Script do segundo banco de dados do objetivo 2.................................................... 57
Figura 26. Script do terceiro banco de dados do objetivo 2..................................................... 57
Figura 27. Script com a função gera_grupo_idade_obj2......................................................... 58
Figura 28. Arquivo .txt gerado pelo Octave com os atributos sexo e idade............................ 59
Figura 29. Arquivo .txt com o cabeçalho adicionado.............................................................. 60
Figura 30. Simple CLI com o comando de conversão de arquivos.......................................... 61
Figura 31. Arquivos .arff e .txt no mesmo diretório................................................................ 62
Figura 32. Arquivo .arff aberto no WEKA.............................................................................. 63
Figura 33. Parametrização do número de clusters no Simple K-Means.................................. 64
Figura 34. Resultado obtido no primeiro banco de dados com Simple K-Means.................... 65
Figura 35. Parametrização do número de clusters no X-Means................................................66
Figura 36. Resultado obtido no primeiro banco de dados com X-Means................................ 67
Figura 37. Parametrização do número de clusters no EM....................................................... 68
Figura 38. Resultado obtido no primeiro banco de dados com EM......................................... 68
11
LISTA DE TABELAS
Tabela 1. Primeiro banco de dados......................................................................................... 69
Tabela 2. Segundo banco de dados.......................................................................................... 69
Tabela 3. Terceiro banco de dados........................................................................................... 69
Tabela 4. Quarto banco de dados............................................................................................. 70
Tabela 5. Quinto banco de dados............................................................................................. 70
Tabela 6. Sexto banco de dados............................................................................................... 70
Tabela 7. Sétimo banco de dados............................................................................................. 70
Tabela 8. Oitavo banco de dados............................................................................................. 70
Tabela 9. Nono banco de dados............................................................................................... 71
Tabela 10. Décimo banco de dados......................................................................................... 71
Tabela 11. Décimo primeiro banco de dados........................................................................... 71
Tabela 12. Décimo segundo banco de dados........................................................................... 71
Tabela 13. Taxa de erros após execução do Simple K-Means no primeiro banco de dados.... 72
Tabela 14. Resultados para o primeiro banco de dados, pertencente ao objetivo 1, com
detecção manual do número de clusters a serem criados......................................................... 75
Tabela 15. Resultados para o primeiro banco de dados, pertencente ao objetivo 1, com
detecção automática do número de clusters a serem criados................................................... 75
Tabela 16. Resultados para o segundo banco de dados, pertencente ao objetivo 1, com
detecção manual do número de clusters a serem criados......................................................... 75
Tabela 17. Resultados para o segundo banco de dados, pertencente ao objetivo 1, com
detecção automática do número de clusters a serem criados................................................... 75
Tabela 18. Resultados para o terceiro banco de dados, pertencente ao objetivo 1, com
detecção manual do número de clusters a serem criados......................................................... 75
12
Tabela 19. Resultados para o terceiro banco de dados, pertencente ao objetivo 1, com
detecção automática do número de clusters a serem criados................................................... 76
Tabela 20. Resultados para o quarto banco de dados, pertencente ao objetivo 1, com detecção
manual do número de clusters a serem criados........................................................................ 76
Tabela 21. Resultados para o quarto banco de dados, pertencente ao objetivo 1, com detecção
automática do número de clusters a serem criados.................................................................. 76
Tabela 22. Resultados para o quinto banco de dados, pertencente ao objetivo 1, com detecção
manual do número de clusters a serem criados........................................................................ 76
Tabela 23. Resultados para o quinto banco de dados, pertencente ao objetivo 1, com detecção
automática do número de clusters a serem criados.................................................................. 76
Tabela 24. Resultados para o sexto banco de dados, pertencente ao objetivo 1, com detecção
manual do número de clusters a serem criados........................................................................ 77
Tabela 25. Resultados para o sexto banco de dados, pertencente ao objetivo 1, com detecção
automática do número de clusters a serem criados.................................................................. 77
Tabela 26. Resultados para o sétimo banco de dados, pertencente ao objetivo 1, com detecção
manual do número de clusters a serem criados........................................................................ 77
Tabela 27. Resultados para o sétimo banco de dados, pertencente ao objetivo 1, com detecção
automática do número de clusters a serem criados.................................................................. 77
Tabela 28. Resultados para o oitavo banco de dados, pertencente ao objetivo 1, com detecção
manual do número de clusters a serem criados........................................................................ 77
Tabela 29. Resultados para o oitavo banco de dados, pertencente ao objetivo 1, com detecção
automática do número de clusters a serem criados.................................................................. 78
Tabela 30. Resultados para o nono banco de dados, pertencente ao objetivo 1, com detecção
manual do número de clusters a serem criados........................................................................ 78
Tabela 31. Resultados para o nono banco de dados, pertencente ao objetivo 1, com detecção
automática do número de clusters a serem criados.................................................................. 78
Tabela 32. Resultados para o décimo banco de dados, pertencente ao objetivo 2, com detecção
manual do número de clusters a serem criados........................................................................ 78
Tabela 33. Resultados para o décimo banco de dados, pertencente ao objetivo 2, com detecção
automática do número de clusters a serem criados.................................................................. 78
Tabela 34. Resultados para o décimo primeiro banco de dados, pertencente ao objetivo 2, com
detecção manual do número de clusters a serem criados......................................................... 79
13
Tabela 35. Resultados para o décimo primeiro banco de dados, pertencente ao objetivo 2, com
detecção automática do número de clusters a serem criados................................................... 79
Tabela 36. Resultados para o décimo segundo banco de dados, pertencente ao objetivo 2, com
detecção manual do número de clusters a serem criados........................................................ 79
Tabela 37. Resultados para o décimo segundo banco de dados, pertencente ao objetivo 2, com
detecção automática do número de clusters a serem criados.................................................. 79
14
LISTA DE ABREVIATURAS E SIGLAS
API
Application Programming Interface
ARFF
Attribute-Relation File Format
CLI
Command Line Interface
CRISP-DM
Cross-Industry Standard Process for Data mining
DM
Data mining
EM
Expectation-Maximization
GUI
Graphical User Interface
JDBC
Java Database Connectivity
KDD
Knowledge Discovery in Databases
SATA
Serial Advanced Technology Attachment
SSD
Solid State Drive
UNIJUI
Universidade Regional do Noroeste do Estado do Rio Grande do Sul
URL
Uniform Resource Locator
VM
Virtual Machine
WEKA
Waikato Environment for Knowledge Analysis
15
SUMÁRIO
INTRODUÇÃO.......................................................................................................................17
OBJETIVOS............................................................................................................................19
1
DESCOBERTA DE CONHECIMENTO EM BANCO DE DADOS ......................... 20
1.1
1.1.1
Seleção dos Dados .............................................................................................. 21
1.1.2
Pré-Processamento ............................................................................................. 22
1.1.3
Transformação .................................................................................................... 22
1.1.4
Mineração de Dados (Data mining) ................................................................... 22
1.1.5
Interpretação dos Resultados .............................................................................. 22
1.2
Etapas conforme modelo CRISP-DM........................................................................ 23
1.2.1
Entendimento do negócio ................................................................................... 24
1.2.2
Entendimento dos dados ..................................................................................... 25
1.2.3
Preparação dos dados.......................................................................................... 25
1.2.4
Modelagem ......................................................................................................... 26
1.2.5
Avaliação do modelo .......................................................................................... 26
1.2.6
Publicação ........................................................................................................... 27
1.3
2
Etapas conforme Fayyad ............................................................................................ 20
Mineração de Dados .................................................................................................. 27
1.3.1
Objetivos da Mineração de Dados ...................................................................... 28
1.3.2
Predição .............................................................................................................. 28
1.3.3
Descrição ............................................................................................................ 29
TÉCNICAS DE MINERAÇÃO DE DADOS ............................................................... 31
2.1
Classificação .............................................................................................................. 31
2.2
Estimação ou Regressão ............................................................................................ 33
2.3
Associação ................................................................................................................. 34
16
2.4
Análise de Outliers .................................................................................................... 35
2.5
Agrupamento ou Clusterização .................................................................................. 36
2.5.1
Métodos de Particionamento .............................................................................. 39
2.5.2
Métodos Hierárquicos ........................................................................................ 42
2.5.3
Métodos Baseados na Densidade ....................................................................... 43
2.5.4
Métodos Baseados em Grade ............................................................................. 43
2.5.5
Métodos Baseados em Modelo ........................................................................... 44
3
TRABALHOS RELACIONADOS ................................................................................ 45
4
METODOLOGIA ........................................................................................................... 48
4.1 Ambiente de trabalho ...................................................................................................... 48
4.1.1 Octave..................................................................................................................... 49
4.1.2 Arquivo ARFF ....................................................................................................... 49
4.1.3 WEKA .................................................................................................................... 50
4.2 Geração dos Dados ......................................................................................................... 51
4.3 Transformação dos Dados............................................................................................... 59
4.4 Algoritmos de Clusterização ........................................................................................... 62
4.4.1 Simple K-Means ..................................................................................................... 63
4.4.2 X-Means ................................................................................................................. 65
4.4.3 Expectation-Maximization (EM) ............................................................................ 67
4.5 Elaboração da Taxa de Erros .......................................................................................... 69
5
RESULTADOS ................................................................................................................ 74
6
CONSIDERAÇÕES FINAIS ......................................................................................... 83
REFERÊNCIAS ..................................................................................................................... 84
17
INTRODUÇÃO
Ao longo dos anos 70, no Brasil, o computador era um objeto de exclusividade de
grandes empresas, órgãos do governo e universidades. Com o passar do tempo, tornou-se um
item cada vez mais comum não somente nas instituições, mas também dentro dos lares,
fazendo parte do cotidiano dos cidadãos. Atualmente, o investimento em equipamentos
tecnológicos e sistemas de informação têm aumentado consideravelmente por parte das
grandes companhias e, paralelo a isso, cresce o número de dados e, consequentemente,
informações que devem ser armazenadas em bancos de dados. Percebe-se nesse caso a
distinção entre os dois conceitos. Conforme Le Codiac (1996, p. 6) chama-se dado “(...) a
representação convencional, codificada, de uma informação sob uma forma que permite seu
processamento eletrônico”. Já o termo informação pode ser expresso como o ato de formar ou
representar uma ideia. Segundo Zeman (1970) “(...) informação são dados contextualizados
para algum propósito”.
As constantes inovações, apesar de muitas vezes trazerem novas visões empresariais e
regras de negócios, acabam também causando uma sobrecarga tecnológica, como a perda ou
redução do controle sobre os dados armazenados em repositórios antigos, ou ainda em
diferentes arquivos usados atualmente, o que dificulta o acesso aos mesmos. Passa-se o tempo
e as empresas acabam tendo enormes conjuntos de dados, nos mais diversos formatos.
Possuem dados gravados em planilhas, banco de dados, entre outros. Chegará então um
momento em que a companhia necessitará buscar informações estratégicas em seus
repositórios e então aparecerão os problemas de dificuldade de acesso a esses dados e a
incompatibilidade entre os sistemas (DALLANORA, 2009, p.10).
Surge então o processo de descoberta de conhecimento, que tem por objetivo buscar e
extrair informações úteis a respeito dos dados. Em muitos casos, esse processo pode ser longo
e trabalhoso.
18
Uma das etapas desse procedimento é a mineração de dados, para muitos, a mais
importante e complexa de todo o método de descoberta de conhecimento. Ela utiliza-se de
técnicas e ferramentas para procurar encontrar informações ocultas na enorme quantidade de
dados absorvidos pela empresa. O processo de mineração de dados segue algumas etapas: a
identificação do problema, o pré-processamento dos dados, a extração de padrões nos dados, a
definição de uma tarefa de mineração de dados, a escolha de um algoritmo adequado e o pósprocessamento, que inclui a análise dos resultados alcançados.
19
OBJETIVOS
Atualmente muitas empresas, órgãos e indústrias possuem imensos bancos de dados
onde são armazenados uma quantidade significativa de dados. O problema ocorre a partir do
momento em que é necessário realizar um estudo mais aprofundado em relação aos dados
com o objetivo de extrair informações importantes a respeito dos clientes. Por tratar-se de um
banco de dados grande e que possui um longo histórico armazenado, pode-se encontrar muitas
inconsistências e também dados incompletos, o que dificulta a geração de relatórios com foco
no nível gerencial para tomadas de decisão. Utilizando então a mineração de dados como
recurso seguro para a resolução desse tipo de problema, ficou definida no contexto uma
operadora de planos de saúde fictícia, que possui um hospital próprio e que deseja encontrar
respostas para duas questões relevantes para o seu negócio: a primeira, qual faixa etária de
clientes é a responsável pela maior quantidade de atendimentos hospitalares e, a segunda, se é
possível criar alguma relação entre a quantidade de atendimentos do beneficiário em um ano,
a distância entre a residência dele até o hospital e o valor de suas mensalidades nesse mesmo
período anual.
A partir dessas duas questões, também identificadas nesse trabalho como objetivo 1 e
objetivo 2, são primeiramente gerados, conforme alguns critérios pré-estabelecidos, diversos
bancos de dados através do software Octave. Esses bancos de dados servem como resposta
aos dois objetivos e também como base para etapa de mineração de dados. O próximo passo
então é estudar as diversas técnicas e algoritmos mineradores para poder escolher os mais
adequados e, através da ferramenta open source WEKA, aplicá-los na mineração de dados
com o objetivo final de verificar a partir dos dados produzidos para o objetivo 1 e 2, quais
algoritmos alcançaram um melhor desempenho, provado através de menores taxas de erro
calculadas.
20
1 DESCOBERTA DE CONHECIMENTO EM BANCO DE
DADOS
O processo de descoberta de conhecimento em banco de dados, também conhecido
pelo termo inglês Knowledge Discovery in Databases (KDD), possui em sua literatura
diferentes abordagens a respeito da definição de seus termos. Em documentos voltados ao
estudo estatístico realizado por analistas de dados e profissionais de tecnologia da informação,
chama-se o processo KDD de mineração de dados. Para os profissionais da inteligência
artificial o processo é denominado de Descoberta de Conhecimento em Banco de Dados e a
mineração de dados torna-se uma das etapas onde são utilizados algoritmos para busca de
conhecimento (BRAUNER, 2003).
Independente de como é tratada a abordagem, o processo de KDD é composto por um
conjunto de etapas que envolvem desde o domínio da aplicação até o entendimento e
consolidação dos resultados (BRAUNER, 2003).
1.1 Etapas conforme Fayyad
Segundo Fayyad (1996) o tradicional modelo para transformar dados em informação
(conhecimento) consiste em um processamento manual de todas essas informações por
especialistas que, após a conclusão de todas as etapas, produzem relatórios finais os quais
servem para análise. Ainda para Fayyad (1996), o KDD compõe o processo de descoberta do
conhecimento em um modo mais amplo e, mineração de dados, é uma das etapas desse
processo, afirmando ainda que ela deve ser iterativa, interativa e dividida em fases (CAMILO
e SILVA, 2009 apud FAYYAD, 1996). Na figura 1 é possível observar a representação do
processo de KDD com as etapas definidas por Fayyad (1996).
21
Figura 1 – Etapas do processo de KDD definidas por Fayyad
Fonte: Camilo e Silva (2009) apud Fayyad (1996).
No início do processo de descoberta de conhecimento em banco de dados é realizada
uma análise do problema a ser resolvido. A compreensão desse problema é fundamental para
definir de maneira correta os objetivos do processo de KDD. A partir de então é feita uma
análise dos dados disponíveis para solucionar o problema.
1.1.1
Seleção dos Dados
Assim que os objetivos são definidos, inicia-se a seleção dos dados disponíveis no(s)
banco(s) de dados. A formação desse subconjunto de dados selecionados conterá apenas
elementos considerados importantes para a solução do problema. A escolha correta dos dados
é muito importante devido ao fato de que posteriormente, os algoritmos de mineração de
dados serão aplicados justamente em cima desse subconjunto (BATISTA, 2003).
Conforme Almeida e Dumontier (1996), a etapa inicial de selecionar os dados é crítica
porque os dados podem não estar disponíveis em um formato correto para serem utilizados no
processo de KDD. Em outros casos, mesmo se estiverem disponíveis, os dados podem
precisar ser rotulados com o auxílio de um especialista do domínio.
22
1.1.2
Pré-Processamento
Parte dos dados armazenados em banco de dados pode conter certos problemas como,
por exemplo, dados redundantes, informações incompletas, ruídos ou incertezas. Nessa etapa
de pré-processamento são aplicadas estratégias de limpeza e tratamento dos dados
(REZENDE, 2003).
1.1.3
Transformação
De acordo com os objetivos da tarefa, os dados armazenados no banco de dados
podem não ser suficientes ou então não estarem no formato exigido pelos algoritmos na etapa
de mineração. É na etapa de transformação então que são geradas as demais informações
necessárias e também onde são estruturados os dados para o formato correto aceito pelos
algoritmos. Portanto, o ideal seria, primeiramente, definir a técnica e o(s) algoritmo(s)
minerador(es) que serão utilizados para a partir de então transformar os dados para o formato
adequado (SILVA, 2000).
1.1.4
Mineração de Dados (Data mining)
Etapa onde é estabelecido o método e os algoritmos mineradores que realizarão a
busca pelo conhecimento implícito e útil do banco de dados. A mineração de dados tem por
objetivo encontrar padrões nos dados. É a fase mais importante do processo de KDD, onde
nela os dados são transformados em informação (conhecimento) (REZENDE, 2003).
1.1.5
Interpretação dos Resultados
É a última etapa do processo de descoberta de conhecimento em banco de dados. Após
a finalização da fase de processamento dos algoritmos, ocorre a interpretação dos resultados
obtidos. O objetivo dessa etapa é aprimorar a compreensão do conhecimento obtido, seja ela
através de relatórios demonstrativos ou através de documentação com as informações
relevantes descobertas.
23
Essas cinco etapas do processo de descoberta de conhecimento em banco de dados
podem ser classificadas em três categorias: pré-processamento, mineração de dados e pósprocessamento, como é demonstrado na Figura 2 (FAYYAD, 1996).
Figura 2 – As três partes da divisão do KDD segundo Fayyad
Fonte: Dallanora, Julio Fernando (2009).
1.2 Etapas conforme modelo CRISP-DM
O modelo CRISP-DM para processos de mineração de dados faz parte de uma
metodologia desenvolvida por uma comissão europeia da fundação ESPRIT, nome dado ao
projeto apoiado por uma aliança de parceiros industriais.
Segundo O Processo de Descoberta de Conhecimento em Banco de Dados: Um
Estudo de Caso Sobre os Dados da UFPel (BRAUNER, Daniela Francisco. 2003, p. 23) diz
que:
A modelagem CRISP-DM (Cross-Industry Standard Process for Data mining), foi
desenvolvida para servir como uma metodologia padrão, que visa identificar as
diferentes fases na implantação de um projeto para mineração de dados em bancos
24
de dados empresariais. Esta metodologia foge aos conceitos anteriores, pois
descreve o processo realizado no dia-a-dia de profissionais de negócios.
As etapas do modelo CRISP-DM, assim também como as definidas por Fayyad
(1996), não possuem uma sequência rígida, ou seja, dependendo dos resultados obtidos em
uma fase anterior, podem ocorrer retornos e avanços ao longo das etapas.
O modelo de CRISP-DM é composto por seis etapas, como demonstrado na figura 3.
Figura 3 – Etapas do processo de KDD conforme modelo CRISP-DM
Fonte: Chapman, Pete et al. (2000).
1.2.1
Entendimento do negócio
Nessa etapa exibem-se as metas que desejam ser alcançadas com esse processo, e a
partir de então é traçada uma estratégia para solução do problema através de mineração de
dados. Como um exemplo hipotético, suponhamos que a empresa automobilística alemã Audi
deseja saber qual é a faixa etária que mais adquire os carros A1, A3 e A4. Para tal, são
levantados os dados dos clientes que entraram na loja e apenas visualizaram os carros (grupo
1), os que solicitaram maiores informações sobre algum modelo (grupo 2), os que realizaram
uma simulação de financiamento (grupo 3) e os que definitivamente efetivaram a compra
25
(grupo 4). Após a obtenção dos dados em um determinado período, com o auxílio de um
software de mineração de dados será possível adquirir informações a respeito de qual faixa
etária costuma efetivar a compra um determinado modelo de veículo, ou qual é a faixa de
idade mais propícia a apenas observar os carros e sair da loja. Esse tipo de informação é muito
útil para a área de marketing desenvolver uma campanha informativa específica para esse
grupo, ou ainda se for possível adicionar o dado referente à faixa salarial do cliente que faz a
simulação de financiamento. A empresa poderá descobrir o motivo pelo qual certa
porcentagem de clientes desiste da compra após a simulação, entendendo que seja possível
para muitos casos contornar essa situação promovendo para esse grupo dos desistentes a
apresentação do modelo A1, carro de entrada da Audi e com valor reduzido. Enfim, as
possibilidades de informações que podem ser recolhidas são inúmeras e irão variar conforme
os dados e também os objetivos que desejam ser alcançados.
1.2.2
Entendimento dos dados
Nessa fase é selecionada uma amostra dos dados disponíveis para que seja realizada
uma avaliação quanto a possíveis inconsistências e detecção de subconjuntos. No caso
exemplificado anteriormente envolvendo a empresa Audi, essa etapa consiste em entender o
que realmente representa cada valor e se desejado, realizar uma simulação de quais grupos de
faixa etária são possíveis de serem criados apenas com uma quantidade menor de registros
selecionados, para futuramente, com o pós-processamento de todos os registros que passaram
pela mineração de dados, verificar se realmente os resultados foram os esperados ou se foi
encontrado algum padrão novo entre o primeiro teste e o definitivo.
1.2.3
Preparação dos dados
Na preparação dos dados ocorre a construção da estrutura com dados selecionados
para realização de tarefas de transformação e limpeza, visando o uso posterior por parte dos
algoritmos mineradores. Nessa fase procura-se descartar os dados que apresentam alguma
inconsistência ou valor nulo, como por exemplo, para o caso em que no valor da renda ocorra
muita variação para determinado cliente devido à sua profissão. Esse valor inconstante pode
26
dificultar a sua classificação e trazer uma informação que não possua determinada garantia de
que esteja certa.
1.2.4
Modelagem
É nesse momento que ocorre a escolha de um ou mais algoritmos para serem
utilizados. Caso os dados estejam em formato não aceito pela aplicação, retorna-se à fase de
preparação dos dados. Na empresa alemã Audi, após realizar a escolha dos registros que serão
utilizados pela companhia, é construído o arquivo com base no layout correto para importação
no software de mineração de dados. Geralmente essa fase é elaborada por analistas e/ou
funcionários do setor de tecnologia da informação (TI) da empresa, os quais deverão escolher
qual algoritmo (em alguns casos pode ser mais que um) será utilizado, tendo conhecimento de
que existem diferentes tipos de algoritmos para diferentes tipos de objetivos que se quer
alcançar.
1.2.5
Avaliação do modelo
Essa é a etapa onde ocorre a avaliação dos modelos resultantes seguindo a visão do
negócio, certificando-se de que não existem contradições em relação às regras reais do
negócio. No exemplo utilizado até aqui, essa fase consiste em repassar as informações
resultantes da mineração para os responsáveis avaliarem se os resultados obtidos não excedem
alguma regra interna da empresa, como no caso de exibir um grupo de 14 à 18 anos
efetivando compras para o veículo modelo A2, sendo que os contratos e simulações só
poderiam ser realizados na Audi para clientes com idade superior à 18 anos, ou seja, eles
podem sim ter registros de um grupo de jovens interessados e que realizam a simulação de
financiamento, mas que na verdade os dados deveriam ser referentes ao responsável final pela
titularidade do financiamento ou aquisição do veículo. Se forem encontradas inconsistências
significativas, o processo poderá retornar à etapa de preparação dos dados para que seja
refeita a mineração. Caso as informações resultantes não apresentem essas inconsistências,
elas podem ser encaminhadas à sexta e última etapa do modelo CRISP-DM: a publicação.
27
1.2.6
Publicação
O objetivo dessa fase é tornar acessível a informação obtida, como por exemplo,
através da publicação de um relatório para uso interno da empresa. Informações estratégicas
muitas vezes ficam sob o domínio de gerentes ou área de negócios, como por exemplo, a faixa
etária que mais adquire carro do modelo A1 ou qual a porcentagem de clientes que desiste da
compra após simulação de financiamento. Já as informações para conhecimento geral,
referentes por exemplo à quantidade de vendas do veículo A1 de Janeiro à Junho, podem ser
exibidas nos murais das diversas lojas Audi espalhadas pelo mundo e/ou divulgadas no site
oficial da companhia.
1.3 Mineração de Dados
A mineração de dados (em inglês, data mining ou simplesmente DM), possui uma
enorme quantidade de definições em sua literatura. Por ser referenciada com um conjunto de
técnicas multidisciplinares, pode-se utilizar de conceitos de diversas áreas, como por
exemplo, inteligência artificial, banco de dados, estatística e também computação gráfica.
Segundo Silva (2000) mineração de dados “(...) é uma técnica para determinar padrões
de comportamento, em grandes bases de dados, auxiliando na tomada de decisão”.
Para Possa et al. (1998) a mineração de dados “(...) é um conjunto de técnicas que
envolvem métodos matemáticos, algoritmos e heurísticas para descobrir padrões e
regularidades em grandes conjuntos de dados”.
A mineração de dados é considerada a principal etapa do processo de descoberta de
conhecimento em banco de dados (GOLDSCHMIDT; PASSOS, 2005). Estima-se que a MD
represente de 15% a 25% do processo de KDD (SHIMABUKURU, 2004).
Quanto às vantagens em utilizar data mining em ambientes coorporativos, conforme O
Uso da Descoberta de Conhecimento em Base de Dados para Apoiar a Tomada de Decisões
(DANTAS, Eric Rommel G. et al. 2008, p. 4 apud PINTO, 2005) diz que:
A mineração de dados possibilita a busca em grandes bases de dados de informações
desconhecidas, permitindo aos gestores uma maior agilidade nas tomadas de
decisões. Uma empresa que utiliza Data mining é capaz de criar parâmetros para
entender o comportamento do consumidor, identificando afinidades entre as
escolhas de produtos e serviços, prevendo hábitos de compras e analisando
comportamentos habituais para detecção de fraudes.
28
Referente à classificação dada às informações, conforme Análise do Perfil de Clientes
a partir de Técnicas de Mineração de Dados (DALLANORA, Julio Fernando. 2009, p. 12) diz
que:
As informações que se buscam saber podem ser estruturadas, quando o usuário da
técnica de mineração de dados sabe qual a informação está se buscando ou não
estruturada, quando as técnicas e algoritmos de mineração são aplicados com o
intuito de encontrar novos padrões de dados.
Durante as etapas de mineração de dados exige-se uma interação muito forte com os
profissionais analistas, os quais são os principais responsáveis por determinar o valor dos
padrões encontrados, tendo em vista que eles são os responsáveis pelas técnicas de mineração
de dados e pelo processamento dos algoritmos mineradores utilizados no processo de
descoberta de conhecimento em bancos de dados.
Segundo Larose (2005), “Mineração de dados é um processo que requer significativa
interação humana, em cada fase”.
As técnicas de data mining são sempre aplicadas em grandes volumes de dados, pois
os algoritmos mineradores necessitam calibragem e, para isso, analisam todo o histórico de
informações, conseguindo assim poder extrair dados conclusivos confiáveis.
1.3.1
Objetivos da Mineração de Dados
Dentre os principais objetivos da mineração de dados apresenta-se como consenso o
motivo da busca por padrões, tendências ou regras, com o intuito de transformar dados,
aparentemente ocultos, em informações importantes para avaliação de resultados ou tomada
de decisão. Segundo Halmenschlager (2002) os objetivos de data mining são divididos em
dois tipos, conforme o resultado que se deseja alcançar. O primeiro tipo é conhecido como
Predição e o segundo é Descrição.
1.3.2
Predição
De acordo com Análise do Perfil de Clientes a partir de Técnicas de Mineração de
Dados (DALLANORA, Julio Fernando. 2009, p. 18 apud HALMENSCHLAGER, 2002) diz
que:
29
A predição tem por objetivo descobrir valores futuros, muitas vezes valores
desconhecidos para seus estudiosos e em vezes até mesmo nem imaginados. Para
chegar a um resultado preditivo é necessária uma pesquisa em cima de dados
históricos do banco. Porém para que isso ocorra com precisão e segurança é muito
importante que o banco que se está sendo minerado seja integro e que tenha passado
por um processo de limpeza e filtragem de informações desnecessárias.
As ações de predição, ou mineração de dados preditiva, consistem na generalização de
exemplos passados com respostas conhecidas, tornando possível o reconhecimento da classe
para um novo dado. Os dois principais tipos de técnicas preditivas são classificação e
regressão. A classificação consiste em predizer um valor categórico como, por exemplo,
predizer se um determinado cliente é bom ou mau pagador. Na técnica de regressão, o
atributo a ser predito é um valor contínuo como, por exemplo, predizer o lucro ou a perda em
um empréstimo (REZENDE, 2005 apud WEISS; INDURKHYA, 1998).
Um exemplo de tarefa preditiva pode ocorrer em relação a uma previsão de futuras
vendas de automóveis em uma concessionária, onde o processo de data mining poderá utilizar
muitas variáveis como, por exemplo, a quantidade de dias úteis e de feriados, vendas em
mesmos períodos nos anos anteriores, níveis de preços, situação financeira de clientes e assim
por diante. Pode-se afirmar que quanto maior for o número de variáveis empregadas na
mineração ao longo do processo de predição, menores serão as chances de ter uma previsão
errônea.
1.3.3
Descrição
Esse processo busca encontrar padrões descritivos em um subconjunto de dados
utilizando-se da avaliação dos dados. Toda informação obtida pode ajudar na tomada de
decisão dentro de uma empresa, desde o investimento em campanhas publicitárias até a
mudança no foco estratégico da mesma. É uma opção que auxilia muito os gerentes e
diretores a melhor utilizar as informações existentes na base de dados.
Conforme Dallanora (2009, p. 19), neste caso não existirá uma informação nova, mas
sim a organização da informação já existente, ajudando desta forma os gestores com sua
interpretação e organização dos dados.
A atividade de descrição, ou mineração de dados descritiva, consiste em identificar
comportamentos intrínsecos do conjunto de dados, sendo que estes dados não possuem uma
30
classe especificada. Algumas das principais técnicas descritivas são clusterização e associação
(REZENDE, 2005).
Um exemplo de técnica descritiva que pode ser utilizada em uma empresa ocorre na
possibilidade de um funcionário responsável pela mineração de dados criar um perfil para os
clientes dessa instituição, onde então ele ficará encarregado de informar ao algoritmo todos os
valores de entrada de dados que forem definidos como sendo relevantes para a criação desse
perfil. A partir daí, o algoritmo minerador fará o agrupamento dos clientes com base nas
características em comum encontradas para essas pessoas, como por exemplo, a criação do
perfil de clientes que mensalmente adquirem um determinado número mínimo de produtos.
31
2 TÉCNICAS DE MINERAÇÃO DE DADOS
A mineração de dados é dividida em algumas técnicas, as quais possuem seus
respectivos algoritmos e funcionalidades. A escolha da técnica a ser empregada em uma
mineração é realizada de acordo com os objetivos planejados para a solução a ser encontrada
no banco de dados.
Uma vez escolhida a técnica a ser empregada, existem várias opções de algoritmos
para executá-la. A definição do algoritmo minerador e a posterior configuração de seus
parâmetros dependem muito do conhecimento do minerador em relação ao banco de dados e a
forma como os registros estarão disponíveis (REZENDE, 2005).
Entre as principais técnicas de mineração de dados estão a classificação, regressão,
associação, análise de outliers e a clusterização.
2.1 Classificação
Essa técnica é uma das mais comuns no ambiente de mineração de dados e, segundo
Camilo e Silva (2009, p. 9), “visa identificar a qual classe um determinado registro pertence.
Nessa técnica, o modelo analisa o conjunto de registros fornecidos, com cada registro já
contendo a indicação à qual classe pertence, a fim de ‘aprender’ como classificar um novo
registro”.
Em Análise e Triagem de Padrões em Processamento de Descoberta de Conhecimento
em Base de Dados (SILVA, Denilson R. da. 2000) diz que:
A classificação é uma tarefa da mineração de dados que consiste em avaliar os dados
processados, classificando-os de acordo com as suas características. Para classificar,
criam-se classes caracterizadas, e os dados processados são relacionados a essa
classe por meio das peculiaridades.
É possível utilizar como exemplo para a técnica de classificação os logins de usuários
cadastrados em uma escola. Todos os registros são categorizados nos perfis Aluno, Professor,
Diretor e Administrador. O algoritmo de classificação analisa todos os dados coletados e
então torna-se capaz de determinar em qual perfil um novo usuário irá se encaixar. Esse
algoritmo, em uma explicação mais resumida, consegue estudar os registros e então, com base
nas classes já definidas por quem está minerando, classifica os novos usuários que serão
32
cadastrados futuramente. Se caso o usuário deve ter acesso a área de visualização de provas e
possui restrição à sua disciplina, então classifica-se esse perfil como Professor. Percebe-se
então que a tarefa de classificação é preditiva, pois prevê uma hipótese com base nos dados já
analisados.
Pode-se também utilizar algoritmos de classificação, por exemplo, para:
- Detectar fraudes em sistemas bancários e cartões de crédito, identificando se uma
transação financeira é considerada legal, ilegal ou suspeita.
- Diagnosticar qual tipo de tratamento pode ser indicado para uma pessoa que
apresenta determinados sintomas.
- Filtrar mensagens para indicar se o e-mail é considerado normal ou spam.
- Aprovar crédito pessoal, classificando o cliente em perfis de alto, médio ou baixo
risco para a instituição financeira.
- Atribuir tópicos em textos livres, como por exemplo em uma notícia, tornando
possível classificá-la automaticamente em uma determinada categoria, como esporte, política,
saúde ou social.
Entre os principais algoritmos de classificação, destacam-se o Naive Bayes, OneR,
Árvores de Decisão e Redes Neurais.
Figura 4 – Associação entre conjunto de dados e classes
Fonte: Rabelo, Emerson (2007).
33
2.2 Estimação ou Regressão
Conforme Mineração de Dados: Conceitos, Tarefas, Métodos e Ferramentas
(CAMILO, Cássio Oliveira; SILVA, João Carlos da. 2009, p. 10):
A estimação é similar à classificação, porém é usada quando o registro é identificado
por um valor numérico e não um categórico. Assim, pode-se estimar o valor de uma
determinada variável analisando-se os valores das demais. Por exemplo, um
conjunto de registros contendo os valores mensais gastos por diversos tipos de
consumidores e de acordo com os hábitos de cada um. Após ter analisado os dados,
o modelo é capaz de dizer qual será o valor gasto por um novo consumidor.
Os algoritmos dessa técnica podem ser utilizados para estimar, por exemplo:
- Valores da conta telefônica, com base nos registros de quantidade de ligações locais,
interurbanas, tarifas e quantidade de minutos gastos.
- O gasto aproximado mensal em supermercado, analisando uma família de 4 pessoas
comprando uma determinada quantidade de itens.
- A pressão arterial ideal para um determinado paciente baseando-se na idade, sexo e
massa corporal.
A técnica de regressão pode ser classificada em linear ou não-linear. Conforme
Camilo e Silva (2009) “As regressões são chamadas de lineares quando a relação entre as
variáveis preditoras e a resposta segue um comportamento linear. Neste caso, é possível
criar um modelo no qual o valor de y é uma função linear de x.”.
Figura 5 – Gráfico onde o valor de y é uma função linear de x
Fonte: Godoy, R. C. et al. (2003).
34
Em Mineração de Dados: Conceitos, Tarefas, Métodos e Ferramentas (CAMILO,
Cássio Oliveira; SILVA, João Carlos da. 2009, p. 9) diz que:
Nos modelos de regressão não-linear, a relação entre as variáveis preditoras e a
resposta não segue um comportamento linear. Por exemplo, a relação entre as
variáveis pode ser modelada como uma função polinomial. Ainda, para estes casos
(Regressão Polinomial), é possível realizar uma conversão pra uma regressão linear.
2.3 Associação
O principal objetivo da tarefa de associação é apresentar quais os atributos que
possuem relação entre si. Segundo Agrawal e Srikant (1994), descreve-se que uma regra de
associação identifica o quanto um conjunto de itens nos registros de um banco de dados
implica na presença de um outro conjunto diferente de itens nos mesmos registros.
Conforme Castanheira (2008), o objetivo das regras de associação é localizar
tendências que podem ser utilizadas para compreender e explorar os padrões comportamentais
dos dados. Em Aplicação de Técnicas de Mineração de Dados em Problemas de Classificação
de Padrões (CASTANHEIRA, Luciana Gomes. 2008, p. 25) é citado como exemplo a análise
dos dados de vendas de um supermercado, onde sabe-se que 80% dos clientes que compram
um determinado produto também adquirem, na mesma compra, um outro produto diferente.
Nessa regra, 80% corresponde a sua confiabilidade. As redes de varejo usam a associação
para planejar a disposição dos produtos em prateleiras e catálogos, de modo que os itens
geralmente adquiridos na mesma compra estejam visualmente próximos um do outro,
chamando a atenção do cliente.
Uma comparação que pode ser realizada em relação às tarefas de classificação e
associação, utilizando o mesmo exemplo dos perfis Aluno, Professor, Diretor e
Administrador utilizado anteriormente, é que na classificação o algoritmo consegue
sugerir e classificar novos usuários conforme as classes previamente informadas. Já na
tarefa de associação é possível relacionar, por exemplo, dois atributos juntamente a um
terceiro atributo até então desconhecido. Define-se que, se o usuário acessa a área para
lançamento de notas e também elaboração de questionários, ele provavelmente utilizará
também a área com a lista de presença, logo, classifica-se o mesmo com o perfil
Professor. Nesse exemplo utilizam-se as técnicas de associação e também classificação.
35
De acordo com Camilo e Silva (2009, p. 10), a técnica de associação consiste em
identificar quais elementos estão relacionados. É representada pela forma: SE atributo x
ENTÃO atributo y. É uma das técnicas mais conhecidas devido aos bons resultados
obtidos. Alguns exemplos utilizados no artigo Mineração de Dados: Conceitos, Tarefas,
Métodos e Ferramentas (CAMILO, Cássio Oliveira; SILVA, João Carlos da. 2009, p.
10) são:
- Determinar situações onde um novo medicamento pode apresentar efeitos
colaterais.
- Identificar os usuários de planos que respondem bem a oferta de novos serviços.
- Quais produtos são adquiridos em conjunto durante a ida ao supermercado.
Entre os principais algoritmos da tarefa de associação encontram-se o Apriori,
FPGrowth e o Tertius.
2.4 Análise de Outliers
Segundo Amo (2004), uma base de dados pode conter registros que não
apresentam o comportamento geral da maioria. Esses dados são denominados outliers
(discrepantes). Em Técnicas de Mineração de Dados (AMO, Sandra de. 2004, p. 4),
consta que:
Muitos métodos de mineração descartam estes outliers como sendo ruído
indesejado. Entretanto, em algumas aplicações, tais como detecção de fraudes, estes
eventos raros podem ser mais interessantes do que eventos que ocorrem
regularmente. Por exemplo, podemos detectar o uso fraudulento de cartões de
crédito ao descobrir que certos clientes efetuaram compras de valor extremamente
alto, fora de seu padrão habitual de gastos.
Nos casos em que os outliers não são o foco da análise e, o minerador decide por
não utilizá-los porque teme que esses registros possam interferir nos resultados, a
identificação desses dados torna-se importante e é realizada através da verificação dos
valores encontrados, analisando se correspondem aos valores possíveis para um
determinado atributo. Caso o valor não corresponda à realidade esse elemento pode ser
descartado ou então substituído pela média ou pela mediana. Existem também
procedimentos mais sofisticados que substituem os outliers pela média local da classe ou
através de regressão baseada nas demais variáveis (BRAGA, 2005).
36
Figura 6 – Exemplo de substituição de outliers
Fonte: Braga, Luis Paulo Vieira (2005).
No exemplo da figura 6, caso seja observado que o valor 1000 constitui um caso
excepcional ou errático, ele pode ser substituído pela média local dos pares próximos:
(120 + 100 + 200 + 150) / 4 = 142,5 (BRAGA, 2005).
2.5 Agrupamento ou Clusterização
Conforme Camilo e Silva (2009, p. 3) a tarefa de agrupamento procura identificar
e aproximar os registros semelhantes. Um cluster, ou agrupamento, é uma coleção de
registros similares entre si, porém, diferentes dos demais registros nos demais
agrupamentos. Esta técnica difere da classificação porque não necessita que os registros
sejam previamente categorizados (aprendizado não supervisionado). Além disso, a
clusterização não tem a pretensão de classificar, estimar ou predizer o valor de uma
variável, ela apenas identifica os grupos de dados similares.
Em Técnicas de Mineração de Dados (AMO, Sandra de. 2004, p. 26) é possível
identificar as mesmas diferenças entre classificação e clusterização, além de também
apresentar o conceito para cluster, onde define-se que:
Um cluster é uma coleção de objetos que são similares uns aos outros (de acordo
com algum critério de similaridade pré-fixado) e dissimilares a objetos pertencentes
a outros clusters. Análise de Clusters é uma tarefa de aprendizado não
supervisionado, pelo fato de que os clusters representam classes que não estão
definidas no início do processo de aprendizagem, como é o caso das tarefas de
Classificação (aprendizado supervisionado), onde o banco de dados de treinamento é
composto de tuplas classificadas. Clusterização constitui uma tarefa de aprendizado
por observação ao contrário da tarefa de Classificação que é um aprendizado por
exemplo.
Através de algoritmos de agrupamento, como por exemplo, o Simple K-Means e o
EM, é possível descobrir conjuntos de dados que se assemelham, formando grupos
identificados pela proximidade entre os valores de seus atributos, os quais por serem
37
muito próximos, acabam formando um cluster. Algumas das situações em que a tarefa
de agrupamento ou clusterização pode ser utilizada são:
- Identificar quais faixas etárias de pacientes que mais utilizam algum serviço
hospitalar de alto custo.
- Compreender se há algum padrão em clientes que realizam a aquisição de um
modelo específico de veículo da concessionária e verificar quais grupos de pessoas
realizam apenas a simulação de crédito, não efetivando a compra do veículo.
- Reconhecer quais grupos de pessoas utilizam serviços online para
movimentação bancária, podendo aproveitar esses dados para idealizar uma campanha
publicitária ou promocional entre esses clientes.
- Segmentar o mercado para um determinado nicho de produtos.
Figura 7 – Dados agrupados em três clusters
Fonte: Han, J; Kamber, M. (2006).
A aplicação de métodos de clusterização é apropriada se mais do que duas
variáveis devem ser consideradas ao mesmo tempo (FERREIRA; CAMPOS; SILVA.
2010, p. 1782).
As técnicas de agrupamento, ou clusterização, agrupam os dados em um espaço
de determinadas dimensões com o objetivo de aumentar a semelhança entre os registros
presentes em um grupo e minimizar a semelhança entre dois grupos diferentes (GARAI,
G; CHAUDHURI, B. 2004).
38
Para a correta execução de um algoritmo de clusterização é desejável que ele cumpra
alguns requisitos (FERREIRA; CAMPOS; SILVA, 2010, p. 1782 apud OLIVEIRA, 2007):
a) Escalabilidade: o algoritmo deve funcionar bem em bancos de dados de diferentes
tamanhos, desde pequenos até grandes.
b) Habilidade: o algoritmo precisa saber lidar com diferentes tipos de atributos, sejam
eles numéricos, categóricos, reais, entre outros.
c) Descoberta de grupos com formatos variados: alguns algoritmos tendem a
encontrar clusters esféricos com tamanho e densidade semelhantes. É importante
que o algoritmo consiga localizar grupos com formatos arbitrários.
d) Possibilidade para tratar ruídos: deve possuir habilidade para trabalhar com dados
que possuem ruídos. O algoritmo deve conseguir minerar em bases de dados com
valores discrepantes, desconhecidos, errados ou até mesmos nulos.
e) Multidimensionais: o algoritmo de clusterização precisa conseguir lidar com
bancos de dados multidimensionais, que são formados por relações entre as tabelas
dimensões e fatos.
Os resultados da aplicação da técnica de clusterização podem ser utilizados de duas
formas diferentes: na primeira o objetivo é produzir um sumário do banco de dados e na
segunda, a ideia é utilizar os registros resultantes como dados de entrada para demais técnicas
de mineração, como por exemplo, a classificação, tendo em vista que um cluster é um grupo
reduzido e que facilita o manuseio e tratamento por parte dos algoritmos de classificação
(MOURA, 2006).
A técnica de agrupamento, ou clusterização, é subjetiva por natureza. Um mesmo
conjunto de dados pode ser dividido de forma diferenciada para diferentes propósitos. Como
por exemplo, se forem considerados os animais tubarão, golfinho e leão, os golfinhos e os
leões formam um cluster de mamíferos. Porém, se o minerador está interessado na divisão
com base no habitat do animal, então golfinhos e tubarões devem ser agrupados (CASTRO,
2003).
39
Figura 8 – Cluster criado com animais mamíferos
Fonte: Autoria própria (2014).
Figura 9 – Cluster criado para animais marinhos
Fonte: Autoria própria (2014).
Em relação aos algoritmos utilizados na técnica de agrupamento, podem ser
classificados nas seguintes categorias:
2.5.1
Métodos de Particionamento
Conforme Mineração de Dados: Conceitos, Tarefas, Métodos e Ferramentas
(CAMILO, Cássio Oliveira; SILVA, João Carlos da. 2009, p. 17-18) consta que:
Dado um conjunto D de dados com n registros e k o número de agrupamentos
desejados, os algoritmos de particionamento organizam os objetos em k
agrupamentos, tal que k <= n. Os algoritmos mais comuns de agrupamento são: KMeans e K-Medoids.
40
Conforme Camilo e Silva (2009), o algoritmo K-Means utiliza o conceito do centroide.
Dado um conjunto de dados, o algoritmo K-Means seleciona arbitrariamente k registros, onde
cada um representa um cluster. Para cada registro restante, é calculada a similaridade entre o
registro analisado e o centro de cada agrupamento. O dado é inserido no cluster com a menor
distância, ou seja, maior similaridade. O centro do agrupamento é recalculado a cada inserção
de um novo elemento. Esse algoritmo pode ser utilizado com diferentes variações que
surgiram posteriormente, como algumas otimizações referentes à escolha do valor do k, novas
medidas de dissimilaridade e estratégias para o cálculo do centroide.
Figura 10 – Resumo das Etapas do Algoritmo K-Means
Fonte: Goldschmidt, R.; Passos, E. (2005).
41
A escolha do centroide (elemento central) inicial, além de poder ser realizada de forma
randômica, também pode ocorrer selecionando os k primeiros elementos do banco ou ainda
optar por k elementos aos quais seus valores sejam bem diferentes (RABELO, 2007).
A figura 11 apresenta um exemplo da execução do algoritmo de clusterização KMeans formando dois clusters com base nos elementos: 4, 7, 8, 2, 5, 3 e 9. Para definição dos
centroides nesse caso foram selecionados os dois primeiros registros e, posteriormente,
utilizou-se o valor da média para a formação de novos centroides (RABELO, 2007).
Figura 11 – Exemplo da aplicação do algoritmo K-Means
Fonte: Rabelo, Emerson (2007).
Nesse exemplo acima, inicialmente foram escolhidos os dois primeiros elementos (4 e
7) do conjunto para que formem dois clusters, sendo esses mesmos dois elementos utilizados
como centroide. A seguir é selecionado o próximo elemento (8) e verifica-se qual dos dois
centroides possui o valor mais próximo ao do elemento selecionado (8). O elemento
selecionado é inserido nesse cluster onde o centroide possui valor mais próximo e é então
recalculado o valor do centroide para esse grupo, onde se utiliza a média entre os dois
registros presentes (média dos elementos 7 e 8). Essa rotina acontece até o momento em que
se esgotam os elementos, terminando assim o processo. Como resultado, o grupo 1 possui os
elementos 4, 2, 5 e 3. Já o grupo 2 contém os elementos 7, 8 e 9 (RABELO, 2007).
O algoritmo K-Means apresenta atributos confiáveis, entretanto, são identificadas
algumas limitações:
42
- Não é possível determinar se existem realmente apenas k clusters distintos, um
problema que é comum a todos os algoritmos de clusterização (PINHEIRO, 2006).
- Uma desvantagem nesse algoritmo é o fato do minerador ter que especificar o
número de clusters com o qual se deseja trabalhar, sendo assim necessária a realização de
diversos experimentos e também possuir conhecimento apropriado em relação ao banco de
dados a ser minerado (GOLDSCHMIDT; PASSOS, 2005).
- Possui sensibilidade a ruídos (outliers), já que uma pequena quantidade de dados
inconsistentes ou de valores diferentes em relação ao conjunto de dados informado pode
influenciar significativamente na criação dos clusters (CARLANTONIO, 2001).
- Exige que os dados sejam do tipo numérico ou binário (HUANG, 1997).
Entre os algoritmos que surgiram através de variações do K-Means, um dos principais
é o algoritmo K-Medoids. Segundo Camilo e Silva (2009) ao invés de calcular o centro do
agrupamento e utilizar o resultado como referência, o K-Medoids trabalha com o conceito do
dado mais central do cluster. As variações mais conhecidas são os algoritmos PAM
(Partitioning Around Medoids) e CLARA (Clustering Large Applications).
2.5.2
Métodos Hierárquicos
De acordo com Ochi, Dias e Soares (2005), nos tradicionais algoritmos de
clusterização hierárquica os clusters são formados gradativamente através de aglomerações ou
divisões de elementos, gerando assim uma hierarquia de clusters, normalmente representada
por uma estrutura em árvore.
Nos algoritmos de aglomeração, que utilizam uma abordagem bottom-up, cada um dos
dados do conjunto é, inicialmente, associado a um cluster distinto e novos clusters vão sendo
criados pela união dos clusters existentes. Essa união entre os grupos acontece através de
alguma métrica que forneça a informação sobre quais os grupos estão mais próximos um dos
outros. Nos algoritmos de divisão, que utilizam uma abordagem top-down, inicia-se com um
único cluster contendo todos os elementos do conjunto e, a cada etapa, são efetuadas divisões,
criando novos clusters de tamanhos menores, conforme critérios pré-estabelecidos (OCHI;
DIAS; SOARES, 2005, p. 4).
A figura 12 exemplifica um modelo de clusterização hierárquica.
43
Figura 12 – Exemplo de árvore de clusters na clusterização hierárquica
Fonte: Ochi, Luiz Satoru; Dias, Calos Rodrigo; Soares, Stênio S. Furtado (2005).
2.5.3
Métodos Baseados na Densidade
Conforme Clusterização com Algoritmo Genético Baseado em Densidade e Grade
(FERREIRA, Fábio dos S; CAMPOS, Gustavo A. L. de; SILVA, Jackson S. de V. 2010, p.
1782-1783 apud HAN, J; KAMBER, M. 2002), diz que:
Os métodos baseados em densidade permitem descobrir grupos de formatos
arbitrários. Estes métodos consideram grupos como sendo regiões densas de objetos
no espaço de dados que são separados por regiões de baixa densidade, que
geralmente representam ruídos.
O DBSCAN (Density-Based Spatial Clustering of Applications with Noise) é um dos
principais algoritmos baseados em densidade. Ele consegue descobrir clusters de formatos
aleatórios em bases de dados espaciais e com ruídos, além de criar grupos de objetos em
regiões de alta densidade. Conforme o DBSCAN, um cluster é definido como um conjunto
máximo de pontos conectados por densidade (OLIVEIRA, 2007).
2.5.4
Métodos Baseados em Grade
Segundo Ferreira, Campos e Silva (2010, p. 1783 apud HAN, J; KAMBER, M. 2002):
Os métodos baseados em grade dividem os objetos em um número finito de células
que formam uma estrutura de grade multidimensional na qual todas as operações de
agrupamento são realizadas. A principal vantagem do método é que as operações
independem do número de objetos da base de dados, e sim do número de células da
44
estrutura da grade, o que melhora a desempenho dos algoritmos baseados nesta
heurística.
O CLIQUE (Clustering in Quest), algoritmo que utiliza os métodos de grade e de
densidade, fraciona cluster em subespaços (grade de células) para encontrar agrupamentos
suficientemente densos. Cada grade de células organiza um conjunto de dados, separando os
valores contínuos de cada objeto em um número de intervalos discretos. Por fim, cada atributo
é referenciado a uma célula a qual seu intervalo contém o valor original do atributo. Os
agrupamentos são formados a partir da junção de células densas adjacentes (OLIVEIRA,
2007).
2.5.5
Métodos Baseados em Modelo
Os algoritmos de clusterização com métodos baseados em modelos, como o próprio
nome sugere, cria um modelo para cada grupo e encontra a melhor maneira de preenchimento
dos dados para esse modelo. O algoritmo constrói clusters criando uma função densidade que
consegue refletir a distribuição espacial dos dados. Esse método também determina
automaticamente o número de clusters com base em métodos estatísticos e considera ainda o
ruído ou dado disperso na construção robusta de clusters (CASTRO, 2003).
45
3 TRABALHOS RELACIONADOS
Nesse capítulo é realizada uma revisão do referencial teórico, com um breve resumo
de outros trabalhos que serviram como motivação e apoio para o desenvolvimento dessa
monografia de conclusão de curso.
Em Camilo e Silva (2009) foram apresentados os conceitos mais importantes da
mineração de dados, as principais técnicas e também métodos de mineração. Ao final, é
exibida uma lista das principais ferramentas para minerar dados e, como parte das
considerações finais, conclui-se que mesmo com os bons resultados obtidos com a aplicação
da mineração de dados, os desafios ainda são muitos. Alguns problemas relacionados ao uso
da mineração, como a segurança dos dados e a privacidade dos indivíduos, juntamente com o
crescimento da complexidade das estruturas de banco de dados, criam cenários complexos e
desafiadores.
No trabalho de Lima (2005) foi apresentada uma análise comparativa dos algoritmos
de classificação j48.PART, OneR e DecisionTable sob o paradigma de regras de produção,
investigando os seus comportamentos utilizando três conjuntos de dados disponíveis na web.
A partir da mineração realizada com o software WEKA, foi possível fazer um comparativo
entre as predições dos três conjuntos de dados obtidos (íris, titanic e bandeiras). Foi notado
que cada um dos algoritmos apresentou um comportamento diferente ao apresentar os
resultados, onde o j48.PART representa o conhecimento através de regras de decisão
(baseadas em árvores de decisão), o OneR através de uma única regra com várias condições e
o DecisionTable através de tabelas de decisão. O algoritmo j48.PART apresentou a menor
taxa de erros para o conjunto chamado íris, porém, obteve a maior taxa de erros no conjunto
de dados bandeiras. Em outro exemplo, o algoritmo DecisionTable alcançou um
melhoramento na taxa de erros do conjunto de dados bandeiras, reduzindo a quantidade de
instâncias classificadas incorretamente, aumentando com isso a porcentagem de acerto para
geração das regras.
No estudo de Batista (2012) foi apresentado um sistema de detecção de eventos em
redes de computadores baseado em métodos não supervisionados para a detecção de
novidades (detecção de eventos sem o conhecimento prévio). Esse sistema utilizou como base
o padrão IPFIX (IP Flow Information Export) para exportação das informações sumarizadas
da rede. Foram escolhidos os algoritmos K-Means e X-Means, aplicados através da ferramenta
46
WEKA, e a rede neural SOM (Self-Organization Map), gerada por um algoritmo que realiza
as buscas dos dados em um banco de dados. O estudo consistiu em realizar ataques aleatórios
com intervalo de 5 minutos e duração de cerca de 1 minuto para cada ataque. Por fim, os três
métodos apresentaram diferente comportamentos, entretanto, foi possível observar uma maior
diferença no comportamento da rede neural SOM em relação aos outros dois algoritmos.
Referente a taxa de acertos, embora o K-Means tenha obtido uma taxa maior de acertos em
relação ao algoritmo X-Means, ele também obteve uma maior taxa de eventos falso-positivo.
Na comparação geral, a rede neural SOM obteve uma maior taxa de acertos e menor taxa de
falso-positivo e falso-negativo, obtendo assim um resultado melhor em relação ao K-Means e
X-Means.
Em Siviero e Júnior (2011) foram aplicados algoritmos supervisionados e não
supervisionados referentes às técnicas de classificação e clusterização dos parâmetros
indicados em uma seção de medidas no rio Atibaia/SP, visando a previsão da descarga sólida
transportada. A base de dados utilizada foi composta por quarenta medições contendo os
parâmetros vazão, declividade da linha d’água, raio hidráulico, largura do espelho d’água e a
descarga sólida transportada no leito e em suspensão, durante o período de 1993 a 1994. Os
algoritmos utilizados foram C4.5, Naive Bayes, Regressão Lógica (RL) e ExpectationMaximization (EM). Os resultados foram obtidos através do software WEKA. Nesse trabalho
o algoritmo Naive Bayes alcançou a melhor colocação em comparação às classificações
realizadas pelo C4.5 e Regressão Lógica. Já o algoritmo EM conseguiu formar cinco grupos,
com os registros divididos nas seguintes porcentagens: 17,5%, 17,5%, 17,5%, 20% e 27,5%.
De acordo com Ferreira, Campos e Silva (2010), os algoritmos genéticos são
amplamente utilizados nas tarefas de análise de clusterização, porém, a sua utilização é
geralmente encontrada na literatura baseada na metodologia de densidade para a criação dos
clusters. Já a metodologia de grade traz como vantagem a elaboração de grupos de formatos
arbitrários e com um menor tempo computacional. Foi realizada então a aplicação da técnica
de divisão da base de dados em grade para dois conjuntos de dados: Auto-mpg (392 objetos
divididos em 3 grupos) e Iris (150 objetos divididos em 3 grupos). O algoritmo de
clusterização K-Means, disponibilizado pela ferramenta WEKA, foi utilizado para
comparação com o algoritmo genético apresentado pelos autores. O resultado obtido com a
mineração na base Auto-mpg mostrou que o algoritmo genético encontrou resultados mais
próximos ao conjunto original, embora tenha demorado 161 segundos para ser totalmente
47
executado, enquanto o K-Means executou as mesmas 200 iterações com um tempo total de
menos de 1 segundo. Já na mineração da base Iris foi notável a vantagem do algoritmo KMeans em relação ao algoritmo genético, sendo que o K-Means conseguiu um resultado mais
semelhante ao conjunto original de dados e concluiu as 100 iterações em menos de 1 segundo,
enquanto o algoritmo genético utilizou 16 segundos para realizar o mesmo procedimento.
No trabalho de Dallanora (2009) é apresentado de forma conceitual, todo o processo
da descoberta de conhecimento em banco de dados, dando ênfase à etapa de mineração de
dados, sob a qual é desenvolvido um estudo de caso visando a solução para um problema de
identificação do perfil de clientes em um cenário real de uma empresa. Para tal, foi realizado
um trabalho de reconhecimento a respeito da base de dados da companhia, identificando suas
relações e seus atributos. Utilizou-se o software Microsoft Visual Studio 2005, do qual foram
utilizados os algoritmos Árvore de Decisão da Microsoft, Microsoft Clustering, Microsoft
Association Rules e Microsoft Naive Bayes. Entre os principais resultados obtidos, destaque
para o algoritmo Microsoft Clustering, que foi parametrizado para encontrar quatro clusters e,
em cada um deles, conseguiu-se identificar algumas particularidades. No primeiro grupo
ficaram agrupados os clientes onde a grande maioria pertence ao estado civil solteiro. O
segundo grupo concentrou clientes que possuem a característica de serem aposentados. Já o
terceiro e quarto clusters possuíram características semelhantes em relação ao estado civil,
onde ambos tiveram em sua maioria a condição de casados, porém, o que diferenciou os dois
grupos foi a renda, tendo em vista que no terceiro cluster a renda é de dois salários e no
quarto cluster esse atributo representa 3 salários.
48
4 METODOLOGIA
Neste capítulo é descrita a metodologia utilizada no desenvolvimento do trabalho. Ela
abrange a aplicação de métodos não supervisionados em dados oriundos do software Octave
(versão 3.6.1), o qual é o responsável pela geração desses registros com distribuições
específicas para que possam compor atributos relevantes para uma base de dados fictícia.
Esses dados são subdivididos em grupos que seguem critérios previamente parametrizados a
fim de possuírem diferenças entre clusters e semelhanças internas entre os registros de um
mesmo grupo. Após a etapa inicial de seleção dos dados, segue-se para a fase de
transformação dos dados em formato de arquivo compatível com o software WEKA (versão
3.6.11), que é o encarregado de realizar a terceira etapa desse processo: a mineração de dados.
A mineração dos dados pela ferramenta WEKA utiliza nesse trabalho os algoritmos
Simple K-Means, X-Means e o Expectation-Maximization (EM), que foram escolhidos com
base em informações relevantes pesquisadas na literatura a respeito de suas utilizações
constantes em trabalhos acadêmicos e também ao fato de estarem disponíveis gratuitamente
no software WEKA.
Por fim, é realizada a etapa de interpretação e validação dos resultados através do
comparativo entre os clusters construídos pela ferramenta WEKA com os grupos gerados
inicialmente pelo software Octave. Essa análise envolve o percentual da taxa média de erros
para cada atributo.
4.1 Ambiente de trabalho
Nesse trabalho foram utilizados como instrumentos para suporte, além do referencial
literário, um Ultrabook Acer com processador Intel Core i3-3227U 1.90 GHz, memória de 4
GB DD3 1333 MHz, disco rígido de 500 GB (Serial SATA) e 20 GB (SSD) e sistema
operacional Windows 8.1 Single Language. Também fizeram parte os softwares Octave,
distribuído sob os termos da GNU General Public Licence, e o WEKA, desenvolvido pela
Universidade de Waikato e, assim como o Octave, uma ferramenta gratuita e emitida sob a
GNU General Public Licence.
49
4.1.1 Octave
O aplicativo Octave possui uma linguagem de alto nível interpretada, destinando-se
principalmente à computação numérica. Ele fornece recursos para a solução de problemas
lineares e não lineares, além de também possibilitar a realização de outros experimentos
numéricos. Esse software oferece também uma extensa variedade de gráficos para
visualização e manipulação de dados. O Octave é utilizado normalmente por meio de sua
interface de linha de comando interativa, mas também pode ser usado para escrever
programas não interativos. A linguagem Octave é muito similar ao Matlab, facilitando assim a
portabilidade entre diversos programas (OCTAVE, GNU. 2014).
Entre as muitas possibilidades encontradas no software para a solução numérica, podese citar a solução de problemas de álgebra linear comuns, o encontro das raízes de equações
não lineares, a integração de funções ordinárias e a manipulação de polinômios. O Octave é
facilmente extensível e pode ser utilizado tanto em sistemas Windows, Mac OS X e também
sistemas Linux. Pode ser personalizável através de funções definidas pelo usuário em
linguagem própria do sistema ou utilizando módulos carregados dinamicamente escritos em
C++, C, Fortran ou outras linguagens (OCTAVE, GNU. 2014).
A versão do aplicativo Octave utilizada nesse trabalho é a 3.6.1.
4.1.2 Arquivo ARFF
Para uma boa mineração de dados é necessário que os dados a serem utilizados
estejam dispostos de forma organizada. Esses arquivos podem estar disponíveis em algum
formato específico de estrutura de dado, planilha ou base de dados. A ferramenta WEKA,
utilizada nesse trabalho para realizar a etapa de data mining, possui um formato denominado
ARFF para a organização dos dados. Neste arquivo é importante estarem presentes várias
informações, dentre elas: o domínio do atributo, os valores que os atributos podem representar
e o atributo classe (DAMASCENO, Marcelo. 2010).
O arquivo ARFF é dividido em três partes. Na primeira linha do arquivo, denominada
Relação, é necessário conter a identificação da relação ou então a técnica que está submetida
ao estudo, sendo antecedida da expressão @relation. A segunda parte do arquivo é chamada
de Atributos. Nela consta a lista de atributos separados um abaixo do outro, onde cada linha
50
inicia com @attribute acompanhada do nome do atributo e seguida do seu tipo, que pode ser
em formato nominal (valores dentro de chaves e separados por vírgula) ou numérico (apenas
o nome seguido pelo tipo de dado). A terceira e última parte denomina-se Dados, e é onde se
listam os dados correspondentes aos atributos. Essa parte inicia-se com uma linha simples
contendo a expressão @data. Cada linha representa uma instância e deve possuir os seus
valores separados por vírgula e correspondentes, na mesma ordem, aos atributos descritos na
secção Atributos. Caso algum atributo não possua valor, o mesmo deve ser identificado pelo
caractere ‘?’ (MACHADO, Vinícius P. et al. 2011).
Figura 13 – Exemplo de arquivo ARFF
Fonte: Autoria própria (2014).
4.1.3 WEKA
O software WEKA (Waikato Environment for Knowledge Analysis) é uma ferramenta
de KDD que abrange uma série de algoritmos de preparação de dados, de aprendizagem de
máquina (mineração) e de validação de resultados. Foi desenvolvido na Universidade de
Waikato, na Nova Zelândia, sendo escrito em linguagem Java e possuindo código aberto
disponível na Web (http://www.cs.waikato.ac.nz/ml/weka/downloading.html). Os seus
desenvolvedores lançam periodicamente correções e releases do software, além de manterem
uma lista de discussões a respeito da ferramenta. Grande parte dos componentes da aplicação
é resultante de teses e dissertações de grupos de pesquisa dessa universidade. No início, o
desenvolvimento do software visava a investigação de técnicas de aprendizagem de máquina,
enquanto sua aplicação inicial foi direcionada para a agricultura, uma área chave na economia
51
da Nova Zelândia. Atualmente o WEKA é muito difundido no meio acadêmico e seus
recursos são amplamente utilizados em vários países. É possível encontrar também uma
abrangente documentação online do código fonte que foi disponibilizada pelos
desenvolvedores. Por ser escrito em Java, o código pode ser processado em diferentes
plataformas, entre elas, Windows, Mac OS X e Linux, conferindo uma boa portabilidade ao
software (SILVA, Marcelino P. S. 2004).
Após a instalação da ferramenta WEKA, não é necessário fazer praticamente nenhuma
configuração adicional para a sua execução. Existem apenas algumas pequenas
parametrizações que são necessárias para a utilização de alguns algoritmos específicos e
também para o acesso a banco de dados através de JDBC (Java Database Connectivity)
(DAMASCENO, Marcelo. 2010).
A utilização do WEKA pode ocorrer de três diferentes maneiras: interface gráfica,
linha de comando e através de sua API (Application Programming Interface). A interface
gráfica fornece muitas ferramentas para os seus usuários através de um conjunto de abas e
janelas. A linha de comando é um meio utilizado para dar mais agilidade nos processos
repetitivos e possibilita o acesso direto a funcionalidades que teriam mais passos a serem
executados, caso fossem acessados via interface gráfica. A opção de acesso via API é
utilizada por desenvolvedores de software porque fornece um meio prático para o uso das
funcionalidades implementadas no WEKA (DAMASCENO, Marcelo. 2010).
4.2 Geração dos Dados
Possuir um bom conhecimento a respeito da base de dados a ser minerada e também
em relação ao que se deseja buscar é algo fundamental em mineração de dados. Nesse
trabalho foram gerados os dados para simulação de registros de um banco de dados de uma
operadora de planos de saúde fictícia, que possui um hospital próprio e que gostaria de
encontrar soluções para a identificação de seus beneficiários em relação a duas questões
relevantes para o seu plano de negócio: qual a faixa etária de beneficiários que é responsável
pelo maior número de atendimentos hospitalares e, analisando o banco de dados, a operadora
gostaria de saber se é possível criar alguma relação entre a quantidade de atendimentos do
beneficiário em um ano, a distância entre a residência dele até o hospital e o valor de suas
52
mensalidades nesse mesmo período anual. Para forma de contexto nessa metodologia, essas
duas questões foram denominadas respectivamente como sendo objetivo 1 e objetivo 2.
Para iniciar o processo de geração dos dados referente ao primeiro objetivo, ficou
definido que iriam ser realizadas nove diferentes simulações, com o intuito de poder
visualizar se ocorre alguma vantagem ou desvantagem na mineração de dados em uma base
com três mil registros em comparação a outra com dez mil registros, por exemplo. Com base
nisso, os nove bancos de dados que foram gerados e os seus respectivos algoritmos
desenvolvidos para utilização no software Octave são:
•
1º banco de dados: 3 clusters com diferentes faixas etárias (5, 25 e 75), desvio da faixa
etária igual a 5 e 1000 registros em cada cluster. Total de três mil registros;
Figura 14 – Script do primeiro banco de dados
Fonte: Autoria própria (2014).
•
2º banco de dados: 5 clusters com diferentes faixas etárias (5, 25, 45, 75 e 95), desvio
da faixa etária igual a 5 e 1000 registros em cada cluster. Total de cinco mil registros;
Figura 15 – Script do segundo banco de dados
Fonte: Autoria própria (2014).
•
3º banco de dados: 10 clusters com diferentes faixas etárias (5, 15, 25, 35, 45, 55, 65,
75, 85 e 95), desvio da faixa etária igual a 5 e 1000 registros em cada cluster. Total de
dez mil registros;
53
Figura 16 – Script do terceiro banco de dados
Fonte: Autoria própria (2014).
•
4º banco de dados: 5 clusters com diferentes faixas etárias (5, 25, 45, 75 e 95), desvio
da faixa etária igual a 3 e 1000 registros em cada cluster. Total de cinco mil registros;
Figura 17 – Script do quarto banco de dados
Fonte: Autoria própria (2014).
•
5º banco de dados: 5 clusters com diferentes faixas etárias (5, 25, 45, 75 e 95), desvio
da faixa etária igual a 5 e 1000 registros em cada cluster. Total de cinco mil registros;
Figura 18 – Script do quinto banco de dados
Fonte: Autoria própria (2014).
54
•
6º banco de dados: 5 clusters com diferentes faixas etárias (5, 25, 45, 75 e 95), desvio
da faixa etária igual a 7 e 1000 registros em cada cluster. Total de cinco mil registros;
Figura 19 – Script do sexto banco de dados
Fonte: Autoria própria (2014).
•
7º banco de dados: 3 clusters com diferentes faixas etárias (5, 25 e 75), desvio da faixa
etária igual a 5 e diferentes quantidades de registros em cada cluster (200, 500 e
1000). Total de mil e setecentos registros;
Figura 20 – Script do sétimo banco de dados
Fonte: Autoria própria (2014).
•
8º banco de dados: 5 clusters com diferentes faixas etárias (5, 25, 45, 75 e 95), desvio
da faixa etária igual a 5 e diferentes quantidades de registros em cada cluster (200,
300, 500, 1000 e 2000). Total de quatro mil registros;
Figura 21 – Script do oitavo banco de dados
Fonte: Autoria própria (2014).
55
•
9º banco de dados: 10 clusters com diferentes faixas etárias (5, 15, 25, 35, 45, 55, 65,
75, 85 e 95), desvio da faixa etária igual a 5 e diferentes quantidades de registros em
cada cluster (200, 300, 500, 1000, 1200, 1300, 1500, 2000, 2200 e 2300). Total de
doze mil e quinhentos registros.
Figura 22 – Script do nono banco de dados
Fonte: Autoria própria (2014).
Nota-se que o atributo sexo se fez presente nos nove scripts, pois se trata de um
registro muito comum em bancos de dados de clientes, porém, esse mesmo atributo foi
descartado posteriormente na etapa de mineração de dados por ser um elemento que não iria
trazer relevância aos objetivos traçados pela operadora de saúde, a qual preferiu não
classificar os beneficiários com base no sexo.
Por fim, desenvolveu-se um script com a função denominada gera_grupo_idade_obj1,
a qual recebe como parâmetros: s (sexo do beneficiário), idade, desvio, quant (quantidade de
registros no cluster) e arquivo (variável que recebe os atributos). Foi utilizado o comando
normrnd, referente à distribuição normal univariada, para que pudesse ocorrer a geração
randômica dos atributos utilizados no algoritmo. Como o atributo idade não pode possuir
nenhum valor menor que zero, então foi inserido um comando if declarando que para as
situações onde a função produzir dados com valores menores que zero, esses serão tratados
como sendo igual a zero.
56
Figura 23 – Script com a função gera_grupo_idade_obj1
Fonte: Autoria própria (2014).
No processo de geração dos dados referente ao segundo objetivo, que é a descoberta
de uma possível relação entre a quantidade de atendimentos do beneficiário em um ano, a
distância entre a sua residência até o hospital e o valor de suas mensalidades nesse mesmo
período, ficou definido que iriam ser realizadas três simulações distintas, com o objetivo de,
assim como foi feito no objetivo 1, poder ser comparadas as três bases de dados criadas e seus
respectivos resultados após execução dos algoritmos de clusterização. A partir de então, os
três bancos de dados que foram gerados e os seus respectivos algoritmos são:
•
1º banco de dados: 3 clusters com diferentes quantidades de atendimentos (6, 60 e
120), desvio dos atendimentos igual a 3, diferentes distâncias entre residência e
hospital (30, 150 e 90), desvio da distância igual a 30, diferentes valores de
mensalidade em um ano (10800, 6000 e 2400), desvio do valor anual igual a 100 e
diferentes quantidades de registros em cada cluster (500, 1000 e 1500). Total de três
mil registros;
Figura 24 – Script do primeiro banco de dados do objetivo 2
Fonte: Autoria própria (2014).
•
2º banco de dados: 5 clusters com diferentes quantidades de atendimentos (6, 12, 60,
84 e 120), desvio dos atendimentos igual a 3, diferentes distâncias entre residência e
hospital (9, 3, 5, 7 e 1), desvio da distância igual a 1, diferentes valores de
57
mensalidade em um ano (10800, 3000, 6000, 8400 e 2400), desvio do valor anual
igual a 100 e diferentes quantidades de registros em cada cluster (1000, 125, 1500,
125 e 500). Total de três mil duzentos e cinquenta registros;
Figura 25 – Script do segundo banco de dados do objetivo 2
Fonte: Autoria própria (2014).
•
3º banco de dados: 6 clusters com diferentes quantidades de atendimentos (6, 12, 36,
60, 84 e 120), desvio dos atendimentos igual a 3, diferentes distâncias entre residência
e hospital (2, 6, 10, 14, 18 e 22), desvio da distância igual a 2, diferentes valores de
mensalidade em um ano (2400, 3000, 3600, 6000, 8400 e 10800), desvio do valor
anual igual a 100 e diferentes quantidades de registros em cada cluster (1000, 125,
250, 500, 125 e 1500). Total de três mil e quinhentos registros.
Figura 26 – Script do terceiro banco de dados do objetivo 2
Fonte: Autoria própria (2014).
Para o objetivo 2 foi desenvolvido um script com a função denominada
gera_grupo_obj2, a qual recebe como parâmetros: qevento (quantidade de atendimentos do
beneficiário em um ano), desvio_qevento (desvio padrão para a quantidade de eventos),
distancia (valor em km da distância da residência até o hospital), desvio_dist (desvio padrão
58
para a distância), valor (total em reais gasto com as mensalidades durante 1 ano),
desvio_valor (desvio padrão para o valor total das mensalidades), quant (quantidade de
registros no cluster) e arquivo (variável que recebe os atributos). Assim como foi feito no
objetivo 1, foi utilizado o comando normrnd, referente à distribuição normal univariada, para
que pudesse ocorrer a geração randômica dos atributos utilizados no algoritmo e, também,
cláusulas if, declarando que para as situações onde a função produzir dados com valores
menores que zero, esses serão tratados como sendo igual a zero.
Figura 27 – Script com a função gera_grupo_idade_obj2
Fonte: Autoria própria (2014).
Após a etapa de elaboração dos algoritmos para geração dos dados referentes ao
objetivo 1 e objetivo 2, foi utilizado o software Octave para execução dos mesmos. Na figura
28 é possível visualizar um dos arquivos .txt gerados pelo aplicativo Octave, os quais
passarão pela etapa de transformação dos dados onde serão convertidos para o formato .arff e,
a partir de então, utilizados na ferramenta WEKA.
59
Figura 28 – Arquivo .txt gerado pelo Octave com os atributos sexo e idade
Fonte: Autoria própria (2014).
Ao término da geração de todos os arquivos .txt do objetivo 1 e também do objetivo 2
através do software Octave, a etapa seguinte é a de transformação dos dados.
4.3 Transformação dos Dados
Nessa fase foram incluídos manualmente nos arquivos .txt o cabeçalho padrão,
composto por três partes (relação, atributos e dados), para que fosse possível a leitura correta
pela ferramenta WEKA. Essa inclusão é uma atividade simples e que não requer muito
esforço. A figura 29 exemplifica um arquivo .txt com o cabeçalho já adicionado. Note que o
minerador necessita conhecer o tipo de dado com o qual estará trabalhando, para que assim
possa classificar o atributo (nominal ou numérico) de maneira correta.
60
Figura 29 – Arquivo .txt com o cabeçalho adicionado
Fonte: Autoria própria (2014).
Depois que os cabeçalhos são inseridos no arquivo, chega a etapa onde o formato .txt é
convertido para o formato .arff. Em pesquisas realizadas no acervo teórico foram descobertas
mais de uma maneira para ser realizada essa conversão, porém, a escolha pela mais adequada
irá depender da preferência de quem irá realizar a mineração. Nesse trabalho optou-se por
utilizar o recurso Simple CLI (Command Line Interface) presente na própria ferramenta
WEKA, o qual utiliza um terminal de linha de comando para a execução de algumas ações.
Na figura 30 pode-se observar a tela inicial do Simple CLI com o seguinte comando:
java
weka.core.converters.TextDirectoryLoader
-dir
(diretório\arquivo.txt)
>
(diretório\arquivo.arff), onde deve-se substituir os parênteses e o seu conteúdo interno pelo
caminho onde encontra-se o arquivo .txt e também o caminho onde deseja-se salvar o arquivo
em formato .arff, respectivamente.
61
Figura 30 – Simple CLI com o comando de conversão de arquivos
Fonte: Autoria própria (2014).
Caso ocorra alguma falha na execução desse comando como, por exemplo, não ser
possível localizar o diretório selecionado, através de pesquisas no referencial teórico são
encontradas possíveis razões para tal, entre elas, a versão utilizada do WEKA, que pode não
ser uma versão estável ou definitiva, ou então alguma incompatibilidade entre a ferramenta e
o Java VM (Virtual Machine) instalado no computador. É importante lembrar que a versão da
ferramenta WEKA utilizada nesse trabalho é a 3.6.11 (versão estável) e que requer a presença
do Java VM 1.6 ou superior. Se o comando para a conversão de arquivos funcionar
corretamente, será possível visualizar no diretório selecionado um novo arquivo com os
dados, dessa vez, em formato .arff, pronto para ser utilizado na aplicação WEKA.
62
Figura 31 – Arquivos .arff e .txt no mesmo diretório
Fonte: Autoria própria (2014).
4.4 Algoritmos de Clusterização
A ferramenta WEKA é formada por um grupo de pacotes, que são: Preprocess
(seleção dos dados para mineração via arquivo, URL, banco de dados ou geração por
comandos), Classify (algoritmos de classificação, com aprendizagem supervisionada), Cluster
(algoritmos de clusterização, com aprendizagem não supervisionada), Associate (algoritmos
de associação, com aprendizagem não supervisionada), Select Attributes (seleção de atributos
e métodos) e Visualize (visualização gráfica dos atributos selecionados) (SMIDERLE;
OLIVEIRA, 2005).
No grupo Cluster, o qual corresponde a técnica escolhida para aplicação nesse
trabalho, é possível encontrar os algoritmos Clope, Cobweb, DbSscan, EM, Farthest First,
Filtered Clusterer, Hierarchical Clusterer, Make Density Based Clusterer, Optics, Sib,
Simple K-Means e o X-Means. Para o desenvolvimento desse trabalho foram utilizados os
algoritmos EM, Simple K-Means e o X-Means. Essa escolha foi realizada com base no
material bibliográfico encontrado que serviu para esclarecer de maneira consistente o
funcionamento desses três algoritmos em específico, além é claro da sua ampla utilização em
outros trabalhos e estudos universitários e, também, pelo fato deles conseguirem satisfazer a
tarefa de identificar (de forma pré-parametrizada ou automática) a quantidade de clusters em
cada banco de dados. A figura 32 exibe como são visualizados os dados de um arquivo .arff
aberto na aba Preprocess, da ferramenta WEKA.
63
Figura 32 – Arquivo .arff aberto no WEKA
Fonte: Autoria própria (2014).
4.4.1 Simple K-Means
O algoritmo K-Means, também chamado no WEKA como Simple K-Means, é um
método heurístico clássico da literatura e que possui um algoritmo de aprendizagem que
organiza N objetos da base de dados em K agrupamentos, onde cada grupo representa um
cluster. O método K-Means é um algoritmo simples, escalável e que pode ser facilmente
alterado para trabalhar com fluxos de dados maiores em grandes bancos de dados (NALDI,
2011).
O algoritmo básico trabalha com o conceito de centroide e inicializa os clusters por
meio de um conjunto de k protótipos, ou seja, pontos que representam estes grupos, que é um
valor especificado pelo usuário. Cada ponto é atribuído ao centroide mais próximo, e
cada conjunto de pontos atribuídos em um centroide é identificado como um cluster. O
centroide de cada cluster é atualizado baseado em cada novo ponto atribuído ao grupo. Os
passos de atribuição e atualização são repetidos até que os centroides não se alterem. (TAN;
64
STEINBACH; KUMAR, 2006). A figura 10, presente na seção 2.5.1 do capítulo 2 desse
trabalho, apresenta de forma visual a rotina executada pelo algoritmo K-Means.
Para uma correta execução do algoritmo Simple K-Means na ferramenta WEKA, foi
necessário o conhecimento do minerador a respeito de quantos clusters seriam necessários
serem gerados na mineração, tendo em vista que esse algoritmo torna obrigatória essa
informação pré-parametrizada, como exibido na figura 33. Como o primeiro banco de dados
do objetivo 1 gerada pelo Octave possui três clusters, esse valor é inserido no campo
numClusters, dentro das configurações do algoritmo Simple K-Means. Essa rotina de
identificação do número dos clusters segue a mesma regra para os demais bancos de dados do
objetivo 1 e 2, para esse primeiro algoritmo de clusterização.
Figura 33 – Parametrização do número de clusters no Simple K-Means
Fonte: Autoria própria (2014).
65
Figura 34 – Resultado obtido no primeiro banco de dados com Simple K-Means
Fonte: Autoria própria (2014).
4.4.2 X-Means
O algoritmo X-Means é uma extensão do algoritmo K-Means. Ele foi criado para gerar
uma partição do conjunto de dados por meio do uso do K-Means. O algoritmo recebe como
parâmetro de entrada um banco de dados que será particionado e também um intervalo de
números que indicam o número mínimo e o número máximo de clusters que a base deve ser
particionada (NALDI, 2011).
Em regra, o algoritmo inicia com k igual ao limite inferior do intervalo dado e
continua adicionando centroides onde são necessários, até que o limite superior seja alcançado
(PELLEG; MOORE, 2000). O funcionamento do algoritmo X-Means pode ser descrito da
seguinte forma (BATISTA, Maira Lambort, 2012):
1: Inicialize o algoritmo por meio da aplicação do K-Means ao conjunto de dados de
forma a gerar uma partição com o número mínimo de clusters;
2: Avalie a partição resultante;
3: Repita;
4: Divida cada cluster em 2 por meio do K-Means;
66
5: Avalie as divisões e mantenha as que geraram as melhores partições;
6: Se nenhuma partição foi mantida faça;
7: Divida uma proporção dos grupos formados inicialmente, a partir das divisões que
resultem nas melhores avaliações;
8: Aplique o algoritmo K-Means para refinamento da partição resultante;
9: Se a partição resultante for a melhor faça;
10: Armazena a partição;
11: Até que a partição possua o número máximo de clusters;
12: Retorne a melhor partição encontrada.
Como o algoritmo X-Means permite parametrizar o número mínimo e máximo de
clusters para serem formados, a sua execução na ferramenta WEKA ocorreu em duas etapas.
Na primeira foi inserido, assim como no Simple K-Means, o mesmo número de clusters
definido no software Octave. Na segunda parte foi definido o valor mínimo sendo 1 e o valor
máximo para a quantidade de clusters sendo 15, com o objetivo de fazer com que o próprio
algoritmo formasse a quantidade de grupos que achasse correta em relação as semelhanças
entre os dados. Esse critério também foi utilizado para todos os bancos de dados dos objetivos
1 e 2.
Figura 35 – Parametrização do número de clusters no X-Means
Fonte: Autoria própria (2014).
67
Figura 36 – Resultado obtido no primeiro banco de dados com X-Means
Fonte: Autoria própria (2014).
4.4.3 Expectation-Maximization (EM)
Para realizar os agrupamentos, o algoritmo EM (Expectation-Maximization) tem a
característica de exibir uma medida de verossimilhança para cada cluster. Além disso, esse
algoritmo permite que o número de grupos desejados seja ou não informado (BRANDÃO;
RAMOS; TRÓCCOLI, 2003).
Nos casos em que o minerador informa o número de clusters que deseja criar, basta
inserir esse valor no campo numClusters, dentro dos parâmetros do EM na ferramenta
WEKA. Para as situações em que se deseja que o algoritmo descubra automaticamente o
número de grupos, é necessário parametrizar esse campo com o valor -1.
Na execução do algoritmo EM através do WEKA seguiu-se uma regra semelhante à
definida na rotina de mineração com o algoritmo X-Means. Em uma primeira etapa foi
parametrizado o campo numClusters com o valor -1 (um negativo), com o intuito de fazer
com que o algoritmo de clusterização encontrasse a quantidade de clusters que achasse correta
para agrupar os dados semelhantes. Na segunda parte o algoritmo EM foi configurado com o
68
campo numClusters sendo equivalente ao número de grupos gerados no Octave. Essa mesma
regra também foi aplicada para as demais bases de dados dos objetivos 1 e 2.
Figura 37 – Parametrização do número de clusters no EM
Fonte: Autoria própria (2014).
Figura 38 – Resultado obtido no primeiro banco de dados com EM
Fonte: Autoria própria (2014).
69
4.5 Elaboração da Taxa de Erros
Para facilitar a compreensão a respeito da elaboração da taxa de erros sob os
resultados obtidos com os algoritmos Simple K-Means, X-Means e EM, foram retomados
nesse momento os doze bancos de dados gerados no software Octave, lembrando que os nove
primeiros bancos referem se ao objetivo 1 e as bases de dados 10, 11 e 12 são pertencentes ao
objetivo 2.
Tabela 1 – Primeiro banco de dados
Idade Desvio Padrão Atendimentos
5
5
1000
25
5
1000
75
5
1000
Fonte: Autoria própria (2014).
Tabela 2 – Segundo banco de dados
Idade Desvio Padrão Atendimentos
5
5
1000
25
5
1000
45
5
1000
75
5
1000
95
5
1000
Fonte: Autoria própria (2014).
Tabela 3 – Terceiro banco de dados
Idade Desvio Padrão Atendimentos
5
5
1000
15
5
1000
25
5
1000
35
5
1000
45
5
1000
55
5
1000
65
5
1000
75
5
1000
85
5
1000
95
5
1000
Fonte: Autoria própria (2014).
70
Tabela 4 – Quarto banco de dados
Idade Desvio Padrão Atendimentos
5
3
1000
25
3
1000
45
3
1000
75
3
1000
95
3
1000
Fonte: Autoria própria (2014).
Tabela 5 – Quinto banco de dados
Idade Desvio Padrão Atendimentos
5
5
1000
25
5
1000
45
5
1000
75
5
1000
95
5
1000
Fonte: Autoria própria (2014).
Tabela 6 – Sexto banco de dados
Idade Desvio Padrão Atendimentos
5
7
1000
25
7
1000
45
7
1000
75
7
1000
95
7
1000
Fonte: Autoria própria (2014).
Tabela 7 – Sétimo banco de dados
Idade Desvio Padrão Atendimentos
5
5
200
25
5
500
75
5
1000
Fonte: Autoria própria (2014).
Tabela 8 – Oitavo banco de dados
Idade Desvio Padrão Atendimentos
5
5
200
25
5
300
45
5
500
75
5
1000
95
5
2000
Fonte: Autoria própria (2014).
71
Tabela 9 – Nono banco de dados
Idade Desvio Padrão Atendimentos
5
5
200
15
5
300
25
5
500
35
5
1000
45
5
1200
55
5
1300
65
5
1500
75
5
2000
85
5
2200
95
5
2300
Fonte: Autoria própria (2014).
Tabela 10 – Décimo banco de dados
Atendimentos
6
60
120
Desvio
Padrão
Eventos
3
3
3
Distância
30
150
90
Desvio
Padrão
Distância
30
30
30
Somatório de
Mensalidades
10800
6000
2400
Desvio
Padrão
Mensalidades
100
100
100
Qtde.
Registros
500
1000
1500
Fonte: Autoria própria (2014).
Tabela 11 – Décimo primeiro banco de dados
Atendimentos
6
12
60
84
120
Desvio
Padrão
Eventos
3
3
3
3
3
Distância
9
3
5
7
1
Desvio
Padrão
Distância
1
1
1
1
1
Somatório de
Mensalidades
10800
3000
6000
8400
2400
Desvio
Padrão
Mensalidades
100
100
100
100
100
Qtde.
Registros
1000
125
1500
125
500
Fonte: Autoria própria (2014).
Tabela 12 – Décimo segundo banco de dados
Atendimentos
6
12
36
60
84
120
Desvio
Padrão
Eventos
3
3
3
3
3
3
Distância
2
6
10
14
18
22
Desvio
Padrão
Distância
2
2
2
2
2
2
Somatório de
Mensalidades
2400
3000
3600
6000
8400
10800
Fonte: Autoria própria (2014).
Desvio
Qtde.
Padrão
Registros
Mensalidades
100
1000
100
125
100
250
100
500
100
125
100
1500
72
Note que o segundo e o quinto banco de dados são idênticos. Essa situação ocorreu
devido ao fato de que no objetivo 1, as três primeiras bases de dados foram tratadas para que
possuíssem diferentes quantidades de clusters entre elas. Já para os bancos 4, 5 e 6 o critério
escolhido foi de que possuíssem diferentes desvios padrões entre uma base e outra e, por fim,
no sétimo, oitavo e nono banco de dados a regra escolhida foi para que tivessem diferentes
quantidades de atendimentos. Esses diferentes critérios tornam possíveis os testes com bancos
de dados com padrões variados e que, no momento em que se encontram dois repositórios de
dados iguais, pode-se analisar se a clusterização desses registros ocorre também de forma
idêntica para ambos os casos.
Após a execução no WEKA dos três algoritmos de clusterização, sendo que o XMeans e o EM foram executados de duas maneiras diferentes (uma com o número de clusters
pré-definido e outra com busca automática desse valor), para os doze bancos de dados gerados
no Octave, foi criado um arquivo .xlsx no programa Microsoft Excel 2010 onde ficaram
armazenados todos esses registros. É através da utilização dessa planilha que foi implantada a
fórmula para cálculo da taxa de erros, como pode ser visto nesse exemplo da tabela abaixo:
Tabela 13 – Taxa de erros após execução do Simple K-Means no primeiro banco de dados
Idade Atendimentos
5,16
24,89
74,57
1036
964
1000
MÉDIA:
Taxa de Erros
Idade (%)
3,20
0,44
0,57
1,40
Taxa de Erros
Atendimentos (%)
3,60
3,60
0,00
2,40
Fonte: Autoria própria (2014).
Percebe-se nesse exemplo da tabela 13 que com a execução do algoritmo Simple KMeans nos registros do primeiro banco de dados (3 clusters com 1000 registros em cada um e
faixas etárias de 5, 25 e 75 anos), os dados encontrados para os grupos estão muito próximos
aos gerados no Octave. Com isso a taxa de erros acaba sendo pequena para os dois atributos,
quando comparada com outras taxas de erros encontradas em outros bancos de dados e que
serão vistas adiante, no capítulo 5. Essa taxa é calculada através da seguinte fórmula:
((ABS(valorFinal - valorOriginal))/valorOriginal)*100
73
Nessa fórmula, o comando ABS faz com que se retornem valores absolutos (sem
sinais), a variável valorFinal refere-se ao valor encontrado pelo WEKA e valorOriginal
remete-se ao valor existente para esse mesmo atributo no banco de dados original, gerado pelo
Octave. Como exemplo, podemos pegar o atributo idade da tabela 13, o qual possui valor
5,16. Sabe-se que esse banco de dados possui um cluster com o valor Idade sendo igual a 5
(valor mais próximo de 5,16), então aplicando a fórmula, tem-se:
((ABS(5,16 - 5))/5)*100 = 3,20
Essa fórmula é então aplicada cuidadosamente para todos os atributos resultantes das
execuções dos algoritmos de clusterização nos doze bancos de dados distintos. Essa é uma
tarefa que exige extrema atenção e paciência, pois necessita um cuidado minucioso em
relação a qual linha e coluna da planilha um registro deve fazer parte e qual outro valor do
banco original necessita ser inserido na mesma fórmula.
Após o término dessa etapa, é possível então realizar uma análise completa referente
ao comparativo entre os três algoritmos do WEKA e quais conseguem obter uma menor taxa
de erros em relação ao banco de dados utilizado.
74
5 RESULTADOS
Neste capítulo serão apresentados os resultados encontrados através da aplicação da
técnica de clusterização na ferramenta WEKA. A ordem de exibição seguiu respectivamente a
ordem dos bancos de dados do objetivo 1 e 2, onde para cada banco de dados foram
desenvolvidas duas tabelas. Nas tabelas 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34 e 36 (com
cabeçalho verde), mostrou-se o comparativo dos três algoritmos (Simple K-Means, X-Means e
EM) pré-parametrizados manualmente com o número de clusters idêntico ao número de
grupos gerados na base de dados original. Já nas tabelas 15, 17, 19, 21, 23, 25, 27, 29, 31, 33,
35 e 37 (com cabeçalho amarelo), apresentou-se o comparativo entre os algoritmos X-Means e
EM, os quais são os únicos, entre os utilizados nesse trabalho, que tornam possível a opção
para que o próprio algoritmo descubra automaticamente a quantidade de clusters existentes
para o banco, possibilidade essa muito interessante para as situações em que o minerador não
tenha muito conhecimento a respeito dos dados existentes em uma base de dados, tornando
mais fácil a atividade de descoberta de conhecimento e informação.
Os dados analisados para o objetivo 1 foram: número de clusters criados na fase de
mineração e a taxa de erro (em porcentagem) para os atributos de faixa etária (Erro Idade),
quantidade de atendimentos (Erro Eventos) e desvio padrão (Erro Desvio Padrão). Já os
registros analisados para o objetivo 2 foram: número de clusters criados na fase de mineração
e a taxa de erro (em porcentagem) para os atributos de quantidade de atendimentos (Erro
Eventos), desvio padrão dos eventos (Erro Desvio Padrão Ev), distância (Erro Distância),
desvio padrão da distância (Erro Desvio Padrão Di), total gasto em mensalidades (Erro
Mensalidades) e desvio padrão do total gasto com mensalidades (Erro Desvio Padrão Me).
Na primeira coluna de cada tabela são encontrados os nomes dos algoritmos avaliados,
onde o valor inserido entre parênteses refere-se ao número de clusters parametrizados no
campo numClusters, dentro das configurações de cada algoritmo. Para o X-Means, por
exemplo, no momento em que se desejou que o mesmo detectasse de forma automática a
quantidade de grupos, definiu-se um valor mínimo (1) e máximo (15) para os campos
minNumClusters e maxNumClusters, respectivamente. Já para a realização da detecção
automática no algoritmo EM, inseriu-se o valor -1 para o campo numClusters.
Os resultados encontrados foram:
75
Tabela 14 – Resultados para o primeiro banco de dados, pertencente ao objetivo 1, com
detecção manual do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (3)
3
3
67,99
66,67
x
EM (3)
3
Simple K-Means (3)
3
3
4,9
3
1,4
Fonte: Autoria própria (2014).
2,73
11,87
2,4
x
Tabela 15 – Resultados para o primeiro banco de dados, pertencente ao objetivo 1, com
detecção automática do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (1 a 15)
3
2
96,99
50
x
EM (-1)
3
4
16,32
Fonte: Autoria própria (2014).
25
26,45
Tabela 16 – Resultados para o segundo banco de dados, pertencente ao objetivo 1, com
detecção manual do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (5)
5
5
24,06
39,36
x
EM (5)
5
Simple K-Means (5)
5
5
3,41
5
1,49
Fonte: Autoria própria (2014).
2,84
10,04
0,44
x
Tabela 17 – Resultados para o segundo banco de dados, pertencente ao objetivo 1, com
detecção automática do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (1 a 15)
5
1
8,04
400
x
EM (-1)
5
5
3,41
Fonte: Autoria própria (2014).
2,84
10,04
Tabela 18 – Resultados para o terceiro banco de dados, pertencente ao objetivo 1, com
detecção manual do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (10)
10
10
8,83
10,56
x
EM (10)
Simple K-Means
(10)
10
10
19,67
19,78
13,96
10
10
8,85
30,28
x
Fonte: Autoria própria (2014).
76
Tabela 19 – Resultados para o terceiro banco de dados, pertencente ao objetivo 1, com
detecção automática do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (1 a 15)
10
1
9,96
900
x
EM (-1)
10
9
24,28
Fonte: Autoria própria (2014).
32,87
23,33
Tabela 20 – Resultados para o quarto banco de dados, pertencente ao objetivo 1, com
detecção manual do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (5)
5
5
13,46
39,46
x
EM (5)
5
Simple K-Means (5)
5
5
2,25
5
2,25
Fonte: Autoria própria (2014).
0,06
4,53
0,04
x
Tabela 21 – Resultados para o quarto banco de dados, pertencente ao objetivo 1, com
detecção automática do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (1 a 15)
5
1
7,89
400
x
EM (-1)
5
5
2,25
Fonte: Autoria própria (2014).
0,04
3
Tabela 22 – Resultados para o quinto banco de dados, pertencente ao objetivo 1, com
detecção manual do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (5)
5
5
1,14
0,68
x
EM (5)
5
Simple K-Means (5)
5
5
3,39
5
1,14
Fonte: Autoria própria (2014).
4,44
10,36
0,68
x
Tabela 23 – Resultados para o quinto banco de dados, pertencente ao objetivo 1, com
detecção automática do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (1 a 15)
5
1
8,09
400
x
EM (-1)
5
8
26,73
Fonte: Autoria própria (2014).
38,18
34,5
77
Tabela 24 – Resultados para o sexto banco de dados, pertencente ao objetivo 1, com detecção
manual do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (5)
5
5
5,66
4,2
x
EM (5)
5
Simple K-Means (5)
5
5
16,92
5
3,35
Fonte: Autoria própria (2014).
18,12
26,46
2,6
x
Tabela 25 – Resultados para o sexto banco de dados, pertencente ao objetivo 1, com detecção
automática do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (1 a 15)
5
1
8,44
400
x
EM (-1)
5
8
26,73
Fonte: Autoria própria (2014).
38,18
24,36
Tabela 26 – Resultados para o sétimo banco de dados, pertencente ao objetivo 1, com
detecção manual do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (3)
3
3
4,72
3,97
x
EM (3)
3
Simple K-Means (3)
3
3
2,21
3
4,72
Fonte: Autoria própria (2014).
1,17
10,13
3,97
x
Tabela 27 – Resultados para o sétimo banco de dados, pertencente ao objetivo 1, com
detecção automática do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (1 a 15)
3
2
11,84
20
x
EM (-1)
3
3
2,21
Fonte: Autoria própria (2014).
1,17
10,13
Tabela 28 – Resultados para o oitavo banco de dados, pertencente ao objetivo 1, com
detecção manual do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (5)
5
5
7,08
15,36
x
EM (5)
5
Simple K-Means (5)
5
5
5,83
5
10,42
Fonte: Autoria própria (2014).
16,66
38,64
5,8
x
78
Tabela 29 – Resultados para o oitavo banco de dados, pertencente ao objetivo 1, com
detecção automática do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (1 a 15)
5
1
2,13
100
x
EM (-1)
5
7
3,37
Fonte: Autoria própria (2014).
8,13
16,14
Tabela 30 – Resultados para o nono banco de dados, pertencente ao objetivo 1, com detecção
manual do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (10)
10
10
6,02
7,33
x
EM (10)
Simple K-Means
(10)
10
10
8,06
14,49
9
10
10
7,65
4,96
x
Fonte: Autoria própria (2014).
Tabela 31 – Resultados para o nono banco de dados, pertencente ao objetivo 1, com detecção
automática do número de clusters a serem criados
CLUSTERS CLUSTERS
ERRO
ERRO
ERRO DESVIO
ALGORITMO
ORIGINAIS CRIADOS
IDADE (%)
EVENTOS (%)
PADRÃO (%)
X-Means (1 a 15)
10
1
1,66
443,48
x
EM (-1)
10
6
8,65
Fonte: Autoria própria (2014).
14,41
42
Tabela 32 – Resultados para o décimo banco de dados, pertencente ao objetivo 2, com
detecção manual do número de clusters a serem criados
CLUST.
ORIG.
CLUST.
CRIAD.
ERROS
EVENTOS
(%)
ERROS
DESVIO
_EV (%)
ERROS
DIST.
(%)
ERROS
DESVIO
_DI (%)
ERROS
MENS.
(%)
ERROS
DESVIO_ME
(%)
X-Means (3)
3
3
2,11
x
3,22
x
0,02
x
EM (3)
Simple KMeans (3)
3
3
2,16
1,78
3,22
5,86
0,02
0,88
3
3
10,49
x
24,66
x
8,95
x
ALGORITMO
Fonte: Autoria própria (2014).
Tabela 33 – Resultados para o décimo banco de dados, pertencente ao objetivo 2, com
detecção automática do número de clusters a serem criados
ALGORITMO
X-Means (1 a
15)
EM (-1)
CLUST.
ORIG.
CLUST.
CRIAD.
ERROS
EVENTOS
(%)
ERROS
DESVIO
_EV (%)
ERROS
DIST.
(%)
ERROS
DESVIO
_DI (%)
ERROS
MENS.
(%)
ERROS
DESVIO_ME
(%)
3
2
15,58
x
13,49
x
13,36
x
3
3
5,84
0,02
0,88
2,16
1,78
3,22
Fonte: Autoria própria (2014).
79
Tabela 34 – Resultados para o décimo primeiro banco de dados, pertencente ao objetivo 2,
com detecção manual do número de clusters a serem criados
CLUST.
ORIG.
CLUST.
CRIAD.
ERROS
EVENTOS
(%)
ERROS
DESVIO
_EV (%)
ERROS
DIST.
(%)
ERROS
DESVIO
_DI (%)
ERROS
MENS.
(%)
ERROS
DESVIO_ME
(%)
X-Means (5)
5
5
3,15
x
7,22
x
0,78
x
EM (5)
Simple KMeans (5)
5
5
2,24
1,67
3,25
3,60
0,15
5,07
5
5
3,57
x
7,14
x
0,79
x
ALGORITMO
Fonte: Autoria própria (2014).
Tabela 35 – Resultados para o décimo primeiro banco de dados, pertencente ao objetivo 2,
com detecção automática do número de clusters a serem criados
ALGORITMO
X-Means (1 a
15)
EM (-1)
CLUST.
ORIG.
CLUST.
CRIAD.
ERROS
EVENTOS
(%)
ERROS
DESVIO
_EV (%)
ERROS
DIST.
(%)
ERROS
DESVIO
_DI (%)
ERROS
MENS.
(%)
ERROS
DESVIO_ME
(%)
5
2
11,77
x
8,71
x
6,91
x
5
5
3,60
0,15
5,07
2,24
1,67
3,25
Fonte: Autoria própria (2014).
Tabela 36 – Resultados para o décimo segundo banco de dados, pertencente ao objetivo 2,
com detecção manual do número de clusters a serem criados
CLUST.
ORIG.
CLUST.
CRIAD.
ERROS
EVENTOS
(%)
ERROS
DESVIO
_EV (%)
ERROS
DIST.
(%)
ERROS
DESVIO
_DI (%)
ERROS
MENS.
(%)
ERROS
DESVIO_ME
(%)
X-Means (6)
6
6
6,03
x
14,38
x
2,46
x
EM (6)
Simple KMeans (6)
6
6
0,88
4,17
6,85
8,33
0,53
21,38
6
6
4,25
x
10,44
x
2,76
x
ALGORITMO
Fonte: Autoria própria (2014).
Tabela 37 – Resultados para o décimo segundo banco de dados, pertencente ao objetivo 2,
com detecção automática do número de clusters a serem criados
ALGORITMO
X-Means (1 a
15)
EM (-1)
CLUST.
ORIG.
CLUST.
CRIAD.
ERROS
EVENTOS
(%)
ERROS
DESVIO
_EV (%)
ERROS
DIST.
(%)
ERROS
DESVIO
_DI (%)
ERROS
MENS.
(%)
ERROS
DESVIO_ME
(%)
6
2
17,61
x
5,37
x
1,42
x
6
9
14,50
0,18
3,18
2,38
5,19
6,17
Fonte: Autoria própria (2014).
Os dados finalmente chegam então à etapa de intepretação dos resultados, onde o
minerador, em alguns casos juntamente com uma equipe administrativa ou de apoio, realiza a
etapa de transformação dos registros em informação consistente e útil para a empresa, onde
80
posteriormente passam para a fase de publicação, quando esses registros serão divulgados se
necessário, ou repassados à gerência para tomadas de decisões estratégicas.
Analisando os resultados encontrados para os doze bancos de dados utilizados nesse
trabalho, é possível se chegar a algumas conclusões, como por exemplo, o que ocorreu com as
taxas de erros para os atributos do objetivo 1, que indicaram uma fragilidade comprovada do
algoritmo X-Means quando foi aplicado para a maioria dos bancos desse objetivo. A taxa de
erros desse algoritmo alcançou índices elevados tanto para o atributo idade quanto para o
atributo eventos, como mostram as tabelas 14, 15 e 16, incluindo ainda as tabelas 17, 21, 23 e
25, que mostraram uma taxa de erros de até 400% para o atributo eventos (que exibe a
quantidade de eventos realizados por uma determinada faixa etária) quando executado o
algoritmo X-Means e na tabela 19 esse valor sobe ainda mais, alcançando uma taxa de erros
de 900%, o que foi tratado como sendo um outliers, ou seja, um dado discrepante em relação
aos demais e que pode ser desconsiderado caso seja realizado um cálculo de média geral.
Ainda sobre o algoritmo X-Means em relação às bases de dados do objetivo 1, uma
curiosidade que foi percebida é que para as execuções onde ele foi parametrizado com o
campo numClusters mínimo igual a 1 e máximo igual a 15, o algoritmo descobriu sempre dois
clusters quando a base de dados original possuía três grupos (ver tabelas 15 e 27) e descobriu
apenas um único cluster quando o número de grupos que formavam o banco de dados original
era superior a três, como mostraram as tabelas 17 e 19, por exemplo.
As tabelas 14 e 26 mostraram uma situação interessante que ocorreu com a execução
do algoritmo X-Means, onde no primeiro banco de dados (tabela 14) os valores do atributo
idade e também desvio foram exatamente idênticos aos encontrados no sétimo banco de dados
(tabela 26). Porém, a taxa de erros para esses dois atributos foi muito menor no sétimo
repositório do que no primeiro e, através de uma investigação realizada aos dados das duas
bases ficou indicado que essa diferença ocorreu devido à divergência no número de registros
criados para cada cluster, onde no primeiro banco de dados cada cluster possuía uma
determinada quantidade de registros (200, 500 e 1000) e, no sétimo banco, cada grupo era
formado por exatos 1000 registros, o que facilitou o processo para uma geração mais correta
dos grupos e consequentemente, reduziu consideravelmente a taxa de erros para esse caso.
Referente ao algoritmo EM, o mesmo mostrou ser mais eficaz do que o X-Means em
relação a descobrir o número de clusters nas bases de dados do objetivo 1, como provam as
tabelas 17 e 21, por exemplo, onde ele obteve 100% de acerto e, nos casos em que não
81
conseguiu descobrir com precisão a quantidade correta de grupos, ainda assim chegou mais
próximo ao ideal, como mostram por exemplo as tabelas 19 e 29.
Sobre o algoritmo Simple K-Means, ele foi considerado o algoritmo que alcançou o
melhor resultado geral para os bancos de dados do objetivo 1, em relação aos outros dois
algoritmos e também considerando os valores obtidos nas taxas de erros para os atributos
idade e eventos. Suas margens de erro, na maioria dos casos do objetivo 1, não ultrapassaram
os 10% (na melhor situação alcançou uma taxa de erro de 0,04%), sendo definido assim como
a melhor opção para ser utilizado no objetivo de encontrar as faixas etárias que mais
realizaram atendimento no hospital próprio da operadora de saúde, utilizando os nove bancos
de dados gerados para esse intuito.
Analisando os resultados encontrados no objetivo 2, também foi possível descobrir
interessantes comportamentos entre os três algoritmos de clusterização e as respectivas bases
de dados. Nesse caso, percebeu-se que como os bancos de dados do objetivo 2 foram
formados utilizando uma quantidade maior de atributos em relação aos repositórios do
objetivo 1, as taxas de erros para esse segundo objetivo foram consideravelmente menores e
não apresentaram nenhum dado discrepante ou que fosse considerado incorreto. Chegou-se
através disso então à conclusão de que bases de dados com maior quantidade de atributos
conseguem trazer melhores resultados quando aplicada a mineração de dados.
Outra evidência que foi possível ser descoberta é que, com exceção do Simple KMeans no décimo banco de dados (tabela 32), que obteve uma taxa de erros de 24,66% para o
atributo distância e o algoritmo EM no décimo segundo banco de dados (tabela 36), que
encontrou uma taxa de erros de 21,38% para o atributo desvio_me, nos demais casos nenhum
dos três algoritmos alcançou taxas de erros maiores que 18%, sendo dessa lista, a grande
maioria abaixo da faixa dos 10%.
Ao contrário do que ocorreu nos resultados do objetivo 1, nos bancos de dados do
segundo objetivo, o algoritmo Simple K-Means foi o que obteve o pior resultado analisando
os valores das taxas de erros para cada atributo nos três bancos de dados. Um exemplo é o que
foi apresentado na tabela 32, onde a taxa de erros no décimo banco de dados para o atributo
eventos foi quase cinco vezes mais alta em comparação às taxas dos outros dois algoritmos
para esse mesmo atributo.
Já a execução do EM utilizando os bancos de dados do objetivo 2 mostrou que, tanto
para os casos de parametrização do campo numClusters igual a -1 ou para as situações em que
82
o minerador indicou para o algoritmo a quantidade correta de clusters com a qual deveria ser
trabalhado, o algoritmo Expectation-Maximization foi o que alcançou o melhor desempenho e
resultado na análise geral das taxas de erros para os diferentes atributos, comparado aos outros
dois algoritmos, sendo também o único que possibilitou a exibição em seus resultados do
valor do desvio padrão, calculado para cada um dos clusters e seus respectivos atributos.
83
6 CONSIDERAÇÕES FINAIS
A mineração de dados, como vista nesse trabalho, representa apenas uma parte do
grande processo que envolve a descoberta de conhecimento em banco de dados. Ela é
popularmente considerada a fase mais importante e mais trabalhosa, exigindo da pessoa
mineradora um alto conhecimento em relação aos dados que deseja-se minerar e também
referente aos objetivos que buscam-se alcançar.
Nesse trabalho foram descritas essas etapas segundo Fayyad e também conforme o
modelo CRISP-DM, onde, a partir do conhecimento teórico das principais técnicas de
mineração de dados, foi escolhida a técnica de clusterização para ser utilizada em duas
situações fictícias, onde uma operadora de saúde gostaria de utilizar a mineração de dados
para identificar as faixas etárias que mais realizaram atendimentos em seu hospital (objetivo
1) e qual a relação entre a quantidade de atendimentos do beneficiário em um ano, a distância
entre a sua residência até o hospital da operadora e o valor total de suas mensalidades nesse
mesmo período anual.
Utilizando o software Octave, foram gerados dados subdivididos em grupos conforme
alguns critérios pré-estabelecidos e, com a execução dos algoritmos Simple K-Means, XMeans e EM pela ferramenta WEKA, foi possível iniciar a construção de tabelas compostas
pelos resultados obtidos na fase de mineração. A partir daí, iniciaram-se os cálculos para a
descoberta dos valores das taxas de erros para cada um dos atributos, indicadores
extremamente importantes os quais serviram para obtenção de conhecimento e informação
comparativa entre os algoritmos de clusterização.
Por fim, os diferentes comportamentos encontrados para um mesmo algoritmo, em
diferentes bancos de dados, como por exemplo o Simple K-Means, que alcançou um excelente
desempenho na mineração dos repositórios do objetivo 1 e acabou obtendo o desempenho
mais fraco entre os três algoritmos nos bancos de dados do objetivo 2, mostra o quanto
importante é a tarefa de selecionar corretamente os dados para mineração, pois em bases com
quantidades maiores de atributos, a possibilidade de erros na formação de clusters de dados é
menor e, além disso, nota-se que nem sempre um único algoritmo pode ser a solução para
todos os tipos de bancos de dados, cabendo então ao profissional da mineração de dados a
responsabilidade de realizar uma correta leitura do algoritmo mais apropriado, sendo isso
realizado através de testes ou de sua experiência ou conhecimentos adquiridos.
84
REFERÊNCIAS
AGRAWAL, R; SRIKANT, R. Fast Algorithms for Mining Association Rules. Proceedings
of the 20th VLDB Conference. Chile, 1994.
ALMEIDA, F. C; DUMONTIER, P. O Uso de Redes Neurais em Avaliação de Riscos de
Inadimplência. Revista de Administração FEA/USP, São Paulo, 1996.
AMO, Sandra de. Técnicas de Mineração de Dados. Jornada de Atualização em Informática.
Universidade Federal de Uberlândia, 2004.
BATISTA, Gustavo Enrique de A. P. A. B. Pré-Processamento de Dados em Aprendizado
de Máquina Supervisionado. Tese de Doutorado (Doutorado em Ciência da Computação
e Matemática Computação). USP – São Carlos, 2003. Disponível em:
<http://www.teses.usp.br/teses/disponiveis/55/55134/tde-06102003160219/publico/TeseDoutorado.pdf>. Acesso em: 18 set. 2014.
BATISTA, Maira Lambort. Análise de Eventos de Segurança em Redes de Computadores
Utilizando Detecção de Novidade. UNESP - Universidade Estadual Paulista Júlio de
Mesquita Filho, São José do Rio Preto – SP, 2012. Disponível em: <
http://base.repositorio.unesp.br/bitstream/handle/11449/89342/batista_ml_me_sjrp.pdf?seq
uence=1&isAllowed=y>. Acesso em: 22 set. 2014
BRAGA, Luis Paulo Vieira. Introdução à Mineração de Dados. Editora E-papers. 2ª edição,
2005.
BRANDÃO, M. de F. R; RAMOS, C. R. dos Santos; TRÓCCOLI, B. T. Análise de
agrupamento de escolas e Núcleos de Tecnologia Educacional: mineração na base de
dados de avaliação do Programa Nacional de Informática na Educação. Simpósio
Brasileiro de Informática na Educação (SBIE) – Universidade Federal do Rio de Janeiro –
UFRJ. Rio de Janeiro – RJ, 2003. Disponível em: < http://brie.org/pub/index.php/sbie/article/download/267/253>. Acesso em: 17 ago. 2014.
BRAUNER, Daniela F. O Processo de Descoberta de Conhecimento em Banco de Dados:
Um Estudo de Caso Sobre os Dados da UFPel. Instituto de Física e Matemática.
Universidade
Federal
de
Pelotas,
2003.
Disponível
em:
<
http://prg.ufpel.edu.br/sisbi/bibct/acervo/info/2003/mono_daniela_brauner.pdf >. Acesso
em: 10 jul. 2014.
85
CAMILO, Cássio Oliveira; SILVA, João Carlos da. Mineração de Dados: Conceitos,
Tarefas, Métodos e Ferramentas. Instituto de Informática. Universidade Federal de
Goiás, 2009. Disponível em: < http://www.inf.ufg.br/sites/default/files/uploads/relatoriostecnicos/RT-INF_001-09.pdf>. Acesso em: 11 jul. 2014.
CAMILO, Cássio Oliveira; SILVA, João Carlos da. Um estudo sobre a interação entre
Mineração de Dados e Ontologias. Instituto de Informática. Universidade Federal de
Goiás, 2009. Disponível em: < http://www.inf.ufg.br/sites/default/files/uploads/relatoriostecnicos/RT-INF_002-09.pdf>. Acesso em: 14 jul. 2014.
CARLANTONIO, L. M. Novas Metodologias para Clusterização de Dados. Dissertação
(Mestrado) - Engenharia Civil, Universidade Federal do Rio de Janeiro, Rio de Janeiro,
2001.
Disponível
em:
<http://wwwp.coc.ufrj.br/teses/mestrado/inter/2002/teses/di%20CARLANTONIO_LM_02
_t_M_int.pdf>. Acesso em: 28 ago. 2014.
CASTANHEIRA, Luciana Gomes. Aplicação de Técnicas de Mineração de Dados em
Problemas de Classificação de Padrões. Laboratório de Computação Evolucionária da
Universidade Federal de Minas Gerais, 2008.
CASTRO, Manuel Altino Torres Aniceto. Agrupamento – “Clustering”. Instituto Superior
de Engenharia do Porto, 2003.
CHAPMAN, Pete et al. CRISP-DM 1.0 - Step-By-Step Data mining Guide, 2000.
DALLANORA, Julio Fernando. Análise do Perfil de Clientes a partir de Técnicas de
Mineração de Dados. UNIJUI – Universidade Regional do Noroeste do Estado do Rio
Grande do Sul, Ijuí, 2009.
DAMASCENO, Marcelo. Introdução a Mineração de Dados Utilizando o WEKA.
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte, Macau –
RN,
2010.
Disponível
em:
<
http://connepi.ifal.edu.br/ocs/index.php/connepi/CONNEPI2010/paper/viewFile/258/207>.
Acesso em: 19 set. 2014.
DANTAS, Eric Rommel G. et al. O Uso da Descoberta de Conhecimento em Base de
Dados para Apoiar a Tomada de Decisões. V Simpósio de Excelência em Gestão e
Tecnologia (SEGeT), 2008.
86
FAYYAD, Usama; Piatetsky-Shapiro, G; Smyth, P. Data mining to Knowledge Discovery in
Databases. American Association for Artificial Intelligence, 1996.
FERREIRA, Fábio dos S; CAMPOS, Gustavo A. L. de; SILVA, Jackson S. de V.
Clusterização com Algoritmo Genético Baseado em Densidade e Grade. Universidade
Estadual do Ceará (UECE). 42º Simpósio Brasileiro de Pesquisa Operacional. Bento
Gonçalves – RS, 2010.
Disponível em: <http://www.din.uem.br/sbpo/sbpo2010/pdf/72512.pdf>
Acesso em 26 set. 2014.
GARAI, G; CHAUDHURI, B. A Novel Genetic Algorithm for Automatic Clustering.
Pattern Recognition Letters. Ed. 25, 2004.
GODOY, R. C; Ávila, F. F; Marinho, M. C; Lima, A. M; Abrão, E. M; Paula e Silva, M.
Análise Topográfica por Perfilometria do Desgaste de Cratera em Ferramenta de
Metal Duro Revestida com TiN. Escola de Engenharia da Universidade Federal de Minas
Gerais, Brasil, 2003.
Disponível em: <http://www.materia.coppe.ufrj.br/sarra/artigos/artigo10194>
GOLDSCHMIDT, R.; PASSOS, E. Data mining - Um Guia Prático. 1. Ed. Rio de Janeiro:
Campus, 2005.
HALMENSCHLAGER, Carine. Um algoritmo de indução de árvores e regras de decisão.
UFRGS – Universidade Federal do Rio Grande do Sul. Porto Alegre, 2002.
HAN, J; KAMBER, M. Data mining: Concepts and Techniques. Second Edition. Elsevier,
2006.
HUANG, Z. Clustering Large Data Sets with Mixed Numeric and Categorical Values
Proceedings. First Pacific - Asia: Conf. Knowledge Discovery and Data mining, 1997.
LAROSE, Daniel T. Discovering Knowledge in Data: An Introduction to Data mining.
New Jersey: John Wiley & Sons, 2005.
LE COADIC, Yves-François. A Ciência da Informação. Tradução Maria Yeda F. S. de
Figueiredo Gomes. Brasília, DF: Briquet de Lemos, 1996.
87
LIMA, Tânia dos Santos. Estudo Comparativo dos Algoritmos de Classificação da
Ferramenta Weka. Centro Universitário Luterano de Palmas. Palmas – TO, 2005.
MACHADO, Vinícius P. et al. Classificação Automática dos Usuários da Rede Social
Acadêmica Scientia.Net. Universidade Federal do Piauí. Teresina – PI, 2011.
MOURA, Eros Estevão. Utilização de Técnicas de Mineração de Textos para Apoio a
Aprendizagem. Dissertação (Mestrado) – Universidade Cândido Mendes. Mestrado em
Informática Aplicada. Campos de Goytacazes– RJ, 2006.
NALDI, M. C. Técnicas de Combinação para o Agrupamento Centralizado e Distribuído
de Dados. Tese (Doutorado em Ciências de Computação e Matemática Computacional).
Instituto de Ciências Matemáticas e de Computação – ICMC – USP, 2011.
OCHI, Luiz Satoru; DIAS, Calos Rodrigo; SOARES, Stênio S. Furtado. Clusterização em
Mineração de Dados. Instituto de Computação. Universidade Federal Fluminense.
Niterói, Rio de Janeiro, 2005.
OCTAVE, GNU. About. 2004
Disponível em: <https://www.gnu.org/software/octave/about.html>
Acesso em: 03 out. 2014.
OLIVEIRA, C. EDACLUSTER: Um Algoritmo Evolucionário para Análise de
Agrupamentos Baseados em Densidade e Grade. Dissertação (Mestrado em Engenharia
Elétrica), Universidade Federal do Pará, 2007.
PELLEG, D; MOORE, A. W. X-Means: Extending K-Means with Efficient Estimation of
the Number of Clusters. Proceedings of the Seventeenth International Conference on
Machine Learning – ICML. Morgan Kaufmann Publishers Inc., San Francisco, CA – 2000.
Disponível
em:
<http://pdf.aminer.org/000/335/443/x_Means_extending_k_Means_with_efficient_estimati
on_of_the.pdf>. Acesso em: 04 set. 2014.
PINHEIRO, L. C. Método de Representação Espacial de Clustering. Dissertação
(Mestrado) - Pós-Graduação em Informática, Universidade Federal do Paraná, Curitiba,
2006.
PINTO, F.; Santos M. F. Descoberta de Conhecimento em Base de Dados em Atividades
de CRM. Datagadgets. 1° Congresso Espanhol de Informática (CEDI). Granada, 2005.
88
POSSA, B. A. V. et al. Data mining: Técnicas para Exploração de Dados. Universidade
Federal de Minas Gerais, 1998.
RABELO, Emerson. Avaliação de Técnicas de Visualização para Mineração de Dados.
Dissertação (Mestrado) - Universidade Estadual de Maringá. Programa de Pós-graduação
em Ciência da Computação, Maringá-PR, 2007.
REZENDE, Solange O. Mineração de Dados. XXV Congresso da Sociedade Brasileira de
Computação. UNISINOS – São Leopoldo, RS, 2005. Disponível em:
<http://www.lbd.dcc.ufmg.br/colecoes/enia/2005/0102.pdf>. Acesso em: 27 ago. 2014.
REZENDE, Solange O. Sistemas Inteligentes: Fundamentos e Aplicações. Barueri, SP: Ed.
Manole, 2003.
SHIMABUKURU, H. M. Visualização Temporal em uma Plataforma Software
Extensível e Adaptável. Tese (Doutorado) - Instituto de Ciência Matemática e de
Computação. Universidade de São Paulo, São Carlos, 2004.
SILVA, Denilson R. da. Análise e Triagem de Padrões em Processamento de Descoberta
de Conhecimento em Base de Dados. Dissertação de Mestrado (Mestrado em Ciência da
Computação) - Pontifícia Universidade Católica do Rio Grande do Sul – RS, 2000.
Disponível em: <http://www.pucrs.br/inf/pos/dissertacoes/arquivos/denilson.pdf>. Acesso
em: 02 set. 2014.
SILVA, E. M. Avaliação do Estado da Arte e Produtos. Data mining. Universidade
Católica de Brasília, 2000.
SILVA, Marcelino P. S. Mineração de Dados – Conceitos, Aplicações e Experimentos
com Weka. Universidade do Estado do Rio Grande do Norte (UERN), Mossoró – RN,
2004. Disponível em: <http://www.lbd.dcc.ufmg.br/colecoes/erirjes/2004/004.pdf>.
Acesso em: 05 set. 2014.
SIVIERO, Maria R. L; JÚNIOR, Estevam R. H. Algoritmos de Aprendizado de Máquina
Aplicados à Parâmetros Mensurados no Rio Atibaia/SP. XIX Simpósio Brasileiro de
Recursos Hídricos. Maceió – AL, 2011.
SMIDERLE, Andreia; OLIVEIRA, Alessandra M. Mineração de dados: um estudo de caso
de concessão de crédito explorando o software Weka. CNMAC – Congresso Nacional
de Matemática Aplicada e Computacional. Santo Amaro – SP, 2005. Disponível em:
89
<http://www.sbmac.org.br/eventos/cnmac/cd_xxviii_cnmac/resumos%20estendidos/andrei
a_smiderle_ST17.pdf>. Acesso em: 03 set. 2014.
SPATH, H. Cluster Analysis Algorithms – For Data Reduction and Classification of
Objects. Ellis Horwood Limited, 1980.
TAN, P; STEINBACH, M; KUMAR, V. Introduction to Data mining. Pearson Addison
Wesley, 2006.
WEISS, S. M; INDURKHYA, N. Predictive Data mining: A Practical Guide.
Morgan Kaufmann Publishers, Inc., San Francisco, CA, 1998.
ZEMAN, Jirí. Significado Filosófico da Noção de Informação. In: O Conceito de
Informação na Ciência Contemporânea. Rio de Janeiro: Paz e Terra, 1970.
Download