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.