CARLOS HENRIQUE PEREIRA LOPES CLASSIFICAÇÃO DE REGISTROS EM BANCO DE DADOS POR EVOLUÇÃO DE REGRAS DE ASSOCIAÇÃO UTILIZANDO ALGORITMOS GENÉTICOS Dissertação apresentada ao Departamento de Engenharia Elétrica da PUC/Rio como parte dos requisitos para a obtenção do título de Mestre em Engenharia Elétrica : Sistemas de Computação. Orientadores: Marley M. B. R. Vellasco Marco Aurélio C. Pacheco Departamento de Engenharia Elétrica Pontifícia Universidade Católica do Rio de Janeiro Abril de 1999 Dedicatória à minha família Agradecimentos Ao CNPq, pelo apoio financeiro; Aos Profs. ...; A ...; Aos colegas do ICA e da oficina de manutenção; Aos ...; A minha família, que próxima ou distante, me incentivou nessa jornada; A ...; A .... RESUMO Esta dissertação investiga a utilização de Algoritmos Genéticos (AG) no processo de descoberta de conhecimento implícito em Banco de Dados (KDD - Knowledge Discovery Database). O objetivo do trabalho foi avaliar o desempenho de Algoritmos Genéticos no processo de classificação de registros em Bancos de Dados (BD). O processo de classificação no contexto de Algoritmos Genéticos consiste na evolução de regras de associação que melhor caracterizem, através de sua acurácia e abrangência, um determinado grupo de registros do BD. O trabalho consistiu de 4 etapas principais: um estudo sobre a área de Knowledge Discovery Database (KDD); a definição de um modelo de AG aplicado à Mineração de Dados (Data Mining); a implementação de uma ferramenta (RuleEvolver) de Mineração de Dados; e o estudo de casos. O estudo sobre a área de KDD envolveu todo o processo de descoberta de conhecimento útil em banco de dados: definição do problema; seleção dos dados; limpeza dos dados; pré-processamento dos dados; codificação dos dados; enriquecimento dos dados; mineração dos dados e a interpretação dos resultados. Em particular, o estudo destacou a fase de Mineração de Dados e os algoritmos e técnicas empregadas (Redes Neurais, Indução de regras, Modelos Estatísticos e Algoritmos Genéticos). Deste estudo resultou um “survey” sobre os principais projetos de pesquisa na área. A modelagem do Algoritmo Genético consistiu fundamentalmente na definição de uma representação dos cromossomas, da função de avaliação e dos operadores genéticos. Em mineração de dados por regras de associação é necessário considerar-se atributos quantitativos e categóricos. Atributos quantitativos representam variáveis contínuas (faixa de valores) e atributos categóricos variáveis discretas. Na representação definida, cada cromossoma representa uma regra e cada gene corresponde a um atributo do BD, que pode ser quantitativo ou categórico conforme a aplicação. A função de avaliação associa um valor numérico à regra encontrada, refletindo assim uma medida da qualidade desta solução. A Mineração de Dados por AG é um problema de otimização onde a função de avaliação deve apontar para as melhores regras de associação. A acurácia e a abrangência são medidas de desempenho e, em alguns casos, se mantém nulas durante parte da evolução. Assim, a função de avaliação deve ser uma medida que destaca cromossomas contendo regras promissoras em apresentar acurácia e abrangência diferentes de zero. Foram implementadas 10 funções de avaliação. Os operadores genéticos utilizados (crossover e mutação) buscam recombinar as cláusulas das regras, de modo a procurar obter novas regras com maior acurácia e abrangência dentre as já encontradas. Foram implementados e testados 4 operadores de cruzamento e 2 de mutação. A implementação de uma ferramenta de modelagem de AG aplicada à Mineração de Dados, denominada Rule-Evolver, avaliou o modelo proposto para o problema de classificação de registros. O Rule-Evolver analisa um Banco de Dados e extrai as regras de associação que melhor diferenciem um grupo de registros em relação a todos os registros do Banco de Dados. Suas características principais são: seleção de atributos do BD; informações estatísticas dos atributos; escolha de uma função de avaliação entre as 10 implementadas; escolha dos operadores genéticos; visualização gráfica de desempenho do sistema; e interpretação de regras. Um operador genético é escolhido a cada reprodução em função de uma taxa preestabelecida pelo usuário. Esta taxa pode permanecer fixa ou variar durante o processo evolutivo. As funções de avaliação também podem ser alteradas (acrescidas de uma recompensa) em função da abrangência e da acurácia da regra. O Rule-Evolver possui uma interface entre o BD e o AG, necessária para tornar o processo de KDD e a fase de mineração dos dados mais ágeis. Para otimizar o processo de busca de regras e obter regras de melhor qualidade, foram implementadas técnicas evolucionárias (normalização linear, elitismo entre gerações e entre experimentos) e métodos aleatórios de inicialização dos valores dos genes da população, incluindo: o valor médio global, o valor mediano global e valores dos registros do BD. No estudo de casos, buscou-se avaliar o desempenho do modelo e da ferramenta em diversos BDs: benchmark e reais. A mineração em banco de dados benchmark permitiu uma análise comparativa com outros métodos de extração de regras implícitas, tais como Redes Neurais Artificiais e Modelos Estatísticos. Na aplicação em BD reais, o objetivo foi submeter os resultados do Rule-Evolver a analistas de dados da área de educação. Com este trabalho comprovou-se a viabilidade da utilização de AG em mineração de dados. Verificou-se que a definição da melhor função de avaliação é dependente do tipo dos dados, isto é, da aplicação em que se está trabalhando. As diversas funções de avaliação estudadas se mostraram mais eficientes em alguns BDs do que em outros. Isso demonstra que no processo de KDD a iteratividade e a interatividade são extremamente necessárias para a execução da tarefa proposta. O Rule-Evolver mostrou-se eficiente nesta etapa, dado os recursos de análise de resultados e a facilidade de alteração do modelo. ABSTRACT This dissertation investigates the application of Genetic Algorithms (GAs) to the process of implicit knowledge discovery over databases ( KDD – Knowledge Discovery Database). The objective of the work has been the assessment of the Genetic Algorithms (GA) performance in the classification process of database registers. In the context of Genetic Algorithms, this classification process consists in the evolution of association rules that characterise, through its accuracy and range, a particular group of database registers. This work has encompassed four main steps: a study over the area of Knowledge Discovery Databases; the GA model definition applied to Data Mining; the implementation of the Data Mining Rule Evolver; and the case studies. The study over the KDD area included the overall process of useful knowledge discovery; the problem definition; data organisation; data pre-processing; data encoding; data improvement; data mining; and results’ interpretation. Particularly, this investigation emphasised the data mining procedure, techniques and algorithms (Neural Networks, Rule Induction, Statistics Models and Genetic Algorithms). A survey over the main research projects in this area was developed from this work. The Genetic Algorithm modelling encompassed, fundamentally, the definition of the chromosome representation, the fitness evaluation function and the genetic operators. Quantitative and categorical attributes must be taken into account within data mining through association rules. Quantitative attributes represent continuous variables (range of values), whereas categorical attributes are discrete variables. In the representation employed in this work, each chromosome represents a rule and each gene corresponds to a database attribute, which can be quantitative or categorical, depending on the application. The evaluation function associates a numerical value to the discovered rule, reflecting, therefore, a quality measure of the particular solution. Data mining through GA is an optimisation problem, where the evaluation function should drive the process towards the best association rules. The accuracy and range are performance statistics and, in some cases, their values stay nil during part of the evolutionary process. Therefore, the fitness evaluation function should reward chromosomes containing promising rules, which present accuracy and range different of zero. Ten fitness evaluation functions have been implemented. The genetic operators used in this work, crossover and mutation, seek to recombine rules’ clauses in such a way to achieve rules of more accuracy and broader range when comparing the ones already sampled. Four splicing operators and two mutation operators have been experimented. The GA modelling tool implementation applied to Data Mining, called Rule Evolver, evaluated the proposed model to the problem of register classification. The Rule Evolver analyses the database and extracts association rules that can better differentiate a group of registers comparing to the overall database registers. Its main features are: database attributes’ selection; attributes’ statistical information; evaluation function selection among ten implemented ones; genetic operators’ selection; graphical visualisation of the system performance; and rules’ interpretation. A particular genetic operator is selected at each reproduction step, according to a previously defined rate set by the user. This rate may be kept fix or may vary along the evolutionary process. The evaluation functions may also be changed (a rewarding may be included) according to the rule’s range and accuracy. The Rule Evolver implements an interface between the database and the GA, endowing the KDD process and the Data Mining phase with flexibility. In order to optimise the rules’ search process and to achieve better quality rules, some evolutionary techniques have been implemented (linear rank and elitism), and different random initialisation methods have been used as well: global average value; global median value; and database registers’ values. The performance assessment of the system over many databases has been accomplished in the case studies. The Data Mining benchmark allowed the comparison with other implicit rules extraction methods, such as Artificial Neural Networks and Statistical Models. When applying to real databases, the aim has been to submit the Rule Evolver results to experts of the educational area. This work proved the viability of using GAs in Data Mining. It has been verified that the best evaluation function depends on the kind of data being processed in the particular application. The evaluation functions investigated in this work have delivered different performances, in terms of efficiency, according to the particular databases. This shows that interaction and iteration are rather important in the KDD process. Given the analysis resources and the flexibility to perform changes in the model, the Rule Evolver turned out to be an efficient system. LISTA DE ILUSTRAÇÕES............................................................................. IV LISTA DE TABELAS........................................................................................ V 1 INTRODUÇÃO ............................................................................................. 1 1.1 1.2 1.3 1.4 MOTIVAÇÃO .............................................................................................................. 1 OBJETIVOS DO TRABALHO .................................................................................... 1 DESCRIÇÃO DO TRABALHO ................................................................................... 2 ORGANIZAÇÃO DA DISSERTAÇÃO ...................................................................... 2 2 PROCESSO DE KDD (KNOWLEDGE DISCOVERY DATABASE) .... 3 2.1 TAREFAS DE KDD ..................................................................................................... 3 2.1.1 Regras de Associação ................................................................................................ 4 2.1.2 Classificação .............................................................................................................. 4 2.2 FASES DE KDD ........................................................................................................... 5 2.2.1 Data Warehousing: Organização de grandes volumes de dados ............................ 5 2.2.1.1 OLAP: Processamento Analítico On-Line (On-Line Analytical Processing) ..... 5 2.2.2 Pré-processamento dos dados .................................................................................... 6 2.2.2.1 Limpeza dos dados .............................................................................................. 6 2.2.2.2 Seleção dos dados................................................................................................ 6 2.2.3 Enriquecimento dos dados ......................................................................................... 6 3 MINERAÇÃO DE DADOS .......................................................................... 7 3.1 INTRODUÇÃO ............................................................................................................ 7 3.2 TÉCNICAS E ALGORITMOS PARA A MINERAÇÃO DE DADOS ....................... 7 3.2.1 Redes Neurais Artificiais ........................................................................................... 7 3.2.1.1 Introdução às Redes Neurais Artificiais .............................................................. 7 3.2.1.2 Modelagem de Redes Neurais Artificiais em Mineração de Dados .................... 7 3.2.2 Algoritmos Genéticos ................................................................................................ 8 3.2.2.1 Introdução a Algoritmos genéticos ..................................................................... 8 3.2.2.2 Modelagem de Algoritmos Genéticos para a Mineração de Dados .................... 8 4 ESTUDO DE CASOS .................................................................................... 9 5 CONCLUSÕES E TRABALHOS FUTUROS ......................................... 10 5.1 5.2 CONCLUSÕES ........................................................................................................... 10 TRABALHOS FUTUROS.......................................................................................... 10 REFERÊNCIAS BIBLIOGRÁFICAS ............................................................ 12 - III - LISTA DE ILUSTRAÇÕES Figura 1:Taxonomia do processo de KDD ................................................................................. 3 - IV - LISTA DE TABELAS Tabela 1: Entrada de dados para a descoberta de regras de associação. .................................... 4 -V- -1- 1 INTRODUÇÃO 1.1 MOTIVAÇÃO Durante os últimos anos tem se verificado um crescimento substancial da quantidade de dados armazenados em meios magnéticos. Estes dados, produzidos e armazenados em larga escala, são inviáveis de serem lidos ou analisados por especialistas através de métodos manuais tradicionais [PIAT91], tais como planilhas de cálculos e relatórios informativos operacionais, onde o especialista testa sua hipótese contra a base de dados. Por outro lado, sabe-se que grandes quantidades de dados equivalem a um maior potencial de informação. Entretanto, as informações contidas nos dados não estão caracterizadas explicitamente, uma vez que sendo dados operacionais, não interessam quando estudados individualmente.... {Nesta seção devem ser apresentados todos os argumentos que motivam o trabalho, o que existe na literatura ou que está acontecendo no ambiente, e o que você propõe, modo resumido} 1.2 OBJETIVOS DO TRABALHO Os objetivos principais deste trabalho são... ... {Esta seção sintetiza a meta do trabalho de forma clara e objetiva, não prolixa Avaliar o desenpenho do GA ...} -2- 1.3 DESCRIÇÃO DO TRABALHO Esta pesquisa foi elaborada nas seguintes etapas: estudar a área de Knowledge Discovery Database (KDD) e as etapas que a constituem; definir um modelo de Algoritmo Genético aplicado à mineração de dados (Data Mining) para o problema de classificação de registros em banco de dados; implementar uma ferramenta (Rule-Evolver) de mineração de dados que fornecesse subsídios para avaliar o modelo; e o estudo de casos. ... {Agora é feito um apanhado geral de todo o trabalho. Nesta seção são dados mais detalhes, ainda sem grandes aprofundamentos, porém mais específico do que está escrito no resumo. Aqui deve-se mostrar trabalho, deixando claro para o leitor tudo que foi feito na elaboração dessa dissertação} 1.4 ORGANIZAÇÃO DA DISSERTAÇÃO Esta dissertação está dividida em seis capítulos adicionais, descritos a seguir: O capítulo 2 resume o processo de descoberta de conhecimento, descrevendo de forma detalhada as tarefas principais e as fases envolvidas no KDD. ... {Cada capítulo do trabalho deve ser mencionado de forma clara e sucinta, de modo que o leitor saiba em síntese o que vem pela frente} -3- 2 PROCESSO DE KDD (KNOWLEDGE DISCOVERY DATABASE) 2.1 TAREFAS DE KDD A Figura 1 representa de forma hierárquica uma visão sistemática do processo de KDD. Nessa figura percebe-se as fases e as principais tarefas do processo de KDD, envolvendo: tarefas e algoritmos empregados; fases; e etapas do pré processamento. Figura 1:Taxonomia do processo de KDD O desenvolvimento de sistemas de KDD esta relacionado com diversos domínios de aplicações: marketing, análises corporativas, astronomia, medicina, biologia, entre outros. -4- Deste modo, pode-se identificar diversas tarefas de KDD que são, principalmente, dependentes do domínio da aplicação e do interesse do usuário. De modo geral, cada tarefa de KDD extrai um tipo diferente de conhecimento do banco de dados, logo cada tarefa requer um algoritmo diferente para a extração de conhecimento. A seguir descreve-se algumas das principais tarefas de KDD. .... {A partir desse capítulo são mostradas especificamente cada uma das etapas necessárias para fazer com que o leitor compreenda, ou ao menos, forme uma base de conhecimento para um entendimento global do trabalho apresentado} 2.1.1 Regras de Associação A tarefa de descobrir regras de associação foi introduzida por Agrawal. Daí... Tabela 1: Entrada de dados para a descoberta de regras de associação. ID 1 2 3 4 5 6 7 8 9 10 LEITE Não Sim Não Sim Não Não Não Não Não Não ... 2.1.2 Classificação CAFÉ Sim Não Sim Sim Não Não Não Não Não Não CERVEJA Não Sim Não Não Sim Não Não Não Não Não PÃO Sim Sim Sim Sim Não Não Sim Não Não Não MANTEIGA Sim Sim Sim Sim Não Sim Não Não Não Não ARROZ Não Não Não Não Não Não Não Não Sim Sim FEIJÃO Não Não Não Não Não Não Não Sim Sim Não -5- É a tarefa mais estudada em KDD. Nessa tarefa cada tupla pertence a uma classe entre um conjunto pré-definido de classes. A classe de uma tupla, ou registro, é indicada por um valor especificado pelo usuário em um atributo meta, ou atributo objetivo. 2.2 FASES DE KDD No processo de KDD cada fase pode possuir uma interseção com as demais. Desse modo, os resultados produzidos numa fase podem ser utilizados para melhorar os resultados das próximas fases. Esse cenário indica que o processo de KDD é iterativo, buscando sempre aprimorar os resultados a cada iteração. Na execução do processo de KDD o usuário analisa as informações geradas em cada fase e procura incorporar sua experiência de analista de dados para obter cada vez mais melhores resultados. 2.2.1 Data Warehousing: Organização de grandes volumes de dados O processo de KDD deve iniciar a construção de um Data Warehousing (DW). ... 2.2.1.1 OLAP: Processamento Analítico On-Line (On-Line Analytical Processing) O Processo Analítico On-Line motiva-se pela necessidade de minerar conhecimento e padrões em diferentes níveis de abstração através de análises multidimensionais dos dados, ou seja, uma visão lógica dos dados. ... -6- 2.2.2 Pré-processamento dos dados ... 2.2.2.1 Limpeza dos dados A limpeza dos dados envolve uma verificação da consistência das informações, a correção de possíveis erros e o preenchimento ou a eliminação de valores nulos e redundantes. ... 2.2.2.2 Seleção dos dados Na seleção dos dados deseja-se escolher apenas atributos relevantes do conjunto de atributos do banco de dados. ... 2.2.3 Enriquecimento dos dados -7- 3 MINERAÇÃO DE DADOS 3.1 INTRODUÇÃO Conforme mencionado no Capítulo 2, a mineração de dados é considerada a principal fase do processo de KDD. ... 3.2 TÉCNICAS E ALGORITMOS PARA A MINERAÇÃO DE DADOS A mineração de dados possui não só um amplo espectro de aplicações, mas também de técnicas, algoritmos e procedimentos. Nas seções a seguir são mostrados, resumidamente, os fundamentos das principais técnicas e a sua modelagem para a mineração de dados. 3.2.1 Redes Neurais Artificiais 3.2.1.1 Introdução às Redes Neurais Artificiais Uma Rede Neural Artificial (RNA) é uma técnica computacional que constrói um modelo matemático, emulado por computador, de um sistema neural biológico simplificado, com capacidade de aprendizado, generalização, associação e abstração. ... 3.2.1.2 Modelagem de Redes Neurais Artificiais em Mineração de Dados -8- As principais aplicações de Redes Neurais em mineração são classificação, clustering, aproximação de funções, previsão e verificação de tendências. ... 3.2.2 Algoritmos Genéticos Algoritmos Genéticos são modelos estocásticos e probabilísticos de busca e otimização, inspirados na evolução natural e na genética, aplicados a problemas complexos de otimização. ... 3.2.2.1 Introdução a Algoritmos genéticos Um Algoritmo Genético (AG) é um modelo de otimização inspirado na teoria biológica, mais precisamente, no conceito evolucionário da sobrevivência do mais apto, a seleção natural. ... 3.2.2.2 Modelagem de Algoritmos Genéticos para a Mineração de Dados Os AGs têm sido empregados em mineração de dados para as tarefas de classificação e descrição de registros de uma base de dados, além da seleção de atributos de bases de dados que melhor caracterizem o objetivo da tarefa de KDD proposta. -9- 4 ESTUDO DE CASOS ... - 10 - 5 CONCLUSÕES E TRABALHOS FUTUROS 5.1 CONCLUSÕES O objetivo do trabalho apresentado foi mostrar, através da criação de um modelo baseado em Algoritmos Genéticos, que para a fase de mineração de dados, parte fundamental do processo de KDD, esse é mais um método viável para extração de conhecimento. Para isso ... 5.2 TRABALHOS FUTUROS Algumas direções podem ser apontadas para a continuidade desse trabalho. Detalhes sobre essas direções são fornecidas em seguida. 1. Criação de operadores genéticos mais afinados com o problema proposto, por exemplo, um operador de incremento (CREEP). 2. Análise mais profunda sobre as funções de avaliação. A criação de operadores genéticos mais afinados com o problema ajudará na convergência da evolução genética e numa melhor qualidade das regras encontradas. Este trabalho motivou o estudo de funções de avaliação em Algoritmos Genéticos aplicados à Mineração de Dados. Entretanto, esse tópico por si só é motivo para outras pesquisas, e após essa etapa agora finalizada, acredita-se que existam funções que sejam - 11 - “boas” em qualquer banco de dados e funções mais específicas para um determinado tipo de base de dados. - 12 - REFERÊNCIAS BIBLIOGRÁFICAS [PIAT91] G. Piatetsky-Shapiro. Knowledge discovery in real databases: A report on the IJCAI-89 Workshop. AI Magazine, Vol. 11, No. 5, Jan. 1991, Special issue, 68-70. {As referências são criadas inserindo notas de fim de arquivo personalizadas. O padrao utilizado foi 4 letras do sobrenome e o ano da publicacao}