You are on page 1of 121

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO PARANÁ

Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial

DISSERTAÇÃO
apresentada ao CEFET-PR
para obtenção do título de

MESTRE EM CIÊNCIAS

por

CÉLIA CRISTINA BOJARCZUK

PROGRAMAÇÃO GENÉTICA COM RESTRIÇÕES PARA

DESCOBERTA DE CONHECIMENTO EM

BASES DE DADOS MÉDICOS

Banca Examinadora:

Presidente e Orientador:
Prof. Dr. HEITOR SILVÉRIO LOPES CEFET-PR

Co-orientador:
Prof. Dr. ALEX ALVES FREITAS PUC-PR

Examinadores
Prof. Dr. FERNANDO JOSÉ VON ZUBEN UNICAMP
Profª. Drª. TANIA MEZZADRI CENTENO CEFET-PR

Curitiba, 17 de maio de 2001

ii

“Podeis fazer todo o bem que quiserdes.
Se não o fizerdes bem, de nada servirá.”

São Vicente de Paula

iii

iv .

por tudo. pelo apoio. Aos amigos Adriana. contribuíram com sugestões. pelas sugestões e orientação do trabalho. como orientador. Erasto Gaertner – Curitiba) por ter cedido a base de dados pediatric adrenocortical tumor que foi utilizada exclusivamente neste trabalho. Igor Alexandre de Lima. respectivamente Prof.. enquanto realizava o Mestrado. Dr. Denise Raquel S. como co-orientador. Luiz Oswaldo de Andrade do Departamento Acadêmico de Eletrotécnica. atenção. colaboração e incentivo. Ao Juarez pelo apoio. Ao Prof. Ao Alex Alves Freitas. Prof. AGRADECIMENTOS Ao Prof. incentivo. Aos chefes atual e anteriores do Departamento Acadêmico de Eletrotécnica do CEFET-PR. pelo carinho e pela compreensão nos momentos mais difíceis durante o Mestrado. José Alberto Coraiola. pela amizade e pelo atendimento cordial e eficiente. dos Santos. Marcio Aparecido Batista e Profª. À Bibliotecária Arlene de Oliveira Dias. do CEFET-PR.. César Janeczko. pelo apoio e suporte durante a realização do Mestrado. pela sua amizade e pelo apoio durante a realização do Mestrado. carinho e compreensão. Michalkiewicz ( Hosp. À secretária do Departamento Acadêmico de Eletrotécnica. Dorigo Barão. Eutrópio Vieira Batista. durante todo o tempo da realização do Mestrado. Ao Dr. Carlos Henrique Mariano e Prof. a Deus. e ao atual e anterior coordenadores do Curso Técnico de Eletrotécnica e Curso de Tecnologia em Eletrotécnica. E finalmente. mesmo não tendo sido citadas aqui. Marcelo Rodrigues. críticas. amizade. Aos amigos do Laboratório de Biomédica pela companhia e pelo apoio durante a realização do Mestrado. Edson L. v . Rosana Mayer. Prof. que assumiu a responsabilidade do setor de informática do DAELT. Denize L. além das inúmeras contribuições durante as reuniões e em conversas posteriores. Heitor Silvério Lopes. tornando este trabalho uma realidade. pela motivação e paciência com a qual se dispôs a partilhar comigo as idéias que resultaram neste trabalho. A todas aquelas pessoas que. Aos meus pais pelo apoio e pela lição de vida. Rafael Stubs Parpinelli e Rosalba da Costa pela amizade. Alessandro Moure.

vi .

2. SUMÁRIO LISTA DE ILUSTRAÇÕES x LISTA DE TABELAS xi LISTA DE ABREVIATURAS E SIGLAS xiii RESUMO xv ABSTRACT xvi 1 INTRODUÇÃO 1 1.3.2.2 Ordenamento 20 2.3.1 ALGORITMOS EVOLUCIONÁRIOS 5 2.3.3.1.1 MOTIVAÇÃO 1 1.1.3.3.3.2.3.1.2.3 Fitness ajustado 12 2.4 Fitness normalizado 13 2.3.3.3.3.3.4 Sobre-seleção 21 vii .3.6 Permutação e Dizimação 19 2.2 Fitness padronizado 12 2.3 Torneio 20 2.2 Operadores genéticos 14 2.3.3 Métodos de seleção 20 2.3 ESTRUTURA DA DISSERTAÇÃO 3 2 PROGRAMAÇÃO GENÉTICA 5 2.4 Edição 17 2.3.2 INTRODUÇÃO À PROGRAMAÇÃO GENÉTICA 6 2.3.1.2 OBJETIVO 2 1.3.3 Mutação 16 2.3 DESCRIÇÃO DETALHADA DOS ELEMENTOS DO ALGORITMO DE PROGRAMAÇÃO GENÉTICA 7 2.3.2.1 Fitness direto 11 2.5 Encapsulamento 18 2.3.1 Função de fitness 10 2.1 Crossover 14 2.2.3.2 Reprodução 16 2.1 Proporcional ao fitness 20 2.

1 Definição 38 3.3.3.2 Pediatric adrenocortical tumor 61 viii .4 Critério de parada 21 2.2.2.1 BASES DE DADOS 55 5.3 MODELAGEM DE DEPENDÊNCIA 38 3.3.3 Restrições para entradas e saídas de operadores lógicos e relacionais 47 4.5 Definição do resultado 22 2.4 Restrição do número de atributos meta nos antecedentes da regra 48 4.4.4 PROGRAMAÇÃO GENÉTICA COM RESTRIÇÕES 24 2.3.2 Sistema CGP (Constrained genetic programming) 28 2.1.2.2.2 REPRESENTAÇÃO DE UM INDIVÍDUO 43 4.3 FUNÇÃO DE FITNESS 48 4.4 OPERADORES GENÉTICOS 50 4.1.4.4.1 Definição 34 3.2. 2.1 Introdução 24 2.5 FORMAÇÃO DO CONSEQÜENTE DAS REGRAS 51 4.4.1 INTRODUÇÃO 33 3.1 Dor torácica 56 5.2 Estruturas sintáticas com restrições 24 2.3 Programação genética baseada em gramática 30 3 DATA MINING 33 3.6 IMPLEMENTAÇÃO 52 5 EXPERIMENTOS COMPUTACIONAIS E RESULTADOS 55 5.3.5 Estratégia Elitista 21 2.2 Trabalhos relacionados a modelagem de dependência usando algoritmos evolucionários 39 4 DESENVOLVIMENTO DO SISTEMA DE PROGRAMAÇÃO GENÉTICA 43 4.4.2 Restrição de unicidade de atributo em um antecedente da regra 46 4.1 Restrições hierárquicas entre AND e OR 45 4.2 Trabalhos relacionados a classificação usando algoritmos evolucionários 34 3.2 CLASSIFICAÇÃO 34 3.3.3.2.1 Programação genética fortemente tipificada 25 2.1 INTRODUÇÃO 43 4.6 Parâmetros de controle 22 2.2.2.

1.3 TRABALHOS FUTUROS 90 INDICE REMISSIVO DE AUTORES CITADOS 93 REFERÊNCIAS BIBLIOGRÁFICAS 97 ix .4 RESULTADOS 68 5.5 Base de dados: nursery 81 6 DISCUSSÃO E CONCLUSÕES 87 6.4 Base de dados: dermatology 78 5.4.2 CONCLUSÕES 89 6. 5.5 Nursery 65 5.1.1 Base de dados: dor torácica 69 5.3 VALIDAÇÃO CRUZADA 67 5.3 Base de dados: Ljubljana breast cancer 75 5.4.1 ANÁLISE DOS RESULTADOS 87 6.2 Base de dados: pediatric adrenocortical tumor 72 5.1.4.4.3 Ljubljana breast cancer 63 5.4 Dermatology 64 5.2 VALORES DOS PARÂMETROS DA PROGRAMAÇÃO GENÉTICA 66 5.4.

x .

LISTA DE ILUSTRAÇÕES 1 Criação de uma estrutura inicial 9 2 Fitness padronizado e fitness ajustado 13 3 Exemplo de operação genética de crossover 15 4 Exemplo de árvore gerada seguindo conceitos de STGP 27 5 Solução inicial para o exemplo de CGP 29 6 Exemplo de gramática 30 7 Indivíduo gerado pela programação genética baseada em gramática 31 8 Algumas tarefas de data mining ordenadas pela complexidade 34 9 Exemplo de um indivíduo representado por uma árvore binária 45 10 Exemplos de indivíduos com restrições hierárquicas 46 11 Exemplo de uma árvore gerada pela programação genética para a base de dados dor torácica 72 12 Exemplo de uma árvore gerada pela programação genética para a base de dados pediatric adrenocortical tumor 75 13 Exemplo de uma árvore gerada pela programação genética para a base de dados Ljubljana breast cancer 78 14 Exemplo de uma árvore gerada pela programação genética para a base de dados dermatology 81 15 Exemplo de uma árvore gerada pela programação genética para a base de dados nursery 85 xi .

xii

LISTA DE TABELAS

1 Conjunto de funções 27
2 Conjunto de funções do CGP 28
3 Argumentos de entrada e saída dos operadores 47
4 Descrição dos atributos presentes na base de dados dor torácica 56
5 Descrição das classes e sua distribuição na base de dados dor torácica 60
6 Descrição dos atributos da base de dados pediatric adrenocortical tumor 61
7 Descrição dos exemplos positivos e negativos para cada classe 63
8 Descrição dos atributos presentes na base de dados Ljubljana breast cancer 63
9 Descrição das classes e sua distribuição na base de dados Ljubljana breast cancer 64
10 Descrição dos atributos presentes na base de dados dermatology 64
11 Descrição das classes e sua distribuição na base de dados dermatology 65
12 Descrição dos atributos presentes na base de dados nursery 66
13 Descrição das classes e sua distribuição na base de dados nursery 66
14 Restrições e operadores lógicos 67
15 Resultados para a base de dados dor torácica 69
16 Resultados de teste para a base de dados dor torácica 70
17 Melhor regra para cada classe da base de dados dor torácica 71
18 Resultados para a base de dados pediatric adrenocortical tumor 73
19 Resultados de teste para a base de dados pediatric adrenocortical tumor 73
20 Taxa de acerto para a base de dados pediatric adrenocortical tumor 73
21 Número de condições para a base de dados pediatric adrenocortical tumor 74
22 Melhor regra dos experimentos da base de dados pediatric adrenocortical tumor 74
23 Resultados para a base de dados Ljubljana breast cancer 75
24 Resultados de teste para a base de dados Ljubljana breast cancer 76
25 Melhor regra para cada classe da base de dados Ljubljana breast cancer pela PG 77
26 Regras para a base de dados Ljubljana breast cancer pelo AG 77
27 Regras para a base de dados Ljubljana breast cancer pelo C-MLP2LN 77
28 Resultados para a base de dados dermatology 78
29 Resultados de teste para a base de dados dermatology 79
30 Melhor regra para cada classe da base de dados dermatology pela PG 80

xiii

31 Regras descobertas para a base de dados dermatology pelo AG 80
32 Resultados para a base de dados nursery 82
33 Taxa de acerto para a base de dados nursery 82
34 Regra para cada conseqüente da base de dados nursery pela PG 83
35 Regra para cada conseqüente da base de dados nursery pelo AG de Noda et al. 84
36 Regra para cada conseqüente da base de dados nursery pelo AG de Araújo et al 84

xiv

Intra-ventricular LDL .Eletrocardiograma GA .LISt Processor xv .Genetic-Based Inductive Learning HAS .Constrained Genetic Programming CPK-MB .Atrioventricular CGP .Automatic Defined Functions AG .High Density Lipoprotein HEG .Algoritmo Genético AV .Creatinine Kinase Phosphate – Myocardium DAC .Programação Genética SQL .Doença Artéria Coronariana DAS .Low Density Lipoprotein NASA .Strongly Typed Genetic Programming LISP .Hipertensão Arterial Sistêmica HDL .Genetic Algorithm GIL .Doença Arterial Sistêmica ECA .Structured Query Language STGP .Ácido Acetil Salicílico ADFs .National Aeronautics & Space Administration PG .Enzima Conversora da Angiotensina ECG .Hospital Erasto Gaertner IV . LISTA DE ABREVIATURAS E SIGLAS AAS .

xvi .

e com alguns trabalhos publicados. Resultados computacionais para a tarefa de classificação foram obtidos utilizando-se quatro bases de dados da área médica. O sistema de programação genética proposto conseguiu descobrir regras compreensíveis e corretas. onde há apenas um atributo-meta a ser previsto.5. xvii . Resultados computacionais para a tarefa de modelagem de dependências foram obtidos utilizando uma base de dados de domínio público. e a outra é voltada para a tarefa de modelagem de dependências (considerada uma generalização da tarefa de classificação). sendo duas de domínio público. O sistema de programação genética desenvolvido é comparado com o C4. RESUMO Este trabalho propõe a utilização de programação genética (PG) com restrições sintáticas para a descoberta de regras de previsão (do tipo SE-ENTÃO) compreensíveis a partir de dados. onde há vários atributos-meta a serem previstos. no espírito de data mining. um algoritmo bastante conhecido para indução de regras. Duas variantes de PG são propostas: uma é voltada para a tarefa de classificação. o que é importante do ponto de vista de data mining.

xviii .

Computational results for the classification task were obtained by using four medical data sets – out of which two are public domain data sets. The proposed GP system successfully discovered comprehensible. and with some published project results. Two variants of GP are proposed: one designed for the classification task. accurate rules. The GP system is compared with C4. Computational results for the dependence modeling task were obtained by using a public-domain medical data set. and the other one designed for the dependence modeling task (considered a generalization of the classification task). a well-known data mining algorithm. which is important from a data mining viewpoint. in the spirit of data mining. ABSTRACT This work proposes the use of constrained-syntax Genetic Programming (GP) for discovering comprehensible IF-THEN prediction rules from data. where there is a single goal attribute to be predicted. where there are several goal attibutes to be predicted.5. xix .

conhecidos os valores dos atributos previsores. PIATETSKY-SHAPIRO e SMYTH. Modelagem de dependência é uma tarefa de data mining que pode ser vista como uma generalização da tarefa de classificação. Acredita-se que esta seja uma área promissora. é uma área relativamente pouco explorada. o usuário pode combinar os resultados do sistema com o conhecimento de outras técnicas automáticas. 1 CAPÍTULO 1 INTRODUÇÃO 1. Em uma base de dados pode-se ter vários atributos relacionados e o usuário desconhecer este fato. no espírito de data mining. Contudo. É possível utilizar técnicas de data mining para a identificação de regras que relacionem os atributos de um mesmo banco de dados. sendo fornecidos os valores de outros atributos. Freqüentemente.1 MOTIVAÇÃO Existe um interesse crescente na área de data mining (mineração de dados). o usuário pode entender os resultados do sistema e combiná-los com seu conhecimento para tomar uma decisão correta. ao contrário de classificação. mas que seja também compreensível para o usuário (FAYYAD. 1996). as regras são representadas na forma SE-ENTÃO. cuja meta é descobrir conhecimento que não seja apenas correto. Esta pesquisa investiga o uso de programação genética em duas tarefas de data mining: classificação e modelagem de dependência. através do uso coerente de valores dos atributos previsores. Também. o objetivo é predizer o valor de um atributo-meta. e a parte ENTÃO é o conseqüente e prediz o valor para algum atributo-meta. o objetivo também é descobrir regras que predizem o valor de um atributo meta. O uso de programação genética (KOZA. devido à eficácia de programação genética em problemas com espaço de busca muito grande e sua habilidade para executar uma busca flexível e abrangente. em vez de confiar cegamente num sistema com resultados incompreensíveis. Em classificação. Assim. Em modelagem de dependência. a parte SE é o antecedente e pode ser formada por combinações lógicas dos atributos previsores e seus respectivos valores. denominados atributos previsores. existe mais de um . pode rever políticas de geração de dados e pode convencer outros indivíduos acerca das potencialidades do processo de data mining. 1992) para descobrir regras de classificação compreensíveis.

diferentes regras podem ter diferentes atributos-meta no seu conseqüente.2 OBJETIVO A proposta do trabalho é a utilização da programação genética para a descoberta de regras em uma base de dados. Para a descoberta destas regras. são algoritmos do tipo subida-de- colina (hill-climbing) onde pode ocorrer o fato do algoritmo encontrar apenas pontos de máximo locais e não um máximo global. As regras serão utilizadas para verificar a existência de algum relacionamento entre os vários atributos existentes no banco de dados.2 atributo-meta. Portanto. A parte ENTÃO da regra contém um dos possíveis atributos-meta. serão realizadas duas tarefas de data mining. Deseja-se que existam no mínimo duas regras. unicidade de atributo em um antecedente da regra. Algumas restrições deverão ser feitas para se obter uma regra válida. Uma grande parte dos trabalhos feitos na área de data mining foram realizados com algoritmos do tipo árvores de decisão ou indução de regras (QUINLAN. isto é. Este tipo de algoritmo apresenta o problema de máximos locais. A proposta do trabalho é investigar a eficácia da programação genética na descoberta de regras de previsão do tipo SE-ENTÃO. A utilização de programação genética procura minimizar este problema à medida que este tipo de abordagem executa uma busca global sobre o espaço de solução do problema (KOZA. A parte SE da regra é formada por uma combinação lógica dos atributos (categóricos ou contínuos) e seus respectivos valores e / ou por uma combinação lógica de atributos booleanos. As tarefas a serem realizadas são classificação e modelagem de dependência. cujo valor deve ser previsto para aquela base de dados. conforme explicado anteriormente. levando-se em consideração: a disponibilidade de bancos de dados na área. pois na prática o conjunto de todos os exemplos com um determinado valor do atributo-meta dificilmente pode ser coberto por uma única regra conjuntiva (usando apenas o operador AND para combinar condições). A principal aplicação para este trabalho é a mineração (mining) de banco de dados da área médica. 1. 1992). dentre as várias existentes. a . tais como: hierarquias entre os operadores lógicos AND e OR. relação entre entradas e saídas de operadores lógicos e relacionais e ao número de atributos-meta nos antecedentes da regra. 1993).

3 ESTRUTURA DA DISSERTAÇÃO Esta dissertação está organizada da seguinte forma. A motivação e o objetivo são apresentados nas seções anteriores deste capítulo. . conclusões e trabalhos futuros estão no capítulo 6. Uma visão geral dos principais conceitos de data mining e trabalhos correlacionados são apresentados no capítulo 3. Os experimentos e os resultados do sistema proposto são apresentados no capítulo 5. a acessibilidade a um banco de dados e até mesmo o interesse existente nestes banco de dados. O sistema de programação genética com restrições para a tarefa de modelagem de dependência é proposto no capítulo 4. A discussão dos resultados. 1. apresenta-se uma descrição do funcionamento da programação genética e programação genética com restrições. No capítulo 2. 3 adequabilidade dos mesmos para este trabalho.

4 .

1973). Tal avaliação é feita pela função de fitness. tais como a auto-organização e o comportamento adaptativo. Assim. o equilíbrio entre a eficiência e a eficácia necessária para a aplicação a muitos problemas diferentes. Dentre os vários sistemas propostos baseados em computação evolucionária tem-se: algoritmos genéticos (GOLDBERG. Algoritmos genéticos são algoritmos de busca baseados no mecanismo da seleção natural e na genética. OWENS e WALSH. .1 ALGORITMOS EVOLUCIONÁRIOS Computação evolucionária é um ramo da ciência da computação que propõe um paradigma alternativo ao processamento de dados convencional. 1989). para obter assim um desempenho quase ótimo (GOLDBERG. 1966) e estratégias evolucionárias (RECHENBERG. Se um sistema artificial é feito de forma robusta. programação genética (KOZA. não exige. Se altos níveis de adaptabilidade forem atingidos. desempenhos melhores para suas funções poderão ser obtidas. O tema central dos algoritmos genéticos tem sido a robustez. para resolver um problema. Eles se baseiam na sobrevivência do melhor candidato à solução de um problema. 5 CAPÍTULO 2 PROGRAMAÇÃO GENÉTICA 2. A soluções candidatas são normalmente representadas por criaturas artificiais (strings de símbolos). programação evolucionária (FOGEL. que são avaliados segundo a sua capacidade de oferecer uma solução satisfatória para o problema. A cada geração um novo conjunto de criaturas artificiais são criadas usando pedaços dos melhores strings atuais. remodelagens custosas podem ser reduzidas ou eliminadas. uma nova população é criada através de escolhas adequadas. A computação evolucionária é baseada em mecanismos evolutivos encontrados na natureza. Existem diversos motivos para desenvolver sistemas artificiais robustos. 1989). 1992). diferentemente do convencional. o conhecimento prévio de uma maneira de encontrar uma solução. Este novo paradigma. Os algoritmos genéticos exploraram eficientemente informações históricas para guiar a busca por novos pontos promissores no espaço de busca.

As árvores T1... conjuntos disjuntos T1. Seguindo a definição. Tm são denominadas subárvores da raiz. O número de subárvores de um nó é chamado de grau daquele nó.2 INTRODUÇÃO À PROGRAMAÇÃO GENÉTICA Programação genética é derivada do algoritmo genético e é um poderoso método de busca inspirado na seleção natural.. Um nó de grau zero é chamado de nó terminal ou às vezes nó “folha”.. . Estes algoritmos são computacionalmente simples e são um poderoso método para buscas. 1973). 1989): 1. 2. 1992). AGs realizam uma busca usando uma população de pontos e não um único ponto. Uma árvore é definida como um conjunto finito T de um ou mais nós. funções matemáticas. As funções podem ser operadores aritméticos. 3.6 A robustez destes algoritmos foi provada teoricamente e empiricamente para ambientes de buscas complexos. compostos de funções e terminais apropriados para o domínio do problema. . raiz ( T ) e os demais nós (excluindo o raiz) são divididos em m ≥ 0. . tais que: exista um nó designado chamado a raiz da árvore. operadores lógicos. A idéia básica é evoluir uma população de “programas” candidatos à solução de um problema específico.. A programação genética começa com uma população inicial de programas gerados aleatoriamente. AGs usam operadores probabilísticos e não operadores determinísticos. Tm e cada um destes conjuntos é por sua vez uma árvore (KNUTH.. Um nó não terminal é chamado freqüentemente de nó filho. Além disso eles não são limitados por suposições a respeito do espaço de busca. AGs usam a informação de uma função objetivo e não derivadas ou conhecimento auxiliar sobre o problema. Um algoritmo genético (AG) difere dos algoritmos de buscas tradicionais principalmente em quatro aspectos (GOLDBERG. Um programa (um indivíduo da população) é usualmente representado sob a forma de uma árvore onde os nós internos são funções (operadores) e os nós de folha são símbolos terminais (KOZA. 2. 4. AGs geralmente trabalham com uma codificação do conjunto de parâmetros e não com os parâmetros propriamente ditos. todo nó de uma árvore é a raiz de alguma subárvore incluída na árvore inteira.

A reprodução seleciona um programa da população corrente. Esta criação aleatória da população inicial representa uma procura aleatória no espaço de busca do problema. as estruturas submetidas à adaptação são programas estruturados hierarquicamente. Tipicamente. às vezes.3 DESCRIÇÃO DETALHADA DOS ELEMENTOS DO ALGORITMO DE PROGRAMAÇÃO GENÉTICA No algoritmo de programação genética. a população de descendentes. uma amostragem de diferentes valores de uma variável independente ou de diferentes condições iniciais de um sistema. O tamanho. de modo que o seu fitness é medido como uma soma ou uma média ao longo de várias situações diferentes do problema. Tipicamente. formando assim um novo indivíduo possivelmente mais eficaz que seus dois antecedentes. a nova geração. substitui a população anterior. proporcionalmente ao seu fitness. a forma e os conteúdos destes programas podem variar dinamicamente durante o processo de evolução. O fitness de cada indivíduo na nova população de programas é calculado e o processo é repetido ao longo de muitas gerações. e garante sua sobrevivência copiando-o para a próxima geração. Cada indivíduo da população é medido em termos do quão bem ele se sai como solução no ambiente particular do problema. 2. Estes casos de teste representam. Tais diferenças serão então exploradas através das operações genéticas de reprodução e recombinação. Esta medida é denominada medida de fitness. 7 programas ou funções específicas ao domínio do problema. os programas na geração inicial terão fitness extremamente baixo. Mesmo assim. A recombinação consiste na união de trechos aleatoriamente escolhidos de dois indivíduos da população atual. Depois que as operações de reprodução e recombinação forem feitas sobre a população corrente. O conjunto de estruturas existentes no algoritmo de programação genética é formado por todas as combinações que podem ser compostas de forma recursiva a partir das funções . isto é. A menos que o problema seja simples de forma que uma busca cega aleatória possa resolvê-lo. cada programa da população é executado ao longo de diferentes casos de teste. alguns indivíduos da população terão fitness maior que outros. o melhor indivíduo que surgiu ao longo de todas as gerações é definido como o resultado produzido pela programação genética.

log). *). a função de multiplicação. s funções específicas ao domínio do problema.8 (definidas no conjunto de funções) e dos terminais (definidos no conjunto de terminais). detectores ou variáveis de estado de algum sistema. ordenados hierarquicamente. exp. s operações condicionais (por exemplo: if-then-else). . A propriedade de fechamento requer que cada uma das funções do conjunto de funções seja capaz de aceitar. composta pelas funções do conjunto de funções e pelos terminais do conjunto de terminais. s funções matemáticas (por exemplo: sen. Os conjuntos de funções e de terminais devem satisfazer às propriedades de fechamento e suficiência. A propriedade da suficiência requer que o conjunto de terminais e o conjunto de funções sejam capazes de expressar a solução do problema. or. como por exemplo números inteiros ou reais. os terminais são variáveis. como seus argumentos. As funções podem incluir: s operações aritméticas (por exemplo: +. Esta função requer dois argumentos. usando-se uma distribuição de probabilidade uniforme. Os terminais também podem ser funções que não requerem argumentos explícitos. qualquer função do conjunto de funções deve ser “fechada” para quaisquer combinações de argumentos que possam ocorrer. A escolha do elemento inicial de uma árvore se restringe às funções porque o objetivo é gerar uma estrutura hierárquica e não um elemento consistindo de apenas um terminal. not). A criação de cada indivíduo na população inicial é feita pela geração aleatória de uma árvore. cos. por exemplo. O usuário da programação genética deve saber ou acreditar que alguma composição de funções e terminais por ele fornecidas possa levar à solução do problema. ou ainda constantes. Em outras palavras. dentre as quais se encontram as representações de entradas. Inicia -se com a seleção aleatória de uma função para ser a raiz da árvore. e qualquer valor de qualquer tipo que possa ser assumido por qualquer terminal no conjunto de terminais. s funções recur sivas (por exemplo: fatorial). As estruturas iniciais na programação genética consistem dos indivíduos da população inicial. sensores. s funções iterativas (por exemplo: do-until). s operações booleanas (por exemplo: and. -. qualquer valor e tipo de dado que possa ser retornado por qualquer função do conjunto de funções. Tipicamente. representados pelas duas linhas descendentes. como mostra a figura 1a.

20% das árvores terão profundidade 2. O número relativo de funções e de terminais determina o comprimento esperado dos caminhos entre a raiz e os pontos finais da árvore. O método “total” cria árvores cujo comprimento de cada caminho sem retorno é igual à máxima profundidade de árvore especificada. como mostra a figura 1c. “grow” e “ramped half-and-half” respectivamente. Então. 2 “full”. . para cada valor de 1 Do original nonbacktracking. envolvendo tanto o “total” quanto o “de crescimento”. dentre os quais: o “total”. * * * % % y k w (a) (b) (c) Figura 1 – Criação de uma estrutura inicial. até a profundidade 6. Por exemplo. e consiste na criação de uma mesma quantidade de árvores usando um parâmetro de profundidade que varia entre 2 e a máxima profundidade especificada. A profundidade da árvore é definida como o comprimento do maior percurso sem retorno1 desde a raiz até um ponto final. A figura 1b ilustra a escolha da função de divisão para o ramo esquerdo proveniente da função multiplicação. Para os demais pontos. 9 O próximo passo é selecionar aleatoriamente um elemento da união entre os conjuntos de terminais e de funções. no máximo. o de “crescimento” e o “escalonamento meio a meio”2. O método “escalonamento meio a meio” é um método misto. se a profundidade máxima especificada é 6. Note-se que a função divisão também requer dois argumentos. aquele ponto passa a ser um ponto final e o processo de geração termina para aquele ramo. até que uma árvore completamente definida seja obtida. o processo continua recursivamente. Há vários métodos de geração das árvores. Se um terminal for selecionado para um ponto da árvore. 20% terão profundidade 3 e assim por diante. O método “de crescimento” cria árvores de formas variáveis. sendo que o comprimento de cada caminho sem retorno é. para cada um dos ramos da árvore ligados à raiz. igual à máxima profundidade de árvore especificada.

ao qual é associado um valor escalar por meio de um determinado procedimento avaliador. Em programação genética. o problema possivelmente pode ser resolvido por busca cega. Se for uma cópia. Assim. Assim. não tendo a necessidade de empregar a programação genética. 1992). deve-se inserir 100% dos indivíduos da população inicial e com nível similar de fitness. após apenas uma geração. indivíduos aleatórios duplicados ocorrem com maior probabilidade quando as árvores são pequenas. Portanto.1 Função de fitness O fitness pode ser medido de várias maneiras diferentes. de forma explícita ou implícita. 2. evitar cópias na população aleatória inicial. 3 Se o fitness não for baixo para a população inicial aleatória. é desejável. Com isso existirá uma tendência para que na próxima geração os descendentes daqueles indivíduos apresentem dominância da população. sendo o preferido para a maioria das aplicações (KOZA. Esta definição implícita de fitness é freqüentemente usada em pesquisa de vida artificial. . Considere-se a situação em que indivíduos escolhidos pelo usuário são inseridos na população inicial aleatória de fitness necessariamente baixo3. devido às cópias de descendentes dos indivíduos de maior fitness inseridos. assim como ocorre na natureza. Indivíduos duplicados na geração inicial são improdutivos e desnecessários. por exemplo. Em termos de diversidade genética. o resultado será. O fato de indivíduos existirem e sobreviverem numa população e se reproduzirem com sucesso pode ser um indicativo de seu fitness. verifica-se se cada indivíduo produzido é único. Outro método é o co-evolucionário em que. a começar com uma população de tamanho igual ao número relativamente pequeno de indivíduos inseridos. antes de inseri-lo na população inicial. O método mais comum de se medir o fitness é criar uma medida explícita de fitness para cada indivíduo na população. porque desperdiçam recursos computacionais e reduzem indesejavelmente a diversidade da população.10 profundidade. porém não necessário. o processo de geração é repetido até que um novo indivíduo seja criado. este método cria árvores com uma ampla variedade de formas e tamanhos. 50% das árvores são criadas pelo método “total” e 50% pelo método “de crescimento”. da mesma forma que para certo percentual da população nos métodos “de crescimento” e “escalonamento meio a meio”. Para se fazer a inserção de indivíduos pré-determinados.3. o fitness de uma estratégia de jogo é determinado jogando aquela estratégia contra uma população inteira (ou amostrada) de estratégias oponentes. muito similar.

o problema da formiga artificial (KOZA. melhor. tomadas ao longo de todos os “casos de fitness”. 2. padronizado. . a soma das distâncias é a soma dos valores absolutos das diferenças entre os números envolvidos.1. porque eles formam a base para a generalização dos resultados obtidos para o domínio de busca total. adjusted e normalized. em geral. os quais fornecem uma base para avaliar o fitness de cada indivíduo na população. para o caso de fitness j. sua forma para um indivíduo i numa população de tamanho M na geração t é dado por: Ne ri (t ) = ∑ S i ( j ) − C ( j ) [1] j =1 Onde S i(j) é o valor retornado pelo indivíduo i para o caso de fitness j.3. No caso do indivíduo retornar um valor inteiro ou um valor real. entre a resposta retornada pelo indivíduo e a resposta correta associada ao caso de fitness em particular. respectivamente. utilizada por KOZA (1992). O fitness direto varia de zero ao número de pedaços disponíveis. de Ne casos possíveis. Quanto mais comida. 1997) consiste em definir a melhor trajetória com o objetivo de que todos os pedaços de comida sejam encontrados ao longo de uma região pré-definida. Os casos de fitness são tipicamente uma pequena amostra do espaço de busca do problema que. Em geral. e C(j) é o valor correto. 4 raw. 1992. é muito grande ou infinito. 11 A seguir são descritas quatro medidas de fitness calculadas explicitamente: direto. ajustado e normalizado4. o fitness é avaliado sobre um conjunto de “casos de fitness”. HARRIES e SMITH. Por exemplo. de fitness direto é o erro. Os casos de fitness devem ser representativos do espaço de busca como um todo. ao longo de várias situações representativas e suficientemente numerosas de modo que uma faixa de valores numéricos diferentes de fitness possa ser obtida. o número de pedaços de comida encontrados é o fitness para cada trajetória individual da população. Assim. o fitness direto de um indivíduo é a soma das distâncias. Quando o fitness direto é o erro.1 Fitness direto O fitness direto é a medida de fitness que é definida na terminologia natural do problema em si. A definição mais comum. standardized. Isto é.

do valor de fitness direto observado.3. ou acerto. e é maior para indivíduos melhores na população. maior ênfase é dada às pequenas diferenças que distinguem um bom . Se. de maneira que um valor numérico mais baixo seja sempre um valor melhor. o fitness padronizado é calculado subtraindo-se o maior valor possível de fitness.1. um valor menor de fitness direto é melhor. Portanto.2 Fitness padronizado O fitness padronizado redefine o fitness direto. à medida que a população melhora. denominado rmax. quando o fitness direto é o ganho. si (t ) = ri (t ) [2] s i (t ) = rmax − ri (t ) [3] 2. o melhor valor pode ser tanto o menor. um valor maior de fitness direto é melhor. A medida de fitness ajustado ai(t) é dada pela equação 4: a i (t ) = 1 [4] 1 + si (t ) em que si(t) é o fitness padronizado para o indivíduo i na geração t.12 Considerando-se que o fitness direto é definido na terminologia natural do problema. o fitness padronizado é igual ao fitness direto. quanto o maior. 2. O fitness ajustado se encontra entre 0 e 1. o que ocorre freqüentemente com as gerações mais avançadas de uma execução da programação genética.3 Fitness ajustado Pode-se aplicar um ajuste adicional ao valor de fitness.3. Não é necessário usar o fitness ajustado na programação genética.1. para um problema em particular. quando o fitness direto é o erro. como mostra a equação 3. o fitness ajustado tem o benefício de exagerar a importância das pequenas diferenças no valor do fitness padronizado quando este se aproxima de zero. ao contrário. Se. Entretanto. como indica a equação 2.

2. é maior para melhores indivíduos e a soma dos fitness normalizados de toda a população é 1. para a população M. . 1. pois tem-se a compressão da escala quando os fitness são muito grandes. Por exemplo.4 0. 13 indivíduo de outro muito bom. se o fitness padronizado pode variar entre 0 (o melhor) e 64 (o pior).3.6 0. a i (t ) n i (t ) = M [5] ∑ a (t ) k =1 k O fitness normalizado tem três características desejáveis: varia de 0 a 1. conforme a equação 5.2 1 fitness ajustado 0. o fitness ajustado é apresentado na figura 2.8 0. na geração t. Outro extremo ocorre nas gerações iniciais.1.2 0 0 10 20 30 40 50 60 70 fitness padronizado Figura 2 – Fitness padronizado e fitness ajustado. Esta ênfase é particularmente eficaz se o fitness padronizado realmente atinge zero quando uma solução perfeita para o problema é encontrada.4 Fitness normalizado O fitness normalizado ni(t) é calculado a partir do fitness ajustado.

14 2. O segundo descendente é criado de maneira simétrica.3. os pais têm tamanhos diferentes. Note- se que. como exemplifica a figura 3. os pais são as duas árvores superiores. no ponto de crossover do primeiro pai. A operação começa pela seleção de um ponto aleatório em cada um dos pais para ser o ponto de crossover. tipicamente. O primeiro descendente é produzido pela remoção do fragmento de crossover do primeiro pai e pela inserção do fragmento de crossover do segundo pai. os descendentes são as árvores inferiores e o ponto de crossover de cada pai é indicado pelo início da linha tracejada a partir da linha contínua. Os operadores genéticos principais são o crossover e a reprodução. A operação de crossover começa com dois indivíduos pais e produz outros dois indivíduos descendentes.1 Crossover O crossover é um operador que cria variação na população. embora outro método qualquer possa ser empregado. geralmente através de uma distribuição uniforme de probabilidade.2.3. 2.4) segundo uma relação baseada no fitness. a edição e o encapsulamento. Os pais são escolhidos da população através de um método de seleção (seção 2. Nessa figura. enquanto que os operadores genéticos secundários são a mutação.2. . pela produção de uma descendência que consiste de partes tomadas de cada indivíduo gerador.2 Operadores genéticos Na programação genética existem os operadores genéticos principais e os secundários. A fração de cada pai que contém a raiz da árvore é chamada de “fragmento de crossover”.

em geral os dois descendentes serão diferentes porque os pontos de crossover de cada indivíduo pai são geralmente diferentes. um indivíduo se recombina consigo mesmo. ou quando dois indivíduos idênticos se recombinam. Quando ocorre incesto. 15 OR OR NOT = AND AND A1 A2 3 NOT A3 ≤ A5 A1 A4 2 OR OR AND = AND NOT ≤ A5 A2 3 NOT A3 A1 A4 2 A1 Figura 3 – Exemplo da operação genética de crossover. isto é. . a operação de crossover sempre produz indivíduos sintaticamente corretos como descendentes. Considerando-se a ocorrência de trocas completas de subárvores e a aplicação da propriedade do fechamento entre as funções. no qual o ponto de recombinação selecionado se aplica a ambos os pais. Este é um ponto de contraste com o algoritmo genético convencional que opera sobre palavras de tamanho fixo. independentemente dos pais selecionados ou dos pontos de crossover.

ambos os pais são reproduzidos para a próxima população. Este ponto de mutação pode ser interno ou externo.3. isto faz com que exista uma probabilidade de convergência relativamente pequena da população. a próxima geração. sendo em torno de 10% da população. sem alteração. Com relação à convergência para sub-ótimos. o algoritmo da programação genética se comporta do seguinte modo: a operação de reprodução cria a tendência de convergência.3. Se isto não acontecer.16 Em geral. sendo em torno de 90% da população. isto é. A descendência criada pela recombinação tem um tamanho máximo permitido. No caso em que o crossover entre dois pais criaria um descendente de tamanho proibido. a operação de recombinação é abortada e um dos pais é escolhido para reprodução para a próxima população. 1992). 2. porque os pontos de recombinação podem ser diferentes (KOZA. um indivíduo é selecionado da população. todavia. Segundo KOZA (1992). da população corrente para a próxima população. A operação de mutação então remove toda a estrutura que se encontra no ponto de seleção e abaixo deste ponto na árvore e insere naquele ponto uma subárvore gerada aleatoriamente. o crossover exerce um movimento no sentido contrário. de acordo com algum método de seleção baseado no fitness. na programação genética o incesto produz indivíduos diferentes. ao contrário do algoritmo genético.2. O outro descendente do crossover com os mesmos pais ainda pode ser de tamanho permitido. a utilização da mutação do algoritmo genético convencional é “altamente inaplicável” na programação genética. 2. em seguida.3 Mutação A operação de mutação começa com a seleção de um ponto aleatório em um indivíduo. o indivíduo selecionado é copiado. respectivamente.2. isto é. e o valor da probabilidade de reprodução é baixo. medido pela profundidade máxima da árvore. Este limite previne o consumo de grandes quantidades de tempo computacional em poucos indivíduos extremamente grandes.2 Reprodução A operação de reprodução consiste de duas fases: primeiramente. uma função ou um terminal. Como o valor da probabilidade de crossover é elevado. pelas duas razões descritas a seguir: .

considerando-se que o objetivo da mutação é restaurar a diversidade genética perdida numa população no algoritmo genético convencional. na programação genética. porque opera somente sobre um indivíduo pai e produz apenas um indivíduo descendente. quando a programação genética é usada. uma alteração de trajetória num problema de otimização de trajetos. Além desta regra geral. não pelos valores que retorna.4 Edição A operação de edição possibilita a simplificação dos indivíduos.2. A operação de edição aplica a cada indivíduo da população. no caso em que a mutação poderia ser útil. Além disto. Por isso. a operação de edição vai avaliar a função e substituí-la pelo valor obtido na avaliação. mas por alguma ação produzida durante a sua execução. um conjunto de regras preestabelecidas. cada árvore. Portanto. também não é fixa. Em segundo lugar. Assim. sempre que os dois pontos de recombinação dos pais são pontos finais das árvores. em programação genética. uma vez que os indivíduos já foram 5 Denomina-se efeito colateral a situação em que uma função altera o estado do sistema em evolução. Por exemplo6. independentes do domínio do problema. Não há equivalente da operação de edição para o algoritmo genético convencional operando sobre palavras de comprimento fixo. a expressão (+ 9 7) será substituída por 13 e a expressão Booleana (AND T T) será substituída por T (true). de forma recursiva. funções e terminais não estão associados com posições fixas. É uma operação assexuada. a recombinação já fornece o mesmo resultado. é a seguinte: se qualquer função que não tem efeitos colaterais5 e não é dependente do contexto tem somente constantes como argumentos. 17 Primeiramente. ou seja. utilizada por Koza (1992) para representar os indivíduos da população. independente do domínio do problema.3. A regra geral. 6 Segue-se aqui a notação prefixada. é relativamente raro que uma função ou terminal em particular desapareça inteiramente de uma população na programação genética. 2. tal operação simplesmente não é necessária na programação genética. regras específicas podem ser aplicadas de acordo com o problema. a operação de recombinação se comporta de modo similar à mutação. por exemplo. da mesma forma que cada estrutura em si. e outro conjunto consistindo de regras específicas ao domínio do problema. . existem consideravelmente menos funções e terminais para um dado problema que posições no cromossomo no algoritmo genético convencional.

Por exemplo. desde que ele contenha uma função. se o número for 4 a edição será aplicada nas gerações de número 4. A edição é controlada por um parâmetro de freqüência que especifica se a operação é aplicada a cada geração. porque não está caracterizado ainda qual a relevância da parcimônia na solução de um problema em particular. ou seja. O indivíduo é selecionado do mesmo modo que para a reprodução e crossover. se a mutação for usada na execução. O encapsulamento começa com a seleção aleatória de um ponto interno de uma árvore. em nenhuma geração. ou com determinada repetição. externa à execução do programa. para qualquer inteiro maior que um. nunca será aplicada. ou numa tentativa de produzir uma saída simplificada.3. com uma probabilidade proporcional ao fitness normalizado. em seguida. O conjunto de funções do problema é aumentado para incluir a função. O efeito da operação de encapsulamento é que a subárvore selecionada não está mais sujeita à ação potencialmente diruptiva do crossover.5 Encapsulamento A operação de encapsulamento é um meio de identificação automática de uma subárvore. É uma operação assexuada porque opera somente sobre um indivíduo pai. de modo a melhorar o desempenho da programação genética. a subárvore localizada nesse ponto é removida e uma nova função lhe é associada. A operação de edição pode ser usada de dois modos distintos: cosmeticamente. Com efeito. devido ao número constante de caracteres de cada indivíduo. 2. a operação será aplicada a cada geração. de modo que possa ser referenciada e usada mais tarde. potencialmente útil. com o objetivo de tornar o resultado da programação genética mais legível. sem sacrificar a obtenção dos resultados.2. de modo que. se for zero. se a freqüência de edição fed é 1. e o resultado é um indivíduo menor. a nova subárvore que vai crescer no ponto de mutação selecionado possa incluir a função encapsulada. porque agora a subárvore é um ponto indivisível.18 previamente codificados e apresentam uma complexidade estrutural uniforme. e de denominação. 12 e assim por diante. O efeito da operação de edição executada enquanto o algoritmo de programação genética está evoluindo a população é indefinido. 8. aplica-se a edição em toda geração cujo número seja múltiplo inteiro do valor especificado7. a qual não tem argumentos. a nova função encapsulada é um bloco construtivo em potencial para 7 Por exemplo. .

a distribuição de valores de fitness sobre a população aleatória inicial pode ser tal que grande parte dos indivíduos tenha fitness muito pequeno.3. uns poucos indivíduos com fitness ligeiramente maior começam a dominar a população. Note-se também que ela pode proliferar pela população nas próximas gerações. 2. uma permutação aleatória é selecionada das k! permutações possíveis e os argumentos da função são permutados. devido à seleção dos pais para o crossover ser baseada no fitness. exceto os 10% da população que apresentam melhor fitness. para um percentual de 10% e a aplicação da operação na geração zero: imediatamente depois do cálculo de fitness para geração zero. A operação de dizimação oferece uma maneira mais rápida de tratar esta situação e é controlada por dois parâmetros: um percentual e uma condição especificando quando a dizimação será empregada. . 19 as gerações futuras. a operação de crossover se concentra nos poucos indivíduos com fitness melhor. tais como reprodução. considerando-se que a seleção do indivíduo pai é proporcional ao fitness. de acordo com o fitness. com a re-seleção permitida é possível sua participação em operações genéticas adicionais. Na programação genética. e a re- seleção é proibida a fim de maximizar a diversidade da população remanescente. Por exemplo. A seleção é feita de maneira probabilística. a operação de crossover é usualmente capaz de restaurar rapidamente a diversidade genética na população. O indivíduo original não é alterado pelo encapsulamento. Além disso. Além disto. Se a função no ponto selecionado tem k argumentos. logo nas primeiras gerações e a diversidade da população começa a cair.2. Entretanto. O processo Começa pela seleção aleatória de um ponto interno do indivíduo. todos os indivíduos da população são dizimados. crossover ou mesmo um novo encapsulamento. A operação de permutação é uma operação assexuada e uma generalização da operação de inversão para o algoritmo genético convencional.6 Dizimação e Permutação Para alguns problemas complexos.

a seleção é feita com reposição.3. de modo que a re-seleção é 8 Do original ranking selection. é escolhido aleatoriamente na população e o indivíduo de melhor fitness é selecionado (BANZHAF et al.2 Ordenamento A seleção por ordenamento8 é baseada na posição relativa. . Considere-se f(s i(t)) o fitness do indivíduo i da população na geração t. A probabilidade que este indivíduo seja selecionado é: f ( si (t )) prob(i) = M [6] ∑ f (s j =1 j (t )) Em geral. f(s i(t)) é o fitness normalizado n(si(t)). Segundo KOZA (1992). Ao mesmo tempo.3 Torneio Na seleção por torneio um grupo de indivíduos. cujo número típico é dois. 2. 2. 1998). Ela reduz os efeitos potencialmente dominantes de indivíduos de fitness comparativamente altos na população. de modo que a probabilidade de seleção se iguala ao próprio valor do fitness normalizado. Isto é.3.1 Proporcional ao fitness Existem vários métodos de seleção baseados no fitness.3. o mais popular é o método da seleção proporcional ao fitness. dos valores de fitness dos indivíduos da população.3.3. Note-se que os ascendentes permanecem na população enquanto a seleção é executada na geração corrente. estabelecendo uma quantidade limitada e previsível de pressão seletiva em favor destes indivíduos.3.3 Métodos de seleção 2. a seleção por ordenamento amplia a diferença entre valores próximos de fitness. de maneira que os melhores indivíduos são amostrados com maior freqüência. e não no valor numérico..20 2.3.

3. são selecionados mais de uma vez para reprodução durante a geração corrente.5 Estratégia Elitista Em programação genética. se comparada com o caso de fitness normalizado. em geral. Em geral.4 Sobre-seleção O desempenho da programação genética em alguns problemas pode ser melhorada pela sobre-seleção intensa dos melhores indivíduos da população. uma estratégia elitista induz uma convergência mais rápida (devido à diminuição de diversidade genética) e.3. De fato. 21 permitida.3. a execução de um programa genético termina quando um critério de parada é satisfeito. junto com métodos de seleção que não imponham grande pressão seletiva. deve ser utilizada com cuidado.4 Critério de parada O paradigma da programação genética se assemelha à natureza no sentido de que também é um processo aparentemente interminável. e os melhores indivíduos têm uma probabilidade ainda maior de seleção. 2. Na sobre-seleção. Ao longo das gerações garante-se que a curva de crescimento do fitness de melhor solução será sempre monotonicamente crescente ou estável. 2. por exemplo a reprodução e o crossover. refere-se ao mecanismo de assegurar que o melhor indivíduo de uma geração tenha lugar garantido na próxima geração. no sentido prático. em termos de evolução9. Entretanto. os indivíduos são selecionados para participar das várias operações genéticas. . 2. mas nunca decrescente. portanto. 9 Considera-se aqui a evolução física das espécies. a taxa diferenciada de sobrevivência e reprodução de indivíduos de maior fitness é um fator relevante nos algoritmos evolucionários em geral.3.3. Os ascendentes podem e.

b) máximo número de gerações G = 51. a definição do resultado da programação genética consiste na indicação do melhor indivíduo de todas as gerações. a população como um todo ou uma sub-população selecionada de acordo com o fitness pode ser indicada como o resultado e. sendo 2 valores numéricos principais. Em alguns problemas.3. 2. O predicado de sucesso consiste na definição de uma solução 100% correta para o problema.3. Os dois parâmetros numéricos principais são: a) tamanho da população M = 500.5 Definição do resultado Em geral. o conjunto de indivíduos representa um conjunto de soluções alternativas para o problema. 2. correspondendo a uma geração aleatória inicial mais 50 gerações subseqüentes. neste caso. ou problemas em que não se espera uma solução exata. específico do problema sob análise. adota-se um critério de sucesso mais restrito com o objetivo de terminar a execução. Existe ainda o caso em que não há predicado de sucesso: deseja-se simplesmente analisar os resultados da execução após um número de gerações. por exemplo em problemas de otimização. Há problemas em que não é possível reconhecer uma solução deste tipo mesmo quando é encontrada. 11 valores numéricos secundários e 6 variáveis qualitativas. ao fim das quais o programa aborta a execução. o paradigma da programação genética é controlado por 19 parâmetros.22 Pode-se definir como critério de parada um número específico G de gerações. Os valores numéricos e qualitativos indicados na relação a seguir são tomados como os valores padrão para execução do programa genético. Nesses casos. além disso. ou ainda a definição de um predicado de sucesso a ser satisfeito. . por exemplo a criação de um modelo matemático para dados empíricos obtidos na presença de ruído.6 Parâmetros de controle De acordo com KOZA (1992). pode-se designar como resultado o melhor indivíduo da geração no momento do término da execução.

As variáveis qualitativas são as seguintes: a) o método gerador da população inicial aleatória é o escalonamento meio a meio. que é opcional. é utilizado. c) o método de seleção do segundo pai para o crossover é proporcional ao fitness. irrelevante quando a condição de dizimação é nula. j) a operação de dizimação não é usada. e) a sobre-seleção não é usada para populações de 500 indivíduos e abaixo e é usada para populações de 1. d) o fitness ajustado. criada pelo crossover ou qualquer operação genética secundária em uso.000 indivíduos e acima. g) probabilidade de permutação pp = 0. . medida pela profundidade da árvore. d) tamanho máximo de uma árvore Dcreated = 17. 23 Os 11 parâmetros numéricos secundários são os seguintes: a) probabilidade de crossover pc = 0. k) percentual de dizimação pd = 0.10. f) a estratégia elitista não é usada. a cada geração a operação de crossover é executada sobre 90% da população. c) probabilidade de alocação de pontos internos ppi = 0. 90% dos pontos de crossover serão alocados aos pontos internos (contendo funções) e 10% aos pontos com terminais. isto é.90. i) probabilidade de encapsulamento pen = 0. f) probabilidade de mutação pm = 0.90. ou seja. h) freqüência de edição fed = 0. para os indivíduos gerados aleatoriamente para a população inicial. b) probabilidade de reprodução pr = 0. b) o método de seleção para a reprodução e para o primeiro pai no crossover é proporcional ao fitness. com o objetivo de enfatizar a recombinação de subárvores ao invés de apenas terminais – o que reduziria a operação de crossover a diversas mutações entre os terminais. e) tamanho máximo de uma árvore inicial Dinicial = 6.

Por exemplo.4 PROGRAMAÇÃO GENÉTICA COM RESTRIÇÕES 2. cada não-terminal tem que manipular argumentos de qualquer tipo de dados que podem ser retornados de qualquer terminal ou não-terminal. Há dois (não necessariamente exclusivos) modos para fazer isto. OR e NOT. EGGERMONT. 1992). Na realidade.4. conseqüentemente. só gerar árvores que satisfaçam estas restrições. a propriedade de "fechamento" (closure) deve ser satisfeita. 1999). Para . faz-se necessário permitir que a programação genética trabalhe diretamente com tipos de dados diferentes. 2. O problema com esta abordagem é que pode ser terrivelmente ineficiente. O primeiro é ter as funções executando ações diferentes com tipos de argumentos diferentes. às vezes. A seguir. Porém.24 2. em (BOJARCZUK. ou seja. Uma forma de satisfazer a restrição de fechamento é definir os terminais e não- terminais cuidadosamente para não introduzir tipos de dados múltiplos. todos os atributos são “booleanizados” e o conjunto de funções inclui apenas os conectivos lógicos AND. LOPES e FREITAS. Uma forma melhor para satisfazer restrições de tipos de dados é usar “tipificação forte” e. essa “booleanização” pode levar à perda de informações importantes e.1 Introdução Programação genética padrão não foi desenvolvida para manipular tipos de dados diferentes. EIBEN e HEMERT. Nesta abordagem. Isto é essencialmente o que KOZA (1992) faz com “estruturas sintaticamente restritas”. 1999. enquanto gasta a maioria do tempo de processamento avaliando árvores que são ilegais. serão discutidos vários métodos para satisfazer a propriedade de fechamento quando o problema envolve vários tipos de dados. qualquer não-terminal deve ser capaz de manipular qualquer tipo de dados retornado por um terminal ou não-terminal (KOZA.2 Estruturas sintáticas com restrições Uma forma de forçar o fechamento e permitir múltiplos tipos de dados simultaneamente é pelo uso de “tipificação dinâmica”. O segundo é ter as funções sinalizando um erro quando os argumentos forem de tipo incompatível e atribuindo uma avaliação infinitamente ruim para esta árvore (MONTANA.4. 1995).

CLACK e YU. que declaram para cada nó pai os seus respectivos nós filhos na mesma árvore. Uma segunda tabela provê os tipos de restrições (possibilidades de tipo) de acordo com a profundidade na árvore onde tipos semelhantes ocorrem: a escolha da função para criar nós na árvore assegura que a mesma possa crescer até a sua profundidade máxima. a população inicial consiste somente de árvores que são corretas com relação ao tipo de dados (MONTANA. JANIKOW e DEWEESE. ele define um conjunto de regras sintáticas. . ao invés de serem fornecidos diretamente. CLACK e YU. quando nós são selecionados recursivamente. de forma que restrições são fornecidas indiretamente através de um conjunto de tipos de dados. 1998). 1998). Durante a criação da população inicial (e durante o crossover e a mutação). outras abordagens fazem isto indiretamente.1 Programação genética fortemente tipificada Programação genética fortemente tipificada (Strongly Typed Genetic Programming - STGP) foi desenvolvido a partir da abordagem original de Koza. especificando os tipos de dados de cada argumento em cada não-terminal e os tipos de dados retornados por cada terminal e não- terminal (MONTANA. 1995. Uma restrição inicial é que o elemento escolhido deve retornar o tipo esperado. se uma função recebe um argumento do tipo X então esta restrição implicitamente fará o filho desta função produzir um valor do tipo X. Para o procedimento de inicialização existem restrições baseadas em tipos. dentro das restrições contidas na tabela. A idéia inicial para estruturas sintáticas restritas define a sintaxe especificando diretamente quais filhos cada não-terminal pode ter. Desta maneira.2. 1998). não se pode selecionar um elemento que torne impossível a seleção de subárvores válidas (MONTANA. argumentos e terminais. 1995. cada árvore é desenvolvida escolhendo-se aleatoriamente as funções e os terminais. 25 problemas que requeiram vários tipos de dados. como por exemplo: um operador lógico deve retornar um tipo lógico. 2. Ele impõe estas restrições sintáticas aplicando-as quando gera novas árvores e executa operações genéticas (KOZA. 1995). Inicialmente STGP atribui tipos para funções. onde o elemento pode ser escolhido a cada nó. STGP possui uma tabela que fornece os tipos de todos os terminais e funções disponíveis. 1992. Assim.4. Uma segunda restrição é que. Entretanto.

pode ser difícil definir boas funções de avaliação. Por exemplo. Inicialmente. O ingrediente essencial obtido de Ada é o conceito de “tipificação forte” e o conceito de genéricos como uma forma de fazer dados fortemente tipificados. O sistema PolyGP. Outra vantagem de se usar tipos de dados genéricos é que as funções utilizadas durante a programação genética são denominadas funções genéricas. com o propósito de gerar soluções corretas com relação ao tipo . utiliza modelos de informações. mas são inválidos para outros conjuntos de dados potenciais. Por isso introduziu-se o conceito de função genérica. Com STGP é possível resolver uma grande variedade de problemas moderadamente complexos envolvendo múltiplos tipos de dados. às vezes é inconveniente ter que especificar DOT-PRODUCT-2 e DOT-PRODUCT-3 ao invés de uma simples função DOT-PRODUCT. dificuldades em STGP também existem. Ao estar em uma árvore. eliminando este inconveniente. O ingrediente essencial obtido de Lisp é o conceito de ter programas basicamente sendo árvores. além da importância de usar “tipificação forte” para geração de árvores. Uma razão para usar tipos de dados genéricos é impedir a ocorrência de operações que são válidas para um conjunto particular de dados usados para determinar o desempenho. 1995). 1995). que é um sistema utilizado para executar o controle do tipo de dados de forma que programas inválidos nunca sejam criados. para resolver em um tempo razoável com qualquer computador atual (MONTANA. mas um conjunto de possíveis tipos de dados. A linguagem de programação STGP é um cruzamento entre as linguagens Ada e Lisp. em geral. retornar valores de uma variedade de tipos diferentes. Outra dificuldade é que apesar de STGP funcionar bem em problemas moderadamente complexos quando comparada com busca randômica. Entretanto. similar à abordagem STGP. A única restrição é que para um conjunto particular de tipos de argumentos a função deve retornar um valor de um tipo bem definido. 1995). Um tipo de dados genérico não é um tipo de dados verdadeiro. a função genérica deve ser instanciada. para manter o mesmo tipo de argumentos mesmo quando passados de pai para filho.26 As principais contribuições de STGP são: o uso de funções genéricas e tipos de dados genéricos (MONTANA. A linguagem resultante pode ser considerada um Lisp fortemente tipificado (MONTANA. Tipos de dados genéricos são tratados de maneiras diferentes durante a geração da árvore e durante a execução da árvore. Uma função genérica é uma função que pode receber uma variedade de diferentes tipos de argumentos e. mesmo para problemas relativamente simples. problemas realmente complexos estão além da capacidade de STGP.

OR (booleano. ∗ .81 A15 ≤ ≥ A15 P2 C3 A15 P2 2. como pode ser exemplificado na tabela 1. programas que podem receber entradas com mais de um tipo e produzem saídas com mais de um tipo. 1998). 1997. 27 de dados (CLACK e YU. BHATTACHARYYA. booleano ou real) booleano A figura 4 mostra um exemplo da árvore gerada de acordo com as restrições da tabela 1. . Tabela 1 – Conjunto de funções Funções Argumentos de entrada Saída +. real) Booleano AND. As soluções são criadas como programas polimórficos. / (real. booleano ou real.1 Figura 4 – Exemplo de árvore gerada seguindo os conceitos do STGP. −. booleano) Booleano IF (booleano. real) Real ≤. PICTET e ZUMBACH (1998) utilizando o conceito de STGP. propuseram que para cada função usada no conjunto de funções seja especificado o tipo dos seus argumentos e o tipo dos resultados. IF ≤ AND ≤ 0. ou seja. > (real.

o conjunto de funções compatível com o j-ésimo argumento da função i. Neste contexto. Exemplo: Para um determinado problema. real) real f3 (real) inteiro 10 A palavra aridade trata-se de um neologismo (invenção de palavra) pois não existe palavra adequada no português.2. f6 e f7. este é o conjunto de funções / terminais que produz o tipo correto a ser computado por um programa.o conjunto de funções que retornam tipos de dados compatíveis com o problema especificado. o CGP oferece capacidades semelhantes ao STGP. com a principal diferença na sua implementação (JANIKOW. Então.4. 2 e 1. f1. pela NASA. a função f2 possui aridade 2. aridade significa o número de nós filhos que o nó pai pode ter. Em resumo. Ti j . 2. 1998). o terminal f 4 e as constantes f 5. inteiro. com aridades10 3. as restrições são apresentadas explicitamente como conjuntos de funções / terminais. f2 e f3. Os argumentos de entrada e de saída das funções estão especificados na tabela 2.28 2. sendo esta uma palavra que veio do inglês (arity). sendo o terminal um inteiro e as constantes um booleano. O índice i é o número de funções para um determinado problema. um inteiro e um real. 1999). . No CGP.2 Sistema CGP (Constrained genetic programming) O sistema constrained genetic programming (CGP) foi desenvolvido ao mesmo tempo que STGP. como por exemplo: a função f1 possui aridade 3. logo esta função (nó pai) terá somente 1 nó filho. CGP usa o Tspecs seguinte: 1. respectivamente. T ROOT . JANIKOW e DEWEESE. como um meio para c ontrolar o espaço de busca para aplicações de PG em robótica. 1996. Tabela 2 – Conjunto de funções do CGP Funções Argumentos de entrada Saída f1 (booleano. os quais são permitidos (Tspecs) e rejeitados (Fspecs) em um determinado contexto (função . logo esta função (nó pai) terá 2 nós filhos e a função f3 possui aridade 1. tem-se o seguinte conjunto de funções e terminais: três funções. logo esta função (nó pai) terá 3 nós filhos. inteiro) real f2 (real.argumento) (JANIKOW.

1. enquanto booleanos não são compatíveis com outros tipos. Figura 5 – Solução inicial para o exemplo de CGP Para restringir o espaço de árvores utiliza-se o Fspecs. f 7 }. T 22 = { f 1 . T13 = { f 3 . Este exemplo assume que inteiros são compatíveis com reais. f 6 . f 3 . f 6 }. f 4 . T12 = { f 3 . e supõe-se que por algumas razões deseja-se excluir f3 do conjunto de funções que podem ser chamadas recursivamente. utilizando uma linguagem especial (JANIKOW e DEWEESE. f 7 }. f 4 . f 2 . PUNCH e RAND. suponha que a função f4 não provê a solução para o problema. por isto permite listar as restrições em um arquivo. sendo que o mesmo foi implementado sobre o lil-gp1. 1998). f 4 . f 4 . F ROOT – o conjunto de funções rejeitado para ser raiz.o conjunto de funções rejeitadas com o j-ésimo argumento da função i. A solução inicial é apresentada na figura 5.02 e. Fi – o conjunto de funções que não possuem permissão para chamarem a função i diretamente. f 6 . No CGP2. f 2 . f 4 . f 6 . Também sabe-se que o booleano (gerado por f 5 ) não pode ser a resposta (esta informação é realmente redundante como pode ser deduzido de Tspecs). A última versão do CGP é a 2. tem-se: 3. CGP é implementado dentro do lil-gp (ZONGKER. T 21 = { f1 . f 2 . f 6 }. Continuando o exemplo. F3 = { f 3 }. f 6 . f 7 }. 1996) e assim oferece todas as capacidades disponíveis do lil-gp (exceto para ADFs. f 2 .1 as restrições são especificadas em uma linguagem amigável . Estas restrições são expressadas com o Fspecs seguinte (os outros conjuntos estão vazios): F ROOT = { f 4 . 4. f 3 . no momento). f 3 . f 3 . T31 = { f1 . Fi j . 5. 29 A solução do programa deve computar um número real. T11 = { f 5 }. f 5 } . f 7 }. T Root = { f 1 . Para o exemplo inicial. f 4 .

α → γ} podem ser expressas usando o símbolo disjuntivo “|”. Em programação genética convencional uma função ou terminal pode aparecer em qualquer ponto da árvore. <. Uma regra de produção com a forma α → β especifica como um não terminal é expandido. redundantes. 1. Uma gramática é composta por um conjunto de símbolos não-terminais. real. 6} Símbolo inicial: expressão Regras: 1. FREEMAN. para satisfazer a propriedade de fechamento. 0. geralmente um não-terminal. Restrições específicas conduzem à exclusão de árvores sintaticamente inválidas. um conjunto de símbolos terminais. Real → atrib1 | atrib2 | atrib3 | 0 | 1 | 2 | 3 | 4 | 5 | 6 Figura 6 – Exemplo de gramática. A figura 6 mostra um exemplo de gramática (dentre muitas possibilidades) e a figura 7 exemplifica um indivíduo gerado pela gramática representando a expressão ( ≤ atrib2 3 ). ou simplesmente indesejáveis de serem exploradas. obtendo-se α → β | γ . Programação genética baseada em gramática usa uma árvore de derivação como a representação de cada indivíduo. ≤. expressão → ( operador real real ) 2. =. é designado a ser o primeiro símbolo da primeira regra. Regras da forma {α → β. 5. 4. Não terminais:{expressão. Um indivíduo é criado pela derivação completa do símbolo inicial da gramática determinada. operador} Terminais:{ (. atrib2. 1998.. WHIGHAM. >. 2. um símbolo inicial e uma lista de regras de produção. enquanto que em programação genética baseada em gramática a colocação de um símbolo deve ser permitida pela gramática (NGAN et al. . ≥. O símbolo inicial. 1998. atrib3.30 adequada para expressar sintaxe e restrições baseadas em semântica. 1995).4. operador → = | < | > | <= | >= 3.3 Programação genética baseada em gramática A idéia básica é usar uma gramática para definir o formato das regras de classificação. 3. atrib1. 2. Escolhas são feitas aleatoriamente se existir mais do que uma possível derivação. ).

1998). o conhecimento necessário para definir uma boa gramática pode não estar disponível. . uma vez que a mesma incorpora conhecimento do domínio da aplicação na programação genética. além de que o uso da gramática restringe o espaço de busca e assegura a correção sintática das regras (NGAN et al. o conhecimento do domínio reduz a autonomia do algoritmo para descobrir conhecimento novo. sendo elas: o formato da gramática é específico para um domínio da aplicação (isto é. 1998. o formato das regras em cada problema pode ser diferente). WHIGHAM. Esta abordagem tem algumas desvantagens em relação às outras explicadas anteriormente.. 31 expressão ( Operador real real ) ≤ atrib2 3 Figura 7 – Indivíduo gerado pela programação genética baseada em gramática A gramática pode reger o formato das regras a serem descobertas. 1998. FREEMAN. surpreendente (NGAN et al. 1995). Em geral. Outra vantagem de PG baseada em gramática é evitar o requisito de fechamento do conjunto de funções. cada regra de produção da gramática é especificada na forma “IF antecedente THEN conseqüente”.

32 .

1997. Data mining é uma área interdisciplinar cuja essência reside na interseção de aprendizado de máquina. em lugar da predição). Algumas das principais tarefas de data mining. agrupamento (clustering) é geralmente a mais complexa das tarefas de data mining. freqüentemente discutidas na literatura. em geral. Detecção de desvios (isto é.1 INTRODUÇÃO Data mining consiste da extração de conhecimento novo e interessante de bancos de dados do mundo real. 1999). 33 CAPÍTULO 3 DATA MINING 3. (3) um alto grau de autonomia. onde são ordenadas de acordo com a sua quantidade aproximada de inferência indutiva e complexidade computacional. estão listadas na figura 8. dependendo principalmente do domínio de aplicação e do interesse do usuário (FREITAS. (4) eficiência no processo de descoberta de conhecimento. necessário para lidar com grandes bancos de dados. No outro extremo. necessário para descobrir conhecimento previamente desconhecido pelo usuário. estatística e bancos de dados (FREITAS. Existem vários tipos de tarefas de data mining. descoberta de valores inesperados) e sumarização. visto que a importância da inferência indutiva é normalmente muito limitada e não há predição de valores de atributos inesperados (a ênfase está na descrição. Algumas características desejáveis em um sistema de data mining são: (1) a descoberta de conhecimento compreensível. (2) integração com bancos de dados. são as tarefas mais simples de data mining. tipicamente definido por regras expressas em um alto nível de abstração. . por envolver um tipo de predição “muitos para muitos” de valores de atributos. qualquer atributo pode ser usado para determinar grupos de registros e para predizer os valores de outros atributos. isto é. 1997).

para a tarefa de classificação onde cada indivíduo representa um conjunto de regras (abordagem Pittsburgh). existem vários trabalhos utilizando algoritmos evolucionários para descobrir algum tipo de regra compreensível. Cada indivíduo é um conjunto de regras de tamanho fixo. especificado pelo usuário. cada regra contém uma conjunção de condições e cada condição especifica um ou mais valores para um determinado atributo (disjunção interna).2. Fonte: adaptada de FREITAS (1997). chamado classes. 3. O domínio do atributo-meta consiste de um pequeno conjunto de valores discretos.2 CLASSIFICAÇÃO 3. Na tarefa de classificação existe uma divisão dos dados em: dados de treinamento (onde a classe é conhecida) e dados de teste (onde a classe é desconhecida pelo algoritmo de data mining). denominado GIL. chamados atributos previsores. As regras são avaliadas em dados de teste não vistos durante o treinamento (CHEN. O atributo-meta é fixo durante a execução de um algoritmo de classificação. em nível de regras e em nível das condições.1 Definição A tarefa de classificação consiste em predizer o valor de um atributo-meta. dados os valores de outros atributos. JANIKOW (1993) apresenta um algoritmo genético. Nesta implementação.2. 3. 1996).2 Trabalhos relacionados a classificação usando algoritmos evolucionários Dentro da tarefa de classificação.34 complexo agrupamento (clustering) modelagem de dependências classificação sumarização detecção de desvios simples Figura 8 – Algumas tarefas de data mining ordenadas pela complexidade. HAN e YU. No sistema GIL os operadores genéticos podem atuar em três níveis: em nível do conjunto de regras. O primeiro nível possui os seguintes operadores: um operador que realiza trocas .

seeding e seleção. Os operadores genéticos usados são a mutação aleatória de bit e o cruzamento em dois pontos adaptado para indivíduos de tamanho variável. o operador age como uma função que. GABIL usa operadores genéticos simples. e um operador que seleciona duas regras e as troca por uma regra mais genérica. cada indivíduo da população representa um conjunto de regras de tamanho fixo. SPEARS e GORDON (1993) apresentam o sistema GABIL. Seguindo a abordagem Pittsburgh. aumenta o domínio das condições e diminui o domínio das condições. Sua idéia pode ser observada fazendo a seguinte analogia: as regras são candidatas a serem eleitas em um parlamento (a população). um operador que remove condições de uma regra e um operador para introduzir uma condição na regra. GIORDANA e NERI (1995) apresentam o REGAL. A abordagem é híbrida pois nem cada indivíduo apresenta uma solução final e nem a população total também a representa. candidatas à solução do problema. No terceiro nível: um operador que remove ou adiciona um valor da condição. os votos são os exemplos positivos daquela regra. cada individuo é uma string de tamanho variável representando um conjunto de regras de tamanho fixo. praticamente sem necessidade de modificar o algoritmo genético convencional. Os dois primeiros são iguais aos encontrados na literatura. Mais precisamente. O segundo nível possui os seguintes operadores: um operador que divide uma regra em outras regras. Para atuar no tamanho de cada indivíduo. Os dois últimos têm a finalidade de gerar regras-“filho” que sejam generalizações ou especializações das regras-“pais”. isto é. um sistema baseado em algoritmo genético distribuído para a tarefa de classificação. um operador que copia aleatoriamente uma regra de cada conjunto. um algoritmo genético para a aquisição de regras de classificação. mutação. uniforme. DE JONG. dada uma instância positiva. um operador que adiciona uma regra que cubra um evento positivo não coberto pelo conjunto de regras. O crossover tem quatro tipos: crossover em dois pontos. . Para a representação dos indivíduos foi utilizada uma abordagem híbrida entre Michigan e Pittsburgh. Cada indivíduo codifica uma solução parcial e a população como um todo é um conjunto redundante de soluções parciais. O operador seeding funciona de forma a favorecer que indivíduos surjam para cobrir espaços de busca “inabitados”. Para remover regras. A seleção é baseada no conceito de sufrágio universal (universal suffrage). GABIL utiliza uma mutação com uma probabilidade assimétrica para realizar a adição de regras. retorna uma regra que a cobre. 35 entre conjuntos de regras. A diferença está no fato de que cada indivíduo evolui de forma independente e apenas no final uma solução completa é formada. Os operadores utilizados são crossover. generalizado e especializado. um operador que seleciona duas regras e as troca por uma regra mais especializada. ele utiliza um operador determinístico que avalia a relevância da regra.

Cada gene é dividido em 3 campos: peso. Do ponto de vista de data mining. sendo capaz de manipular atributos contínuos e discretos e utiliza compartilhamento de fitness para incentivar a diversidade de regras (indivíduos) na população. onde cada um corresponde a uma condição envolvendo um atributo. LOPES e FREITAS (1999. . transformação. O algoritmo segue a abordagem Michigan. projeção dos dados e extração de padrões.36 um exemplo pode votar em uma das regras que o cobre. na época. Ele é baseado na estrutura geral de um classificador do estilo de Pittsburgh e voltado a descobrir regras de classificação. A diferença da taxa de acerto entre o algoritmo genético e o melhor dos outros 33 algoritmos não é estatisticamente significante. ele adapta a técnica de generalizar um exemplo para aprender regras de classificação de lógica de primeira ordem. um indivíduo corresponde a uma única regra. o campo correspondente ao operador é a variável que indica o operador relacional empregado na i-ésima condição. A estrutura da regra é a tradicional string de bits de tamanho fixo. um cromossomo é dividido em genes. Ao invés disto. VENTURINI e KODRATOFF (1995) propuseram o sistema SIAO1 que aprende regras em lógica de primeira ordem e não precisa de um modelo fornecido pelo usuário. Este algoritmo genético inclui os passos de seleção. 2000) apresentam um sistema baseado em algoritmos genéticos (AG) para executar a tarefa de classificação. o que tende a ser computacionalmente mais eficiente. Para codificar o indivíduo. Nessa abordagem. O campo correspondente ao peso é uma variável real que indica se o atributo correspondente está ou não presente na regra. limpeza. sendo normalmente conhecida como abordagem Michigan. o que tornava o sistema difícil de ser aplicado a bancos de dados grandes. e o campo valor contém um dos valores pertencentes ao domínio do atributo. O interessante desta abordagem está no fato de que ela incentiva a seleção de regras cobrindo diferentes regiões dos espaços de dados. a desvantagem principal de SIAO1 é que este tipo de técnica de generalização era. Os operadores genéticos são o cruzamento tradicional em um ponto e a mutação é a modificação simples de bit. FIDELIS. AUGIER. PEI. operador e valor. GOODMAN e PUNCH (1997) apresentam a aplicação híbrida de algoritmos genéticos com regras de decisão para a tarefa de classificação. HASSE e POZO (2000) propuseram um algoritmo genético para a tarefa de classificação. O algoritmo é chamado de GA/RULE. Os resultados da taxa de acerto são comparados com outros 33 algoritmos em 32 bases de dados. computacionalmente cara. ficando no nível de 10%.

mutação e reprodução. Neste algoritmo. sendo o mesmo muitas vezes “desafiador” para a tarefa de classificação devido ao ruído e outros fatores. tem um número de posições igual ao número de atributos. denominado vetor de intervalo. O algoritmo segue a abordagem Michigan. Os resultados obtidos na taxa de acerto pelo algoritmo genético são comparados com 3 tipos de árvores de decisão (ID3. onde atributos minerados podem ser de tipos diferentes (nominais. O sistema segue a abordagem Michigan. através de um algoritmo evolucionário baseado em exemplos. mas fora do escopo de data mining. mutação. O objetivo deste algoritmo é classificar dados epidemiológicos. avalia-se o melhor conjunto de regras gerado em uma outra partição da base de dados. (2000) apresentam um algoritmo genético capaz de extrair regras de classificação explícitas. O sistema pode ser descrito da seguinte forma: inicialmente. sendo capaz de manipular atributos categóricos e contínuos. o sistema fuzzy avalia estas regras em uma partição de uma base de dados e retorna o resultado desta avaliação para o algoritmo genético como sendo o fitness daquele conjunto de regras gerados. e ao final da execução do algoritmo genético. Isso geralmente não acontece em data mining. . GID3* e O-Btree). Os operadores utilizados neste sistema são: crossover. e o segundo. contêm para cada atributo 2 valores numéricos que representam os extremos atuais do intervalo de variação. o algoritmo genético gera um conjunto de regras sintonizadas e simplificadas e as funções de pertinência. onde cada indivíduo corresponde a uma única regra. No contexto de data mining. generalização e especialização. existem alguns problemas com a abordagem convencional de programação genética. o algoritmo genético procura pelo melhor conjunto de regras tentando maximizar o fitness retornado pelo sistema fuzzy. LIU e KWOK (2000) propuseram o sistema ESIA. numéricos. DE FALCO et al. Primeiramente. BONARINI (1996) propôs um sistema que descobre regras fuzzy utilizando técnicas de aprendizado evolucionário (algoritmos genéticos). Os operadores genéticos utilizados são: crossover. a propriedade de fechamento requer que todos os nós da árvore retornem valores do mesmo tipo. BRITO e LOPES (2001) apresentam uma abordagem de treinamento de um sistema fuzzy de apoio ao diagnóstico médico. que aprende regras em lógica proposicional. e o fitness utilizado incentiva a diversidade de regras (indivíduos) na população. Os resultados da taxa de acerto e o número de regras obtidas são comparados com outros dois sistemas em 13 bases de dados. cada indivíduo na população é representado utilizando-se 2 vetores. denominado vetor de condição. sendo que o primeiro. 37 CONGDON (2000) propõe um algoritmo genético para a tarefa de classificação.

1 Definição Modelagem de dependência consiste em encontrar um modelo que descreva dependências significativas entre variáveis. O conjunto de funções incluiu apenas funções booleanas: {AND. o conhecimento descoberto é representado sob a forma de regras de previsão (classificação) SE-ENTÃO. Modelos de dependência existem em dois níveis: no nível estrutural do modelo especificado (freqüentemente na forma gráfica). tem-se um conjunto de terminais (atributos previsores e constantes aleatórias) e um conjunto de funções (operadores lógicos.) e o conjunto de funções pode retornar valores de tipos diferentes. MARTIN. Algumas abordagens para lidar com esses problemas são discutidas a seguir. Para lidar com o problema de atributos de tipos diferentes. matemáticos e relacionais). onde são . Na utilização de programação genética para classificação.3 MODELAGEM DE DEPENDÊNCIA 3. onde a compreensibilidade das regras descobertas é importante. A parte SE da regra contém uma combinação lógica dos atributos previsores e a parte ENTÃO contém a classe prevista para exemplos que satisfazem a parte SE da regra. NOT}. também baseado em programação genética. o tamanho e complexidade das árvores de programação genética dificultam sua compreensão. 3. Porém.3. Para um problema com m classes executa-se a PG m vezes: cada vez resolve-se um problema com 2 classes. MOAL e VRAIN (1998) usaram programação genética para descobrir regras de classificação compreensíveis. 2000) apresentam um sistema para executar a tarefa de classificação dentro do contexto de data mining. eles propuseram um modelo baseado em restrições (levando em conta características de bancos de dados relacionais) para a representação de indivíduos e operadores genéticos. Para alcançar esta meta. BOJARCZUK. todos os atributos foram “booleanizados” em um passo de pré- processamento. Isso é uma séria desvantagem em data mining. de tal modo que os indivíduos da programação genética são associados com consultas em SQL. OR. LOPES e FREITAS (1999. Neste trabalho. O sistema proposto por eles descobre regras expressas em lógica de primeira ordem. onde uma classe é a classe “positiva” e todas as outras classes são agrupadas em uma classe “negativa”. Cada indivíduo gerado é uma regra. Além disto.38 etc. a característica principal do trabalho era integrar programação genética com sistemas de bancos de dados relacionais que contêm relações múltiplas (tabelas).

o conjunto de terminais inclui todos os atributos e seus valores. os quais controlam diretamente o tamanho (número de condições) de um antecedente da regra. o GA-Nuggets usa operadores para inserção e remoção de condições. ao contrário da classificação. assumindo-se que o atributo-meta não é representado no indivíduo. indo contra a filosofia de data mining). Consequentemente. 39 especificados os relacionamentos de interdependência entre as variáveis. cada indivíduo representa uma regra. Na abordagem Michigan (ver seção 4.3. A idéia básica é que.2). Um conjunto de vários indivíduos (ou população inteira) representa um conjunto de regras. Na tarefa de modelagem de dependências. 1999). e no nível quantitativo do modelo. 1991). Quando usando programação genética em modelagem de dependências. similar à classificação. quanto maior o número de condições. A qualidade da solução representada por um indivíduo pode depender de outros indivíduos. 3. o atributo-meta pode ser qualquer atributo não ocorrendo no antecedente da regra. 1997). 1996). Para evitar a produção de indivíduos com muitas condições no antecedente da regra (o que reduz o grau de compreensão da regra correspondente. maior a probabilidade de aplicação do . Este algoritmo segue a abordagem Michigan para representação de regras. o conjunto de funções e terminais para a árvore são similares aos especificados para a tarefa de classificação. Modelagem de dependência é uma tarefa de data mining que também pode ser chamada de indução generalizada de regras (SMYTH e GOODMAN. Contudo. enquanto na tarefa de classificação o conjunto de terminais inclui somente os atributos previsores e seus valores (FREITAS. Uma leve diferença é que não existe nenhum atributo-meta especificado com antecedência. existe o GA-Nuggets que é um algoritmo genético projetado para descobrir um pequeno conjunto de regras de “alta qualidade” a partir de dados.2 Trabalhos relacionados a modelagem de dependências usando algoritmos evolucionários Dentro do conceito de modelagem de dependência. PIATETSKY-SHAPIRO e SMYTH. o objetivo é descobrir regras que predizem o valor de um atributo-meta. onde é especificada a força das dependências utilizando alguma escala numérica (FAYYAD. dado o valor de outros atributos. devido à interação de várias regras do conjunto. em vez de descobrir um conjunto completo de regras cobrindo todos os exemplos de treinamento (FREITAS.

Atributos- meta candidatos a serem selecionados para o conseqüente da regra são especificados pelo usuário. a mutação foi adaptada de forma a não gerar indivíduos com código genético inválido. O algoritmo genético foi descrito em NODA. Condição é um conjunto de termos. Cada termo é uma tupla da forma <Atributo. tendo um número máximo de termos. o cálculo do grau de interesse da regra pode ser dividido em dois termos: o primeiro mede o grau de interesse do antecedente enquanto o segundo mede o grau de interesse do conseqüente. Valor>. A regra é descrita como: “IF C THEN P”. selecionando uma condição por vez. de modo a evitar a previsão de atributos considerados irrelevantes pelo usuário.. FREITAS e LOPES (2000) apresentam a comparação entre 2 algoritmos de data minig: o algoritmo genético e um algoritmo de indução de regras. e para lidar com a variação no tamanho do fenótipo dos indivíduos foi criado o operador de inserção-remoção de condições. Este sistema também segue a abordagem Michigan para representação de regras. e quanto menor o número de condições. A função de fitness utilizada consiste de duas parte: a primeira mede o grau de interesse da regra (indivíduo) sendo avaliada. Nesta abordagem. Em relação aos operadores genéticos. Previsão é um termo simples que contém um atributo-meta. NODA. Operador. O algoritmo de indução de regras desenvolvido é baseado em um método de busca “guloso” (greedy). Atributos-meta candidatos a serem . isto é. o algoritmo de indução de regras é executado uma vez para cada valor de atributo- meta possível. Operador. que é definido pelo usuário. Valor>. maior a probabilidade de aplicação do operador de inserção de condição (FREITAS. uma tupla da forma <Atributo-Meta. sendo esta uma forma de reduzir o espaço de busca do algoritmo de data mining. utilizado para eliminar a influência da ordem na qual os atributos foram codificados. o usuário define um subconjunto de atributos-meta dentro do conjunto de atributos. 1999). as adaptações foram: cruzamento uniforme. respectivamente.. FREITAS e LOPES (1999). Por sua vez. ARAÚJO. LOPES e FREITAS (1999.40 operador de remoção de condição. 2000) apresentam um sistema baseado em algoritmo genético para executar a tarefa de modelagem de dependência. NODA. Para que o algoritmo descubra o mesmo número de regras que o algoritmo genético. onde C e P significam.. enquanto a segunda mede a precisão preditiva da regra. FREITAS e LOPES (1999) apresentam uma nova versão de GA-Nuggets projetado para descobrir regras interessantes na tarefa de modelagem de dependência. por exemplo: term1 AND term2 AND. a condição e a previsão da regra.

ao contrário da classificação. Esta estrutura. as regras descobertas são avaliadas dentro da estrutura de suporte e confiança para regras de associação. sendo que suporte é a quantidade de exemplos cobertos pela regra na base de dados e confiança é a correlação entre o antecedente e o conseqüente da regra (AGRAWAL. A abordagem deles tem uma característica típica da tarefa de modelagem de dependência: diferentes regras descobertas podem predizer atributos diferentes. 41 selecionados para a parte de previsão da regra são especificados pelo usuário em um arquivo de meta-dados. . Infelizmente. Isso é uma forma de generalização da tarefa de classificação. separado do arquivo de dados sendo minerado. a abordagem deles está baseada no uso de uma gramática para restringir o espaço de busca e assegurar a correção sintática das regras. IMIELINSKI e SWAMI. contribuindo para uma maior autonomia do sistema. isto é. uma gramática deve ser escrita para cada domínio de aplicação. na qual todas as regras descobertas predizem o mesmo atributo. a gramática é inteiramente dependente do domínio de aplicação. NGAN et al. não avalia a precisão preditiva das regras descobertas em um conjunto de teste não visto durante treinamento. Além disto. (1998) usaram programação genética para descobrir regras compreensíveis. 1993). Porém.

42 .

43 CAPÍTULO 4 DESENVOLVIMENTO DO SISTEMA DE PROGRAMAÇÃO GENÉTICA 4. ou tuplas da forma <Ai Op Valij>.j >. onde N é o número de atributos da base de dados sendo “minerada”. como um dos atributos previsores. ≤ ou >. tipicamente =. quando um dos atributos-meta escolhidos ocorrer no antecedente da regra. em vez da . Naturalmente. que será estabelecido após a criação do indivíduo.2 REPRESENTAÇÃO DE UM INDIVÍDUO Programação genética para descoberta de regras pode ser dividida em duas amplas abordagens: Pittsburgh e Michigan. ele poderá aparecer no antecedente da regra. ≠. ele não poderá ocorrer no conseqüente. se um possível atributo-meta não estiver no conseqüente da regra. onde Ai e Aj são atributos do mesmo tipo de dados. cuja previsão é considerada interessante. onde Ai é um atributo. Para fazer a combinação das possíveis condições. ou seja. O usuário especifica um subconjunto dos possíveis atributos-meta. avalia a qualidade do conjunto de regras como um todo. Contudo. A abordagem Pittsburgh leva em conta a interação de regras quando computa o fitness de um indivíduo. 4. enquanto que na abordagem Michigan cada indivíduo representa uma única regra de predição (MICHALEWICZ.j é um dos possíveis valores do domínio do atributo-meta selecionado. 1994). O conseqüente da regra. i ≠ j. O antecedente “A” da regra pode ser formado por uma conjunção de no máximo N-1 condições. onde M i é um dos possíveis atributos-meta e Vi.1 INTRODUÇÃO Cada regra candidata é expressa na forma “se A então C”. Op é um operador relacional e Valij é um valor que pertence ao domínio do atributo Ai. e Op é um operador relacional. Na abordagem Pittsburgh cada indivíduo representa um conjunto de regras de predição. serão utilizados operadores lógicos (AND ou OR). consiste de uma simples condição na forma <M i = Vi. As condições das regras podem ser tuplas da forma <Ai Op Aj>.

. O conjunto de terminais é composto pelos nomes dos atributos e valores dos atributos. ≠. Uma vez que os operadores usados aceitam dois operandos como argumentos de entrada. Em primeiro lugar. o qual obviamente não é necessário no caso da abordagem Pittsburgh (FREITAS. cada nó deverá possuir somente dois filhos. as árvores criadas serão binárias. esta abordagem conduz a indivíduos sintaticamente mais longos. em lugar de uma única regra. uma vez que a função de fitness avalia a qualidade de cada regra separadamente. embora um indivíduo contenha múltiplos antecedentes de regras . Outro problema é que. apenas um conseqüente de regra estará associado a cada indivíduo. Isto introduz a necessidade de se adotar algum tipo de método de niching. 2001). para reduzir o espaço de busca e ter um poder de descriminação reduzido. sendo que isto é relacionado com o tipo de tarefa de data mining que está sendo estudada. Porém. enquanto que o conjunto de funções é formado pelos operadores lógicos (AND e OR) e operadores relacionais (=. O operador lógico NOT não é utilizado. esta vantagem vem com um custo. isto é. Isto tende a reduzir o tempo levado para computar a função de fitness e a simplificar a ação de operadores genéticos. ou seja. ≤ ou >). cada indivíduo representa um conjunto de regras (seguindo a abordagem Pittsburgh). Porém. podem ser requeridas algumas modificações para operadores genéticos padrões para lidar com indivíduos relativamente complexos (FREITAS.44 qualidade de uma única regra. considerando as interações de regras. A escolha entre estas duas abordagens depende de qual tipo de regra deseja-se descobrir. não é fácil computar a qualidade do conjunto de regras como um todo. cada vez descobrindo uma regra diferente. como mostrado na figura 9. A desvantagem desta abordagem é que tende a ser computacionalmente cara. não se pode permitir que a população convirja para um único indivíduo. que tendem a fazer um cálculo de fitness mais caro computacionalmente. Este trabalho aborda as tarefas de classificação e modelagem de dependência. 2001). Assim. onde a interação das regras é importante (FREITAS. sendo que todas as regras representadas no indivíduo têm o mesmo conseqüente. além do que a representação (NOT 1) equivale ao valor 0. Em contraste. na abordagem Michigan os indivíduos são mais simples e sintaticamente menores. Logo. Pode-se evitar a necessidade de niching na abordagem Michigan executando-se o algoritmo várias vezes. Além disso. 2001). uma vez que se deseja descobrir um conjunto de regras.

e nem um nome de atributo ou valor de atributo. 4. ou seja. para tentar descobrir relacionamentos mais interessantes e menos óbvios nos dados. enquanto a figura 10b mostra um exemplo sem as restrições. o conjunto de todos os exemplos com um determinado valor do atributo- meta dificilmente pode ser coberto por uma única regra conjuntiva (usando apenas o operador AND para combinar condições). forçando automaticamente . as quais devem ser satisfeitas para que se tenha um indivíduo “válido”. Outra restrição é que o nó filho do operador lógico AND não seja o operador OR. Além disto. o nó com o operador AND deve ter como nó pai somente os operadores AND ou OR. o nó filho de um nó AND tem que ser outro nó AND ou um operador relacional. este trabalho define algumas restrições a serem aplicados aos antecedentes das regras.1 Restrições hierárquicas entre AND e OR Na prática. a não ser que os dados contenham relacionamentos bem simples (os quais já podem ser conhecidos pelo usuário ou podem ser facilmente descobertos por um algoritmo simples de data mining). de modo que um indivíduo sempre representa um conjunto com pelo menos duas regras. 45 OR ≤ AND A1 2 ≠ > A3 1 A5 1 Figura 9 – Exemplo de um indivíduo representado por uma árvore binária.2. Essas restrições simplificam a representação do conjunto de antecedentes de regras. A figura 10a mostra um exemplo de indivíduo com as restrições entre os operadores lógicos AND e OR. uma restrição inicial usada neste trabalho é que a raiz da árvore seja o operador lógico OR. Assim. Além disso. Essas restrições são especificadas a seguir. sendo portanto um indivíduo inválido.

O outro descendente do crossover com os mesmos pais pode ser um indivíduo válido. o que por sua vez facilita a compreensão do conjunto de regras pelo usuário. Atualmente.46 a colocação deste conjunto na forma normal disjuntiva. Caso isso não aconteça.2. mas em pesquisas futuras esta restrição poderá ser modificada para que seja possível lidar com este problema. OR OR ≤ AND AND AND A1 2 ≠ > OR > A1 6 A3 1 A5 1 A2 A4 A5 1 (a) individuo válido (b) indivíduo inválido Figura 10 – Exemplos de indivíduos com restrições hierárquicas 4. como por exemplo: <Ai > 10> AND <Ai < 15>. uma vez que não violou esta restrição.2 Restrição de unicidade de atributo em um antecedente de regra Para evitar que um antecedente de regra seja formado por condições incompatíveis. o algoritmo de programação genética faz com que o crossover seja abortado e um dos pais é escolhido para reprodução para a próxima população. ambos os pais são reproduzidos para a próxima geração. Caso a operação de crossover viole esta restrição. como por exemplo: <Ai = 10> AND <Ai = 5>. . será usada a restrição de que cada atributo pode aparecer no máximo uma única vez no antecedente de uma regra. esta restrição impede a representação de um intervalo.

Tabela 3 – Argumentos de entrada e saída dos operadores Operadores Argumentos de entrada Saída ≤. Caso essa restrição seja violada. categórico) Booleano AND. Um nó contendo um atributo ou um valor só pode ter como seu nó pai um nó contendo um operador relacional. por exemplo: vários atributos com os valores 0. booleano) Booleano Em uma base de dados pode haver atributos contínuos e/ou categóricos. real) Booleano =. . OR (booleano. o nó AND não é gerado. 47 4. a seguinte tupla <Ai AND Val>. Para garantir que as entradas e saídas sejam válidas. O trabalho proposto necessita da flexibilidade de poder trabalhar com vários tipos de dados. 1. Para os operadores relacionais e lógicos utilizados neste trabalho os tipos de argumentos permitidos são especificados na tabela 3. ao gerar um nó AND é necessário que existam pelo menos dois atributos ainda não usados na regra à qual o AND pertence. 2 e 3. 11 Atributo categórico ordenado é quando um atributo possui valores mapeados em uma escala predeterminada.3 Restrições para entradas e saídas de operadores lógicos e relacionais Conforme o operador a ser utilizado para a criação de uma regra de um indivíduo. Portanto. Os operadores relacionais possuem dois nós filhos. atribui-se tipos para as funções e terminais que podem ser categóricas. por exemplo. Caso o atributo seja contínuo ou categórico ordenado11. ≠ (categórico. Se o atributo for categórico ou nominal.> (real. pois não teria sentido. deve-se garantir que o mesmo receba entradas válidas e consequentemente retorne uma saída válida para o nó pai. serão utilizados os operadores relacionais “≤” e “>”. são utilizados os operadores relacionais “=”ou “≠”. onde um nó é obrigatoriamente um atributo e o segundo nó pode ser um valor do domínio daquele atributo ou outro atributo com um tipo de dados compatível. Esta restrição respeita a unicidade de atributo em um antecedente de regra.2. justamente para garantir que as funções recebam entradas válidas e retornem uma saída válida para o nó pai. booleanas ou contínuas.

48 4. e realmente o paciente não a tem. a doença que um paciente tem). pois. um dos quatro tipos de resultados seguintes pode ser observado: s verdadeiro positivo (vp) . pois todos os atributos-meta estão no antecedente das regras. somente K-1 atributos-meta podem aparecer na árvore.3 FUNÇÃO DE FITNESS A função de fitness avalia a qualidade de cada conjunto de regras (indivíduo).a regra prediz que o paciente tem uma determinada doença e o paciente de fato tem aquela doença. se isso acontecesse não sobraria nenhum atributo-meta para o conseqüente do conjunto de regras. onde gera-se primeiro o antecedente e depois o conseqüente. onde K é o número total de atributos-meta.a regra prediz que o paciente não tem uma determinada doença. é necessário recordar alguns conceitos básicos sobre avaliação de regras de classificação. Este trabalho utiliza a função de fitness baseada em LOPES et al. Esta restrição garante que o indivíduo criado não tenha todos os atributos-meta aparecendo em antecedentes da regra.4 Restrição do número de atributos-meta nos antecedentes da regra Nos antecedentes das regras. Caso ambos os indivíduos filhos gerados sejam inválidos. Nesse caso. o algoritmo de programação genética faz com que o crossover seja abortado e um dos pais é escolhido para reprodução para a próxima população. 4.a regra prediz que o paciente não tem uma determinada doença mas o paciente a tem.a regra prediz que o paciente tem uma determinada doença mas o paciente não a tem. s verdadeiro negativo (vn) . quanto nas populações subsequentes. s falso positivo (fp) . .2. s falso negativo (fn) . Essa restrição é implementada tanto na população inicial. Suponha que seja efetuada uma operação de crossover e que um dos indivíduos filhos selecionados para a próxima geração seja um indivíduo inválido. ambos os pais são reproduzidos para a próxima geração. (1997). Antes que seja definida a função de fitness. Quando se usa uma regra para classificar um caso com classe desconhecida. dependendo da classe prevista pela regra e da verdadeira classe do caso (por exemplo.

dada por: P = (maxnodes – 0. quando a maioria dos indivíduos terão uma baixa precisão preditiva. A função de fitness utilizada combina dois índices: a sensibilidade (S) e a especificidade (E). definidos como se segue: S = vp / (vp + fn) [7] E = vn / (vn + fp) [8] A função de fitness usada é parcialmente definida como o produto destes dois indicadores. verdadeiros negativos e falsos negativos. A equação [10] apresenta seu valor máximo de 1. fp. Considerando que a compreensibilidade de uma regra é inversamente proporcional ao seu tamanho.5. Isto é especialmente importante nas gerações iniciais. O motivo para fixar o limite mais baixo em 0.0 quando uma regra é tão simples que contém somente um termo. a função de fitness usada no sistema de PG implementado é definida como o produto dos indicadores de precisão preditiva e simplicidade: fitness = E * S * P [11] . PG não produz necessariamente soluções simples. é definida uma medida de simplicidade (P) de uma regra. na prática. Então. algo tem que ser feito para forçar o sistema a produzir regras tão pequenas quanto possível (BOJARCZUK. mas podem ter um aprimoramento por meio dos operadores genéticos. falsos positivos. e maxnodes é o tamanho máximo permitido para uma árvore. o qual é gerado quando o número de nós iguala-se ao máximo permitido. 2000).5numnodes – 0. vn e fn significam respectivamente o número de verdadeiros positivos.5 é para penalizar os indivíduos grandes sem forçá-los a desaparecer. isto é: fitness = E * S [9] Porém. LOPES e FREITAS.5) / (maxnodes – 1) [10] onde numnodes é o número de nós (funções e terminais) de um indivíduo (árvore). 49 Onde vp. observados quando uma regra é usada para classificar um conjunto de casos (pacientes). Finalmente. O valor da equação diminui até seu mínimo de 0.

Caso não haja nenhum nó compatível com o ponto de cruzamento do primeiro indivíduo. principalmente o crossover e a reprodução.. de forma a forçar o sistema a produzir regras tão pequenas quanto possíveis.5. Estes operadores obedecem às restrições impostas (discutidas anteriormente) para que não gerem indivíduos inválidos. utiliza-se o termo da parcimônia justamente para penalizar os indivíduos grandes sem forçá-los a desaparecer.4 OPERADORES GENÉTICOS Os operadores genéticos. O ponto de crossover do segundo indivíduo é selecionado aleatoriamente dentre os nós que são de tipo compatível com o ponto de cruzamento do primeiro indivíduo. pois o mesmo é escolhido de forma determinística. 4. Na fase de teste. os quais são atributos ou valores. e somente utiliza-se as regras gerada s na fase de treinamento para avaliação. e minimizar o tamanho da regra simultaneamente. em (HAND. Na reprodução. A função que avalia a qualidade de cada conjunto de regras (indivíduo) não é a mesma para as fases de treinamento e teste. Na fase de treinamento é utilizada a equação 11 (que representa a função de fitness utilizada pela programação genética).1]. No conseqüente não é aplicado nenhum operador genético. No crossover. 1997). conforme discutido na seção 4. Outras medidas relacionadas com precisão preditiva (independente de qualquer algoritmo) podem ser encontradas. sendo que a diferença entre as equações é a ausência do termo de parcimônia na equação 9. Além disso. Os operadores genéticos utilizados são: reprodução e crossover. a operação de crossover é abortada e ambos os pais são reproduzidos para a próxima população. o objetivo do sistema de PG é maximizar E e S. um nó (ponto de crossover) é selecionado aleatoriamente em um dos indivíduos. Este é um ponto importante. é feita uma cópia do indivíduo para a próxima geração. enquanto que na fase de teste é utilizada a equação 9 (que representa a função utilizada para avaliação). a função de fitness definida tem a vantagem de ser simples e devolver um valor normalizado no intervalo [0. Na fase de treinamento. Optou-se por não permitir que um nó terminal (folha) seja escolhido como ponto de cruzamento para evitar que . não se utiliza o termo da parcimônia. já que seria relativamente trivial maximizar o valor de um destes indicadores às custas de reduzir significativamente os valores dos outros.50 Assim. pois não é gerada nenhuma regra. por exemplo. não permitindo que sejam selecionados os nós terminais. são aplicados somente nos antecedentes de regra.

51

o crossover tivesse um efeito muito pequeno na modificação de um indivíduo pai, o que
ocorreria se apenas um nó folha de cada indivíduo pai fosse trocado.
Como existem restrições quanto aos argumentos de entrada e saída de uma função, é
possível que sejam criados indivíduos inválidos após o crossover. Caso isso ocorra, o
algoritmo de programação genética faz com que o crossover seja abortado e um dos pais é
escolhido para reprodução para a próxima população. O outro descendente do crossover com
os mesmos pais pode ser um indivíduo válido. Caso isso não aconteça, ambos os pais são
reproduzidos para a próxima geração.
A utilização da operação da mutação, de acordo com KOZA (1992), é altamente
inaplicável, uma vez que a própria operação de crossover se comporta de modo similar à
mutação, sempre que os dois pontos de crossover dos pais são folhas das árvores. Mas como
neste trabalho não é aplicado o crossover nos nós folha das árvores, a utilização de mutação
“dirigida” (somente nos nós terminais que fossem do tipo “valor do atributo”) no sistema de
programação genética poderia ser útil, pois o algoritmo teria a possibilidade de fazer um
ajuste fino nos valores dos atributos. Essa possibilidade será investigada em pesquisa futura.

4.5 FORMAÇÃO DO CONSEQÜENTE DAS REGRAS

O método usado para determinar o conseqüente das regras depende da tarefa sendo
realizada. Consideremos primeiramente a tarefa de modelagem de dependência.
O conseqüente das regras é estabelecido somente após a criação dos antecedentes, de
forma a maximizar a qualidade das regras. Para cada nova regra é gerado um novo
conseqüente de forma determinística.
Para entender melhor, consideremos primeiramente a tarefa de modelagem de
dependência. Suponha que existam dois atributos-meta candidatos a aparecerem no
conseqüente do conjunto de regras (atributos-meta que não constam nos antecedentes das
regras), sendo que o primeiro possa assumir os valores “1”, “2”, “3” e “4” e o segundo possa
assumir os valores “sim” e “não”. Desta maneira, tem-se seis possíveis conseqüentes para um
conjunto de regras. Em seguida são identificados quais os exemplos de treinamento que são
cobertos pelos antecedentes das regras, ou seja, quais os exemplos que satisfazem as
condições de pelo menos um dos antecedentes das regras. Uma vez que os antecedentes são
combinados por um operador OR, basta que um exemplo satisfaça um antecedente para que
ele seja considerado coberto pelo correspondente conjunto de regras. Suponha que 7 exemplos

52

sejam cobertos e que nesses exemplos os valores dos atributos meta1 e meta2 tenham a
seguinte distribuição: “meta1 = 1 ” em 0 exemplo; “meta1 = 2” em 2 exemplos; “meta1 = 3”
em 4 exemplos; “meta1 = 4” em 1 exemplo; “meta 2 = sim’ em 0 exemplo; “meta2 = não” em 7
exemplos. Em seguida, seleciona-se o melhor resultado de meta1, que é o “meta1 = 3”, com 4
exemplos, e o melhor resultado de meta2, que é o “meta2 = não”, com 7 exemplos. Como o
objetivo é maximizar a qualidade da regra, escolhe-se o atributo-meta que possui o melhor
resultado dentre os 2 possíveis valores para o conseqüente de um conjunto de regras, neste
caso o melhor resultado é o “meta2 = não” com 7 exemplos.
Um tipo de elitismo é utilizado no algoritmo. Na tarefa de modelagem de dependência,
existem várias tuplas <M i = Vi,j > que podem ocorrer nos conseqüentes do conjunto de regras.
Em cada geração, o melhor indivíduo predizendo cada tupla <M i = Vi,j > é copiado para a
próxima geração. Esta estratégia permitirá que pelo menos uma tupla <M i = Vi,j > de cada
conseqüente esteja presente na próxima geração, contribuindo para aumentar a diversidade da
população. Caso não fosse aplicado nenhum tipo de elitismo, provavelmente em algumas
gerações subsequentes alguns valores de atributos-meta (aqueles mais difíceis de serem
previstos) seriam eliminados da população, ou seja, não seria descoberta nenhuma regra
prevendo aqueles valores de atributos-meta; o que seria indesejável.
No caso da tarefa de classificação foi utilizado um método mais simples para
determinação do conseqüente de regras. Mais precisamente, o conseqüente de regras
associado com cada indivíduo é fixo e idêntico para todos os indivíduos da população durante
toda a evolução da programação genética. Assim, para resolver um problema de classificação
com k classes a programação genética é executada k vezes, sendo que em cada vez são
descobertas regras prevendo uma classe diferente.

4.6 IMPLEMENTAÇÃO

A implementação do sistema é baseada numa versão modificada do lil-gp
(ZONGKER, PUNCH E RAND, 1996), que é um sistema implementado em linguagem C
para o desenvolvimento de aplicações em Programação Genética. Modificações foram feitas
no sistema lil-gp para que as restrições necessárias ao desenvolvimento do trabalho proposto
fossem implementadas. Estas modificações foram realizadas nos arquivos escritos em
linguagem C que se encontram no diretório kernel do lil-gp.

53

Foi escolhido trabalhar com uma versão modificada do lil-gp, no caso o STGP
(LUKE, 1997), pois uma vez que existem várias pesquisas sendo desenvolvidas utilizando o
lil-gp, é possível fazer pequenas alterações e/ou inclusões que não comprometem a estrutura
do mesmo. Desta maneira, pode-se desenvolver vários trabalhos onde a programação genética
é uma parte do estudo a ser feito, sem ter que modificar a estrutura geral do trabalho para
adaptar o sistema de programação genética com restrições, caso o mesmo venha a ser
necessário.

54 .

as bases de dados Ljubljana breast cancer. 12 As bases de dados do repositório estão no endereço http://ics. 55 CAPÍTULO 5 EXPERIMENTOS COMPUTACIONAIS E RESULTADOS Neste capítulo são descritas as bases de dados utilizadas no teste do programa. A base de dor torácica foi utilizada em uma tese de doutorado (LOPES.edu/AI/Machine-Learning. Entretanto. . enquanto que a de pediatric adrenocortical tumor ainda é inédita e foi obtida no Departamento de Cirurgia Pediátrica do Hospital Erasto Gaertner de Curitiba13. as bases breast cancer e dermatology foram usadas neste trabalho para fins de classificação. Michalkiewicz para ser utilizada exclusivamente neste trabalho. 1996). Essas duas bases foram usadas neste trabalho para fins de classificação. Essa tarefa representa um desafio maior para a programação genética por envolver um espaço de busca maior quando comparado com a tarefa de classificação. 5. bem como as decisões tomadas durante a fase de experimentos e detalhes que permitiram a execução (tais como os parâmetros escolhidos e os métodos de treinamento e teste).1 BASES DE DADOS Os experimentos computacionais realizados usaram cinco bases de dados. Porém. dermatology e nursery foram obtidas diretamente do referido repositório. 13 Esta base de dados foi cedida pelo médico Dr. a base de dados nursery foi escolhida por potencialmente apresentar mais de um atributo-meta possível. a base de nursery foi usada neste trabalho para fins de modelagem de dependência. Edson L. estas bases são utilizadas para a avaliação de algoritmos de classificação.html. Devido à falta de uma fonte específica de bases de dados para a tarefa de modelagem de dependências. De fato.uci. As bases de dados de dor torácica e pediatric adrenocortical tumor não fazem parte do repositório de bases de dados para aprendizado de máquina da University of California at Irvine 12. Normalmente.

1} irradiação: migração Irrad_pm {0. 2} profundidade: 1 – superficial. 1} irradiação: membro superior direito Irrad_epig {0. Os atributos e seus valores estão descritos na tabela 4.1. 6} 1 – alguns segundos 2 – de 5 a 30 minutos 3 – de 30 a 60 minutos 4 – algumas horas 5 – alguns dias . 1} irradiação: quadrante superior direito abdômen Caráter {1. 1} irradiação: epigástrio Irrad_retr {0. o “0” significa ausência e o “1” significa presença. 5. 2} 1 – súbito ou abrupto 2 – gradativo / progressivo Duração {1. 1} local da dor: região mamária direita Local_rlet {0. cada um com 161 atributos. 1} irradiação: retroesternal Irrad_qsea {0. 2. 1} irradiação: quadrante superior esquerdo abdômen Irrad_qsda {0. Tabela 4 – Descrição dos atributos presentes na base de dados dor torácica Atributo Valores Conteúdo Local_retr {0. 14 são categóricos e 147 são binários. 2 – profunda No_irrad {0. 2. 5} 1 – opressivo ou constrictiva 2 – pleurítica 3 – dilacerante 4 – “em queimação” 5 – inespecífica Início {1. 1} local da dor: região dorsal Profund {1. 1} local da dor: retroesternal Local_epig {0. Nos atributos binários. Destes atributos. 1} irradiação: pescoço e mandíbula Irrad_mse {0. 4.1 Dor torácica A base de dados dor torácica foi utilizada pela primeira vez em LOPES (1996) e contém 138 registros. 1} ausência de irradiação da dor Irrad_migr {0. 4. 1} local da dor: região lateral esquerda do tórax Local_rldt {0. E a patologia referente às 12 classes com seus respectivos números de exemplos são mostrados na tabela 5. 3. 1} irradiação: membro superior esquerdo Irrad_msd {0. 3. 1} local da dor: epigástrico Local_rme {0. 1} local da dor: região lateral direita do tórax Local_rd {0.56 5. 1} local da dor: região mamária esquerda Local_rmd {0.

1} síncope Ansiedade {0.d.m.d.d.m.m. 1} azia ou eructação Tosse {0. 1} expectoração Dor_musc {0. 1} f. 1} f. 1} f. 1} ausência de fatores desencadeantes (f.: emoção Fatdes_com {0. 1} f. 3} 1 – episódica 2 – contínua 3 – cíclica e periódica No_fatdes {0. 1} tonturas Sincope {0.: posição deitada Fatdes_pl {0. 1} dor muscular .d.m.: posição para frente No_fatmel {0. 1} f.: movimentação do tronco Fatdes_vom {0.: repouso Fatmel_vom {0.: posição de lado Fatmel_pf {0.) Fatdes_esf {0. 1} f.d. 1} f.: jejum Fatdes_pd {0.) Fatmel_rep {0. 1} ausência de fatores de melhora (f. 1} hemoptise Nauseas {0. 1} f.d. 1} f. 1} cansaço Febre {0.d. 1} tosse Expecto {0.: eructação Fatmel_pl {0. 1} dispnéia Anorexia {0.d. 1} f.: vômito Fatmel_eru {0.d. 1} f. 1} f. 1} náuseas ou vômitos Azia {0.: compressão local Fatdes_mov {0.: posição de lado Fatdes_pf {0.: após refeições Fatdes_ali {0.d. 1} f.: alimentação Fatmel_med {0.m. 1} f.: vômitos Fatdes_rsp {0. 1} anorexia Tonturas {0. 1} f.: alimentos Fatdes_jej {0. 1} f.d. 1} f.: fumar Fatdes_ref {0. 1} f. 1} febre Hemoptise {0.m. 2.m. 1} f.: medicamentos Dispneia {0. 57 6 – alguns meses Freqüência {1.d.: frio Fatdes_fum {0.: respiração profunda Fatdes_tos {0.: esforço físico Fatdes_emo {0.: posição para frente Fatmel_ali {0. 1} ansiedade Cansaço {0.d.: tosse Fatdes_fri {0. 1} f. 1} f.m.d. 1} f.d.d.

1} depressão Me_nitrato {0. 1} sedentarismo Fr_tipoa {0. 1} cirurgia cardíaca ou vascular prévia Ci_pelvmi {0. 1} puerpério Fr_posop {0. 1} uso de antihipertensivos Me_aconc {0. 1} personalidade tipo A Fr_puerp {0. 1} tabagismo Fr_obes {0. 1} diabetes mellitus Fr_taba {0. 1} neoplasia Da_peripr {0. 1} pericardite prévia Da_tuber {0. 1} uso de ansiolíticos Ci_carvas {0. 1} insuficiência cardíaca Da_ulcera {0. 1} doença de Marfan Da_insren {0. 1} uso de antagonistas do Cálcio Me_ieca {0. 1} história pessoal de DAS Fr_hphas {0. 1} história pessoal de úlcera péptica Fr_hppntx {0. 1} dislipidemia Da_avc {0. 1} imobilização prolongada Fr_ires {0. 1} insuficiência renal Da_neopl {0. 1} asma Da_dpoc {0. 1} história familiar de DAC Fr_hpdac {0. 1} uso de nitratos Me_aca {0. 1} história pessoal de HAS Fr_hpulcer {0. 1} cirurgia da pelvis ou membros inf. 1} úlcera péptica Da_doesof {0. 1} uso de AAS Me_ahiper {0. 1} uso de antiinflamatórios não-hormonais Me_betabl {0. 1} acidente vascular cerebral Da_lva {0. 1} tuberculose Da_ansi {0. 1} obesidade Fr_sedent {0. 1} uso de beta-bloqueadores Me_ansiol {0. 1} pós-operatório ou convalescença Fr_imob {0. 1} colesterol elevado Fr_diabete {0. 1} doenças esofágicas Da_asma {0. 1} uso de anticoncepcionais orais Me_ainfnh {0. 1} infecção respiratória recente Da_inscar {0. 1} ansiedade Da_depre {0. 1} história pessoal de pneumotórax Fr_colelev {0. 1} doença pulmonar obstrutiva crônica Da_dislip {0.58 Fr_hfdac {0. 1} lesão valvar aórtica Da_marfan {0. 1} uso de inibidores da ECA Me_aas {0. prévia .

1} hemograma: policitemia Eco_ok {1. 1} assimetria de pulsos Desv_ictus {0. 1} 4ª bulha Abafa_bul {0. 1} bradicardia Impulsão {0. 1} sopro diastólico Atrito_per {0.não há 2. 1} hiperfonese da 2ª bulha Sopro_sis {0.normal 3 – elevado Eco_acs {0. 1} hipotensão arterial Dif_pa_mem {0. 1} eco: diminuição da fração de ejeção do ventrículo esquerdo Eco_iv {0. 1} hiper-ressonancia à percussão Bulha_3 {0. 1} 3ª bulha Bulha_4 {0. 2. 1} diferença de pressão arterial entre membros Taqui {0. 1} impulsão cardíaca imperceptível Pulso_par {0. 1} taquipnéia Hipertenso {0. 1} hemograma: anemia Hemo_polic {0. 1} sibilância Estertores {0. 1} eco: derrame pericárdico Eco_ep {0. 1} eco: sinais de tamponamento Eco_dp {0. 1} hemograma: leucocitose Hemo_anem {0.não há 2. 1} atrito pericárdico Atrito_ple {0. 1} eco: prolapso de válvula mitral Eco_st {0. 2. 1} pulso paradoxal Assim_puls {0. 1} sopro sistólico Sopro_dia {0. 1} estase jugular Taquipneia {0.normal 3 – elevado Hemo_leuco {0. 1} taquicardia Bradi {0. 1} eco: insuficiência valvar Eco_ev {0. 1} eco: espessamento pericárdico .não há 2. 2. 1} desvio do ictus cordis Hiper_res {0.normal 3 – elevado Hemo_ok {1. 1} eco: alteração da contratilidade segmentar Eco_dfe {0. 3} ecocardiograma: 1. 1} atrito pleural Sibilancia {0. 1} eco: estenose valvar Eco_pvm {0. 59 Cianose {0. 1} sudorese Estase_jug {0. 1} cianose Palidez {0. 1} palidez Sudorese {0. 1} abafamento das bulhas Hiper_bul2 {0. 3} CPK-MB: 1. 1} diminuição dos sons pulmonares Cpk_mb_ok {1. 1} hipertensão arterial Hipotenso {0. 1} estertores pulmonares Dim_sompul {0. 3} hemograma: 1.

2. 1} ecg: segmento ST côncavo Ecg_stcv {0. 3} LDL: 1 – não há 2 – normal 3 – elevado Out_gli_ok {1. 1} rx: congestão pulmonar Ecg_ok {1. 1} rx: aumento do hilo pulmonar Rx_daad {0. 2. 3} ECG: 1 – não há 2 – normal 3 – elevado Ecg_bvc {0. 2. 2. 1} rx: aumento da área cardíaca Rx_ahp {0. 1} ecg: segmento ST convexo Ecg_dc {0. 1} ecg: sobrecarga ventricular direita Ecg_dssst {0. 1} ecg: depressão significativa do segmento ST Ecg_essst {0. 3} colesterol total: 1 – não há 2 – normal 3 – elevado Out_hdl_ok {1. 1} eco: disserção aórtica Rx_ok {1. 2. 1} ecg: elevação significativa do segmento ST Ecg_stcc {0. 1} ecg: sobrecarga ventricular esquerda Ecg_svd {0. 1} ecg: distúrbio da condução em AV ou IV Out_ct_ok {1. 3} glicemia: 1 – não há 2 – normal 3 – elevado Tabela 5 – Descrição das classes e sua distribuição na base de dados dor torácica Classe Descrição da classe (Patologia) Número de exemplos 1 Angina Estável 13 2 Angina Instável 10 3 Infarto Agudo do Miocárdio (IAM) 12 4 Dissecção de Aorta 12 5 Tamponamento Cardíaco 11 6 Tromboembolismo Pulmonar 12 7 Pneumotórax 11 8 Pericardite 11 9 Úlcera Péptica 12 10 Espasmo / Refluxo Esofágico 11 11 Origem Músculo-Esquelética 11 12 Origem Psicogênica 12 . 1} rx: ar no espaço pleural Rx_cp {0. 1} eco: hipertensão pulmonar Eco_daor {0. 3} raios X de tórax: 1 – não há 2 – normal 3 – elevado Rx_aac {0. 2. 1} ecg: onda T invertida simétrica Ecg_sve {0. 1} rx: dilatação da aorta ascendente ou da aorta descendente Rx_aep {0. 3} HDL: 1 – não há 2 – normal 3 – elevado Out_ldl_ok {1. 1} ecg: baixa voltagem dos complexos Ecg_otis {0.60 Eco_hp {0.

1 – presente Nonfunctional {0. 1 – carcinoma Viriliz {0. O primeiro atributo-meta foi obtido da diferença entre a data do último follow up (acompanhamento) e a data da cirurgia. 1} Não funcional: 0 – funcional. cada um com 11 atributos. 1} Síndrome de Cushing: 0 – ausente. mas não foi possível obter este atributo pelo fato de existirem poucos registros com a informação da data da recidiva. 1} Histologia: 0 – adenoma.2 Pediatric adrenocortical tumor A base de dados pediatric adrenocortical tumor ainda é inédita e restrita. A base contém 178 registros. o sistema descobriu regras prevendo uma classe (valor do atributo-meta) diferente. 1} Recidiva: 0 – não houve reincidência 1 – houve reincidência Sex {0. sendo que os atributos-meta seriam tempo de sobrevida (survival) e tempo livre de doença. 1} Virilização: 0 – ausente. 1 – presente Cushing {0. (2000). Devido a esta falta de informação optou-se pela tarefa de classificação. 1} Sexo: 0 – masculino. Para conseguir prever o atributo-meta com uma maior precisão. conforme explicado a seguir. 61 5. Inicialmente.1. sendo que a meta é determinar o tempo de sobrevida do paciente após a cirurgia (survival). sendo que mais informações sobre os atributos podem ser obtidas em MICHALKIEWICZ et al. Esta parte não foi realizada pois surgiu a seguinte dúvida: o paciente não possuía a data da recidiva porque não houve realmente recidiva. Como esta base possui 54 registros com pelo menos um valor de atributo ausente. ou porque ele faleceu antes que houvesse recidiva. Tabela 6 – Descrição dos atributos da base de dados pediatric adrenocortical tumor Atributo Valores Conteúdo Relapse {0.99 a 4368 } Volume do tumor em cm3 Histology {0. os mesmos foram retirados e para os experimentos a base ficou com 124 registros. em dias Tumor_volume {2. Os atributos e seus valores da base de dados pediatric adrenocortical tumor estão descritos na tabela 6. Em cada um desses 3 experimentos. foram realizados 3 experimentos filtrando-se a base de dados inicial. sendo que estas informações estavam presentes no banco de dados. 1 – não funcional . ou simplesmente não foi anotado nenhuma informação na data da recidiva. tentou-se utilizar a base de dados pediatric adrenocortical tumor para a tarefa de modelagem de dependência. 1 – feminino Age {13 a 7043} Idade do paciente até a data do diagnóstico. O segundo atributo-meta era para ser obtido da diferença entre a data da recidiva e a data da cirurgia.

ou persistência de nível de hormônios irregular após a cirurgia. e exemplos negativos. Nesse experimento também foram usados apenas os registros relevantes para prever classe 2. Após esta filtragem. 2 – tumor residual microscópico. volume do tumor > 200 cm3. foram usados apenas registros relevantes para prever classe 1. A tabela 7 apresenta. resumidamente. em anos O primeiro experimento consiste em prever a classe 1. derramamento do tumor durante a cirurgia. onde survival é maior que 1 ano. a base de dados ficou com 68 registros. 2. 14 O limite superior de 5 anos é em função do follow-up (acompanhamento) do paciente desde a data da cirurgia.reincidência 3 – vivo . a descrição dos exemplos positivos e negativos para prever cada classe. e exemplos negativos. Os registros em questão são os exemplos positivos. 3. 3 – residual espesso ou tumor não pode ser operado. onde status é igual a 4 e survival é maior que 1 ano e menor que ou igual a 2 anos.62 Stage {1. sendo 22 exemplos positivos e 83 exemplos negativos. a base de dados ficou com 94 registros. O terceiro experimento consiste em prever a classe 3. onde survival é maior que 2 anos e menor que ou igual a 5 anos14. A base utilizada contém exemplos positivos. 2.livre da doença 2 – vivo . . A base utilizada contém exemplos positivos. Após esta filtragem. 4} 1 – tumor totalmente retirado. sendo 8 exemplos positivos e 86 exemplos negativos. a base de dados ficou com 105 registros.residual 4 – morto Survival {0 a 20} Tempo de sobrevida após a cirurgia. 4} 1 – vivo . Após esta filtragem. e os exemplos negativos. onde status é igual a 4 e survival é maior que 2 anos e menor que ou igual a 5 anos. onde status do paciente é igual a 4 e survival é menor que ou igual 1 ano. ausência de metástase e nível de hormônios normal depois da cirurgia. O segundo experimento consiste em prever a classe 2. onde survival é menor que 1 ano. 4 – afastado metástase. descritos anteriormente. onde survival é maior que 1 ano e menor que ou igual a 2 anos. Nesse experimento. onde status é igual a 4 e survival é menor que ou igual a 1 ano ou maior que 2 anos. onde status é igual a 4 e survival é menor que ou igual a 2 anos ou maior que 5 anos. Status {1. 3. volume do tumor < 200 cm3. sendo 6 exemplos positivos e 62 exemplos negativos.

cada um com 9 atributos e a meta é determinar os pacientes que terão reincidência do câncer de mama. 30-39. 3-5. right} Breast-quad {left-up. 27-29. 20-24. os mesmos foram retirados. left-low. 30-34. Como esta base possui 9 registros com pelo menos um valor de atributo ausente. 50-54. right-up. 70-79. 80-89. 21-23. 25-29. 50-59. premeno} Tumor-size {0-4. Tabela 8 – Descrição dos atributos presentes na base de dados Ljubljana breast cancer Atributo Valores Age {10-19. 60-69. 24-26. no} Deg-malig {1. ge40. 90-99} Menopause {lt40. 36-39} Node-caps {yes. 15-19. 18-20. 20-29. 10-14. right-low.3 Ljubljana breast cancer A base de dados Ljubljana breast cancer foi apresentada pela primeira vez em CLARK e NIBLETT (1987) e contém 286 registros. 35-39. 45-49. 9-11. 55-59} Inv-nodes {0-2. 5-9. 30- 32. 12-14. sendo que para os experimentos a base ficou com 277 registros. 6-8. central} Irradiat {yes. 40-44. 40-49.1. Os atributos e seus valores estão descritos na tabela 8 e a descrição das 2 classes com seus respectivos números de exemplos são mostradas na tabela 9. 63 Tabela 7 – Descrição dos exemplos positivos e negativos para cada classe Classe Meta Exemplos positivos Exemplos negativos (status = 4) e (survival ≤ 1 (survival ≤ 1 ano) (survival > 1 ano) 1 ano) (1 ano < survival ≤ (status = 4) e (1 ano < ((status = 4) e (survival ≤ 1 ano)) 2 2 anos) survival ≤ 2 anos) ou (survival > 2 anos) (2 anos < survival ≤ (status = 4) e (2 anos < ((status = 4) e (survival ≤ 2 anos)) 3 5 anos) survival ≤ 5 anos) ou (survival > 5 anos) 5. no} . 3} Breast {left. 15-17. 2. 33-35.

1. 3} Scalp involvement {0. e o atributo family history que assume o valor 1 quando a doença foi observada na família e 0 caso contrário.3]. Tabela 10 – Descrição dos atributos presentes na base de dados dermatology Atributo Valores Erythema {0. 3} Follicular papules {0. 2. GÜVENIR e ILTER (1998) e contém 366 registros.4 Dermatology A base de dados dermatology foi apresentada pela primeira vez em DEMIROZ. 2. 2. 1. 1. 2. 1. 1.64 Tabela 9 – Descrição das classes e sua distribuição na base de dados Ljubljana breast cancer Classe Descrição da classe Número de exemplos 1 no-recurrence-events 196 2 Recurrence-events 81 5. 3} Itching {0. 2. 2. 1. 1. 3} Fibrosis of the papillary dermis {0. 2. 3} Koebner phenomenon {0. 3} PNL infiltrate {0. 1. sendo que para os experimentos a base ficou com 358 registros. 3} Exocytosis {0. 1. 1} Melanin incontinence {0. 2. 1. 2. 1. 1. 2. 3} .1. Os atributos e seus valores estão descritos na tabela 10 e a descrição das 6 classes com seus respectivos números de exemplos são mostradas na tabela 11. 3} Eosinophils in the infiltrate {0. 1. os mesmos foram retirados. 3} Polygonal papules {0. 2. 1. Como esta base possui 8 registros com pelo menos um valor de atributo ausente. cada um com 34 atributos. 3} Scaling {0. 2. Todos os atributos têm seus valores mapeados em uma escala de [0. 2. 3} Knee and elbow involvement {0. Duas exceções são o atributo age que tem seus valores expressos em anos. 2. 1. 3} Oral mucosal involvement {0.. onde 0 indica a ausência da característica correspondente e 3 indica uma grande incidência da característica. 3} Definite borders {0. 3} Family history {0. 2.

1. 3} Follicular horn plug {0. 2. 2. 3} Focal hypergranulosis {0. 1. 1. 1. 3} Elongation of the rete ridges {0. a base possui 12960 registros. 3} Spongiosis {0. 3} Disappearance of the granular layer {0. 3} Clubbing of the rete ridges {0. 2. 2. Apresentada pela primeira vez em OLAVE. 2. 2. 3} Munro microabcess {0. 65 Acanthosis {0. 1. 2. 2. 2. RAYKOVIC e BOHAMEC (1989). 2. 3} Vacuolisation and damage of basal layer {0.1. 3} Hyperkeratosis {0. 1. 1. 8 atributos categóricos e nenhum valor de atributo faltando.5 Nursery A base de dados nursery origina-se de um modelo hierárquico de tomada de decisão desenvolvido para implementar um processo seletivo de inscrições. 2. 3} Age {0 a 75} Tabela 11 – Descrição das classes e sua distribuição na base de dados dermatology Classe Descrição da classe Número de exemplos 1 Psoriasis 111 2 Seboreic dermatitis 60 3 Lichen planus 71 4 Pityriasis rosea 48 5 Cronic dermatitis 48 6 Pityriasis rubra pilaris 20 5. 1. 1. 3} Saw-tooth appearance of retes {0. 3} Perifollicular parakeratosis {0. 2. . 2. 3} Band-like infiltrate {0. 1. 1. 1. 1. 3} Thinning of the suprapapillary epidermis {0. 3} Inflammatory monoluclear inflitrate {0. 1. Os atributos e seus valores estão descritos na tabela 12. 2. E a descrição das 5 classes com seus respectivos números de exemplos são mostrados na tabela 13. 2. 1. 3} Parakeratosis {0. 1. 2. 1. 2. 3} Spongiform pustule {0.

problematic} Health {recommended. o atributo class foi utilizado como único atributo meta para fins de classificação. great_pret} Has_nurs {proper. improper. priority. a profundidade máxima da árvore foi 15. foster} Children {1. 3. completed. no caso 50 gerações (não incluindo a primeira geração. very_critical} Form {complete.66 Como atributos meta foram utilizados os atributos finance e class. not_recom} Tabela 13 – Descrição das classes e sua distribuição na base de dados nursery Classe Descrição da classe Número de exemplos 1 Not_recom 4320 2 Recommended 2 3 Very_recom 328 4 Priority 4266 5 Spec_prior 4044 5. O melhor indivíduo encontrado durante a execução das 50 gerações é designado como o melhor resultado. O critério para terminar uma execução foi o número máximo de gerações. 2. que nos experimentos foi fixado em 12. O tamanho da população foi fixado em 500 indivíduos para todas as execuções em todas as bases de dados. less_proper. reprodução e mutação . As probabilidades de crossover. Tabela 12 – Descrição dos atributos presentes na base de dados nursery Atributo Valores Parents {usual. Durante a execução. pretentious. critical. inconv} Social {non_prob. less_conv. No trabalho original apresentado por OLAVE. RAYKOVIC e BOHAMEC (1989).2 VALORES DOS PARÂMETROS DA PROGRAMAÇÃO GENÉTICA A população inicial foi gerada pelo conhecido método “escalonamento meio a meio”. incomplete. pois a população é gerada aleatoriamente). more} Housing {convenient. que cria um número igual de árvores para valores de profundidade que variam de 2 à profundidade máxima. slightly. critical} Finance {convenient.

é necessário utilizar os dados disponíveis de modo a simular esta situação.2. As segunda. Para se inicializar este gerador. A tabela 14 apresenta as restrições e os operadores lógicos e relacionais utilizadas para cada uma das bases de dados. OR pediatric X X X ≤ . AND.2. ≠. respectivamente.2.=. em 95%. deve-se definir uma semente. >. Existe ainda um valor adicional que não é um parâmetro propriamente dito. foi definido para todas as bases de dados que o valor da semente é 1. AND. Com este recurso uma execução pode ser repetida. respectivamente.2. Tabela 14 – Restrições e operadores lógicos Base de dados Hierárquicas Unicidade Entradas e Atributos. de acordo com as características das mesmas. uma população inicial aleatória é criada através de um gerador de números pseudo-aleatórios. AND. a probabilidade de crossover é 95% para ambos os pais. >. adrenocortical OR tumor Ljubljana breast X X X ≤ .1). A primeira coluna representa a base de dados. >.2). AND. No início de cada execução. de unicidade de atributo em um antecedente de regra (seção 4. cancer OR dermatology X X X ≤ .=. 5% e 0%. OR nursery X X X X =. quarta e quinta colunas representam as restrições: hierárquicas entre os operadores AND e OR (seção 4.=. OR 5. Isto é. fica claro que se forem . AND. a mesma população inicial aleatória será criada. A sexta coluna representa os operadores utilizados para cada base de dados.3) e do número de atributos meta nos antecedentes da regra (seção 4. ≠. obtendo-se o mesmo resultado para uma mesma semente definida. Sempre que o programa for executado com a mesma semente.3 VALIDAÇÃO CRUZADA Uma vez que se deseja obter regras que possam prever situações futuras. Operadores saídas meta dor torácica X X X =. terceira. e o método de seleção usado foi o fitness proporcional. 67 foram fixadas. mas se faz necessário na implementação prática da programação genética. Portanto. de entradas e saídas de operadores lógicos e relacionais (seção 4.4).

68 utilizados os mesmos dados no treinamento e teste. Cabe lembrar que essas bases de dados foram usadas em experimentos envolvendo a tarefa de classificação. 1997). cada uma das bases de dados foi dividida em 5 partições e.5. os resultados da programação genética foram comparados com os resultados do algoritmo C4.4.2. não vistos pelo algoritmo durante seu treinamento. após 5 execuções. os resultados também foram comparados com outras abordagens disponíveis na literatura utilizando os mesmos bancos de dados. Esse algoritmo. foi obtido um resultado médio apresentado na seção 5.4. 5. Um modo de simular situações futuras é a divisão dos dados disponíveis em dados de treinamento e dados de teste. pediatric adrenocortical tumor.4. isto é. Nos experimentos com a tarefa de classificação.1.4. Para cada base de dados. Em seguida são apresentados os resultados de modelagem de dependência para a base de dados nursery.4. No experimento realizado com a tarefa de modelagem de dependência. a cada execução 4 partições compõem a base de treinamento e a outra partição compõe a base de teste. respectivamente. o algoritmo de programação genética deve obter resultados excelentes. o verdadeiro teste deve ser realizado com dados de teste. descrito em detalhes em QUINLAN (1993). é bastante utilizado para fins de avaliação comparativa com outros algoritmos de classificação.4. Nos experimentos foi utilizada uma validação cruzada com fator 5. na literatura de data mining. Entretanto. uma execução para cada partição distinta usada como base de teste. 5. acaba por diminuir os dados disponíveis para o treinamento. A validação cruzada consiste em se dividir a base de dados em partições de tamanhos iguais (ou aproximadamente) e alternar qual das partições é utilizada para o teste e quais são utilizadas para o treinamento.4 RESULTADOS Os resultados de classificação para as bases de dados dor torácica. LOPES e FREITAS (1999). Um método utilizado para minimizar as perdas pela partição da base de dados disponíveis é a validação cruzada (HAND. os resultados da programação genética foram comparados com os resultados dos algoritmos genéticos apresentados por NODA. . 5.5. FREITAS e LOPES (1999) e ARAÚJO. breast cancer e dermatology são apresentado nas sessões 5. Os valores dos parâmetros utilizados pelo algoritmo C4. isto é.3 e 5.5 foram os default. Apesar desta abordagem fornecer dados não vistos pelo algoritmo de programação genética para teste. Além de comparar os resultados com o C4.

A nona coluna representa o resultado médio do produto entre a sensibilidade e a especificidade na fase de teste.964 0.781 2 condições 0.933 0.841 0.968 0. lembrando que a parcimônia não é utilizada na fase de teste e somente na fase de treinamento (ver seção 4.841 0.9 condições 0.960 0.937 0.9 condições 0.821 2 condições 0.841 0.703 1.841 0. A primeira coluna representa a classe (patologia) da base de dados.920 5 1 0.764 11 1 0. A sexta coluna representa o número médio de condições para cada uma das 2 regras obtidas no treinamento.936 0.939 0.970 0.867 0.841 0.929 0. A primeira coluna representa a classe (patologia) da base de dados.841 0.976 0.9 condições 0.7 0.613 A tabela 16 apresenta os resultados obtidos na fase de teste pela programação genética com restrições.717 0. As segunda.933 0.4.841 0.3). 69 5.792 2 condições 0.827 1.841 0.841 0. respectivamente.3). 1996).689 2 1 0.811 1. da especificidade e .984 0.5 e pelo algoritmo genético com raciocínio por analogia (LOPES.9 condições 0.984 0.880 0. obtido durante a fase de treinamento.980 0.9 condições 1 0.953 0.8 0.816 2 condições 0.937 0.841 0.757 7 1 0. que penaliza as regras com muitos atributos sem forçá-las a desaparecer (seção 4.1 Base de dados dor torácica A tabela 15 apresenta os resultados médios obtidos pela programação genética para a base de dados dor torácica após as 5 execuções com a validação cruzada. a especificidade e a parcimônia na fase de treinamento.8 0.841 0.824 1.733 0.457 3 1 0.952 0. A segunda e a sétima colunas representam o resultado médio da sensibilidade nas fases de treinamento e teste.780 10 1 0.811 1. A terceira e a oitava colunas representam o resultado médio da especificidade nas fases de treinamento e teste.942 0.958 0.8 0. também denominada simplicidade. respectivamente.961 0.970 0. Tabela 15 .841 2 condições 0.Resultados para a base de dados dor torácica Treinamento Teste Classe S E P SxExP nº médio de condições S E SxE 1 1 0.937 8 0.965 0.9 condições 0.629 9 1 0.632 6 1 0.5 0. A quinta coluna representa o resultado médio do produto entre a sensibilidade.816 2 condições 0.833 0.667 0.896 0.790 1.841 0. terceira e quarta colunas representam o resultado médio da sensibilidade. A quarta coluna representa o resultado médio da parcimônia.668 12 1 0.784 4 1 1 0.7 0. pelo C4.

70

do produto entre a sensibilidade e a especificidade, respectivamente, para programação
genética com restrições. De forma análoga às segunda, terceira e quarta colunas, as quinta,
sexta e sétima colunas representam os resultados para o C4.5, e as oitava, nona e décima
colunas representam os resultados para a outra abordagem (AG/RA).

Tabela 16 – Resultados de teste para a base de dados dor torácica

PG C4.5 AG/RA
Classe
S E SxE S E SxE S E SxE
1 0,717 0,958 0,689 0,600 0,985 0,585 1 0,80 0,80
2 0,5 0,937 0,457 0,300 0,985 0,285 1 0,76 0,76
3 0,833 0,936 0,784 1 1 1 1 0,93 0,93
4 0,933 0,984 0,920 0,800 0,983 0,783 1 0,95 0,95
5 0,667 0,961 0,632 0,200 0,968 0,183 1 0,95 0,95
6 0,8 0,952 0,757 0,700 0,969 0,683 0,80 1 1
7 1 0,937 0,937 0,600 1 0,600 1 0,93 0,93
8 0,733 0,867 0,629 0 0,956 0 0,50 0,93 0,47
9 0,8 0,968 0,780 0,367 0,953 0,343 1 0,91 0,91
10 0,8 0,953 0,764 0,500 0,954 0,469 1 0,89 0,89
11 0,7 0,960 0,668 0,7 0,920 0,637 1 0,91 0,91
12 0,7 0,880 0,613 0,300 0,986 0,300 1 0,93 0,93

Observando os resultados para os três métodos, a programação genética obteve melhor
desempenho que o C4.5, mas a programação genética não obteve resultados tão bons quanto o
algoritmo genético. Para a classe 7, a programação genética conseguiu resultados iguais ao
algoritmo genético e para a classe 8, resultados melhores. Algumas considerações em relação
ao algoritmo genético são necessárias, pois o mesmo não utiliza validação cruzada como a
programação genética e o C4.5, e também possui a desvantagem de que os resultados globais
não são compreensíveis pelo usuário.
Mais precisamente, a abordagem AG/RA e não descobre regras do tipo SE-ENTÃO.
Esse tipo de regra, que tende a ser intuitivamente compreensível para o usuário, é descoberto
pela programação genética e pelo C4.5. Assim, dentre os dois métodos avaliados que
descobrem regras compreensíveis, a programação genética tem a vantagem de obter taxas de
S e E bem melhores, em geral.
Entre os vários critérios que podem ser usados para avaliar a precisão preditiva de um
conjunto de regras descobertas, foi também utilizada a taxa de acerto, que, apesar de suas
desvantagens (HAND, 1997), ainda parece ser a mais usada na literatura. A taxa de acerto é

71

simplesmente a relação do número de exemplos de teste corretamente classificados sobre o
número total de exemplos de teste. A programação genética alcançou uma taxa de acerto
médio (nos dados de teste) de 76,08% ± 4,85, enquanto o C4.5 alcançou uma média de
73,18% ± 1,53, onde os números após o símbolo “±” representam o desvio padrão das
correspondentes médias de taxa de acerto. Na programação genética, o número médio de
regras descobertas e o número médio de condições por regra são 24 e 1,95, respectivamente.
No C4.5, o número de regras (número de nós folha na árvore) e o número médio de condições
por regra (número médio de nós internos para cada caminho do nó raiz até um nó folha) são
25,2 e 7,18, respectivamente. (Esses resultados representam a média sobre todas as iterações
da validação cruzada.)
Neste trabalho, o interesse não está só na precisão preditiva das regras descobertas,
mas também na compreensibilidade das regras – no espírito de data mining. Para demonstrar
essa compreensibilidade, a tabela 17 apresenta as regras obtidas pela programação genética.

Tabela 17- Melhor regra para cada classe da base de dados dor torácica
Classe Regra
Se ((irradiação da dor no membro superior esquerdo = 1) e (inicio súbito ou
1 abrupto)) ou ((duração = alguns segundos) e (profundidade superficial))
Então (classe = angina estável )
Se ((duração = 5 a 30 minutos) e (uso de nitratos = 1)) ou
2 ((profundidade = superficial) e (história pessoal de DAS = 1))
Então (classe = angina instável)
Se ((CPK-MB = elevado) e (ecg: distúrbio da condução em AV ou IV = 1)) ou
3 ((ecg: elevação significativa do segmento ST = 1) e (CPK-MB = elevado))
Então (classe = infarto agudo do miocárdio)
Se ((raios X de tórax: dilatação da aorta ascendente ou da aorta descendente = 1) e
(profundidade profunda)) ou ((raios X de tórax: dilatação da aorta ascendente
4
ou da aorta descendente = 1) e (estase jugular = 0))
Então (classe = disecção de aorta)
Se ((ausência de fatores desencadeantes = 1) e (pericardite prévia = 1)) ou
5 ((pulso paradoxal = 1) e (ecg: baixa voltagem dos complexos = 1))
Então (classe = tamponamento cardíaco)
Se ((caráter = pleurítica) e (cirurgia da pélvis ou membros inferiores prévia = 1))
6 ou ((pós -operatório ou convalescença = 1) e (local da dor: retroesternal = 0))
Então (classe = tromboembolismo pulmonar)
Se ((hiper-ressonância à percussão = 1) e (obesidade = 0)) ou
7 ((raios X de tórax = alterado) e (local da dor região lateral direita do tórax = 1))
Então (classe = pneumotórax)
Se ((raios X de tórax = alterado) e (inicio = gradativo/progressivo)) ou
8 ((cansaço = 0) e (pericardite prévia = 1))
Então (classe = pericardite)

72

Se ((uso de antiinflamatórios não-hormonais = 1) e (caráter = “em queimação”))
9 ou ((local da dor: retroesternal = 0) e (história pessoal de úlcera péptica = 1))
Então (classe = úlcera péptica)
Se ((freqüência = episódica) e (azia ou eructação = 1)) ou
10 ((doenças esofágicas = 1) e (local da dor: retroesternal = 1))
Então (classe = espasmo/refluxo esofágico)
Se ((caráter = inespecífica) e (fator desencadeante: esforço físico = 1)) ou
11 ((duração = alguns dias) e (fator desencadeante: esforço físico = 1))
Então (classe = origem músculo-esquelética)
Se ((profundidade = superficial) e (freqüência = episódica)) ou
12 ((ansiedade = 1) e (caráter = inespecífica))
Então (classe = origem psicogênica)

A figura 11 mostra a árvore resultante para uma das regras obtidas pela programação
genética (regra para classe 12) para a base de dados dor torácica.

OU

E E

= = = =

profund 1 frequencia 1 ansiedade 1 carater 5

Figura 11 – Exemplo de uma árvore gerada pela programação genética para a base de dados
dor torácica.

5.4.2 Base de dados pediatric adrenocortical tumor

A tabela 18 apresenta os resultados médios obtidos pela programação genética para a
base de dados pediatric adrenocortical tumor após as 5 execuções com a validação cruzada
para os 3 experimentos citados na seção 5.1.4. As colunas são análogas às da tabela 15
apresentada anteriormente.

725 0. A programação genética obteve bons resultados.826 0.9 0.841 0.931 0.781 0.92 0.560 2 1 0.798 0.735 0.7 ± 2.634 1.Resultados para a base de dados pediatric adrenocortical tumor Treinamento Teste Classe S E P SxExP nº médio de condições S E SxE 1 0.44 2 78. obtendo um baixo desempenho no geral em relação à programação genética.1 0.61 88.24 ± 1.80 ± 13. A tabela 20 apresenta a taxa de acerto médio para os 3 experimentos. como mostrado na tabela 19.5 Classe S E SxE S E SxE 1 0. Tabela 19 – Resultados de teste para a base de dados pediatric adrenocortical tumor PG C4. 73 Tabela 18 .5.841 0. O C4.5 1 73.693 3 0.53 3 67.735 0. A segunda coluna representa a taxa de acerto médio com o respectivo desvio padrão para a programação genética.916 0.1 0. mas resultados baixos para a sensibilidade.5.79 0.725 0.826 0.560 0.02 Apesar da programação genética obter resultados bem melhores que o C4.5 foi . E a terceira coluna representa a taxa de acerto médio com o desvio padrão para o C4.694 1.77 ± 5. exceto na terceira classe onde a sensibilidade obteve um valor muito baixo. verifica-se que a programação genética obteve um melhor desempenho para as três classes em relação ao C4.841 0.079 2 0. As colunas são análogas às 7 colunas iniciais da tabela 16 apresentada anteriormente.5 obteve bons resultados para a especificidade. onde a primeira coluna representa a classe.33 ± 4.7 condições 0.1 0.79 0.067 A tabela 19 apresenta os resultados obtidos na fase de teste pela programação genética com restrições e pelo C4.85 75.781 0.693 0 1 0 3 0.9 condições 0.067 0 1 0 Observando os resultados.5.3 ± 2.5 com relação ao produto S x E.9 0.64 87. a taxa de acerto para o C4. Tabela 20 – Taxa de acerto para a base de dados pediatric adrenocortical tumor Classe PG C4.625 2 condições 0.

o C4.5 obteve o número médio de condições igual a zero.Melhor regra dos experimentos da base de dados pediatric adrenocortical tumor Experimento Regra Se ((age 1317) e (tumor_volume 760)) ou 1 ((age 815 ) e (cushing = 1)) Então (survival até 1 ano) Se ((stage = 4 ) e (viriliz = 1)) ou 2 ((tumor_volume < 1331) e (relapse = 1)) Então (survival de 1 a 2 anos) Se ((age 1187) e (viriliz = 0 )) ou 3 ((age < 2598) e (stage = 2)) Então (survival de 2 a 5 anos) . uma vez que o mesmo aparentemente lida melhor com dados ruidosos do que a programação genética. deve-se lembrar que nesta base existem dados ausentes e duvidosos.74 melhor. Michalkiewicz. a tabela 22 apresenta as regras obtidas pela programação genética. uma vez que o C4. A programação genética não possui um método específico para poda de regras. Tabela 22 . Como existe o interesse na compreensibilidade das regras. o C4.5. Portanto. sendo que na primeira classe foram obtidas 2 regras e nas demais nenhuma regra.9 condições 0 condições Na segunda e terceira classe.64 condições 2 1. 1993). A segunda coluna representa o número médio de condições para cada uma das 2 regras obtidas no treinamento pela programação genética. E a terceira coluna representa o número médio de condições por regra no C4. A tabela 21 apresenta o número médio de condições por regra para as 3 classes. conforme explicado pelo Dr. onde a primeira coluna representa a classe. ele apenas incorpora um termo de parcimônia na função de fitness. Tabela 21 – Número de condições para a base de dados pediatric adrenocortical tumor Classe PG C4. Isso parece plausível. e optou por gerar uma “árvore” com apenas o nó raiz.7 condições 0 condições 3 1.5 1 2 condições 0. pois o mesmo não encontrou nenhum relacionamento confiável nos dados. Edson L.5 possui um método de poda de regras bem mais sofisticado do que a programação genética (QUINLAN. portanto sem nenhum nó interno. Inicialmente.5 obteve a melhor taxa de acerto.

3 Base de dados Ljubljana breast cancer A tabela 23 apresenta os resultados médios obtidos pela programação genética para a base de dados Ljubljana breast cancer após as 5 execuções com a validação cruzada.Resultados para a base de dados Ljubljana breast cancer Treinamento Teste Classe S E P SxExP nº médio de condições S E SxE 1 0.414 2 condições 0.423 1.616 0. Tabela 23. 75 A figura 12 mostra a árvore resultante para uma das regras obtidas pela programação genética (regra para experimento 3) para a base de dados pediatric adrenocortical tumor.841 0.564 0.368 2 0. A oitava coluna apresenta os resultados para o algoritmo genético proposto por FIDELIS. LOPES e FREITAS (2000).648 0. .9 condições 0.647 0.4.356 A tabela 24 apresenta os resultados obtidos na fase de teste pela programação genética com restrições e pelo C4.685 0. As colunas são análogas às da tabela 15 apresentada anteriormente. 5. OU E E = < = age 1187 viriliz 0 age 2598 stage 2 Figura 12 – Exemplo de uma árvore gerada pela programação genética para a base de dados pediatric adrenocortical tumor. As colunas são análogas às 7 colunas iniciais da tabela 16 apresentada anteriormente.5.834 0.729 0.777 0.727 0.

356 0. O baixo valor obtido na taxa de acerto é conseqüência do ruído presente nesta base de dados. bem maior que a taxa de acerto obtida pelo sistema.4%. Na programação genética. a tabela 25 apresenta as regras obtidas pela programação genética. logo o mesmo obtém melhores resultados que a programação genética (seção 5. .5 e em relação ao algoritmo genético. e os resultados obtidos pelo método C- MLP2LN estão apresentados na tabela 27.38% ± 1.encontrada na literatura) obteve uma taxa de acerto de 77. e o C-MLP2LN (DUCH.771 0. conforme CLARK e NIBLETT (1987). o resultado obtido para a classe 1 foi aproximadamente igual e para a classe 2 foi um pouco abaixo. No C4.368 0.109 0.616 0.5 AG Classe S E SxE S E SxE SxE 1 0. o número de regras descobertas e o número médio de condições por regra são 4 e 1.) Como existe o interesse na compreensibilidade das regras. os valores obtidos na taxa de acerto pela programação genética foram comparados com outras abordagens.6 e 1.98. enquanto o C4. O algoritmo genético obteve uma taxa de acerto de 67%.5 aparentemente lida melhor com dados ruidosos. a programação genética obteve resultados um pouco melhores para as duas classes do que o C4.647 0.5.76 Tabela 24 – Resultados de teste para a base de dados Ljubljana breast cancer PG C4.5 alcançou uma média de 71.393 Observando os resultados. ADAMCZAK e GRABCZEWSKI. 1997) (sendo este método a melhor abordagem – melhor taxa de acerto .771 0. De forma análoga.2). respectivamente.564 0. Inicialmente.152 0. apesar das três abordagens apresentarem resultados baixos. (Esses resultados representam a média sobre todas as iterações da validação cruzada.17% ± 12. aproximadamente igual à taxa de acerto obtida pelo sistema.109 0.152 0.729 0. os resultados obtidos pelo algoritmo genético estão representados na tabela 26. a programação genética para a base de dados Ljubljana breast cancer.05. Como o C4. Em seguida.95.19.365 2 0. alcançou uma taxa de acerto médio de 67. respectivamente. o número de regras (número de nós folha na árvore) e o número médio de condições por regra (número médio de nós internos para cada caminho do nó raiz até um nó folha) são 7.4.

. tendo somente um atributo com o mesmo valor em ambas. Em seguida. dois atributos estão presentes nas duas abordagens.Melhor regra para cada classe da base de dados Ljubljana breast cancer pela PG Classe Regra Se ((irradiat = no) e (deg-malig = 1)) ou ((deg-malig = 2) e (inv-nodes < 3-5)) 1 Então (classe = no-recurrence-events) Se ((tumor-size 10-14) e (inv-nodes 3-5)) ou 2 ((tumor-size 25-29) e (deg-malig = 3)) Então (classe = recurrence-events) Tabela 26 – Regras para a base de dados Ljubljana breast cancer pelo AG Classe Regra Se (inv-nodes < 9-11) e (deg-malig < 2) e (irradia t = no) 1 Então (classe = no-recurrence-events) Se (menopause ge40) e (tumor-size 45-49) e (deg-malig 2) 2 Então (classe = recurrence -events) Tabela 27 – Regras para a base de dados Ljubljana breast cancer pelo C-MLP2LN Classe Regra Se (deg-malig = 3) e (breast = left) e (node-capes = yes) 1 Então (classe = no-recurrence-events) Se (deg-malig = 3 ou breast = left) e (não inv-nodes = 0-2) e 2 (não age = 50-59) Então (classe = recurrence -events) Inicialmente. 77 Tabela 25 . e dentre estes atributos. verifica-se que. analisando as regras geradas pela programação genética e pelo C-MLP2LN. sendo que somente um destes atributos apresenta o mesmo valor nas duas abordagens. na classe 1. A figura 13 mostra a árvore resultante para uma das regras obtidas pela programação genética (regra para a classe 2) para a base de dados Ljubljana breast cancer. dois apresentam os mesmos valores. pode-se verificar que os atributos presentes nas regras são os mesmos para a classe 1. enquanto na classe 2. estão presentes nas duas abordagens. somente um atributo está presente nas duas abordagens e com valores diferentes. dentre os três. comparando as regras geradas pela programação genética e pelo AG. Na classe 2 somente dois atributos.

998 0.998 0.883 0.933 0.839 1. As colunas são análogas às da tabela 15 apresentada anteriormente.841 0.95 0. Tabela 28 .839 2 condições 0.841 0.9 0.803 0. LOPES e FREITAS (2000).973 0.697 2 condições 0.841 0. As colunas são análogas às 7 colunas iniciais da tabela 16 apresentada anteriormente.953 0.843 0.938 A tabela 29 apresenta os resultados obtidos na fase de teste pela programação genética com restrições e pelo C4.841 2 condições 1 0. A oitava coluna apresenta os resultados para o algoritmo genético proposto por FIDELIS.993 6 1 0.8 condições 0.Resultados para a base de dados dermatology Treinamento Teste Classe S E P SxExP nº médio de condições S E SxE 1 1 0.78 OU E E = tumor-size 10-14 inv-nodes 3-5 tumor-size 25-29 deg-malig 3 Figura 13 – Exemplo de uma árvore gerada pela programação genética para a base de dados Ljubljana breast cancer.4.804 3 1 1 0.4 Base de dados dermatology A tabela 28 apresenta os resultados médios obtidos pela programação genética para a base de dados dermatology após as 5 execuções com a validação cruzada. .988 0.841 0.929 1 0.916 0.841 0.841 2 condições 0.929 4 0. 5.992 0.993 0.6729 2 condições 0.965 2 0.717 5 1 1 0.891 0.841 0.5.

14% ± 2.12% ± 0. Na programação genética.9 0.87. Inicialmente.973 0.725 0.929 1 1 1 0. Em seguida. o número de regras descobertas e o número médio de condições por regra são 12 e 1.76 1 Observando os resultados. os valores obtidos na taxa de acerto pela programação genétic a foram comparados com outras abordagens. Das seis classes. a tabela 30 apresenta as regras obtidas pela programação genética.955 0.938 0.855 3 0. alcançou uma taxa de acerto médio de 94. De forma análoga. respectivamente. e o VFI5 desenvolvido por DEMIROZ.2%. enquanto o C4.916 0.960 0. E o algoritmo genético obteve melhores resultados.76 1 0. para a base de dados dermatology.803 0.988 0.5.710 0.804 0.5.883 0.25.973 2 0. verifica-se que a programação genética obteve melhores resultados no geral em relação ao C4.76 1 0. O algoritmo genético obteve uma taxa de acerto de 95%. um pouco maior que a taxa de acerto obtida pelo sistema. a programação genética obteve: um melhor desempenho em três classes.929 1 0. o número de regras (número de nós folha na árvore) e o número médio de condições por regra (número médio de nós internos para cada caminho do nó raiz até um nó folha) são 22 e 3. em relação à programação genética. 79 Tabela 29 – Resultados de teste para a base de dados dermatology PG C4.5 em duas classes e somente em uma classe o seu desempenho foi inferior ao C4.5 alcançou uma média de 89.992 0.95 0.979 4 0. bem maior que a taxa de acerto obtida pelo sistema. a programação genética.783 5 1 0. GÜVENIR e ILTER (1998) obteve uma taxa de acerto de 99. respectivamente.5.750 0.717 0. No C4.993 0.) Como existe o interesse na compreensibilidade das regras. (Esses resultados representam a média sobre todas as iterações da validação cruzada. um desempenho praticamente igual ao C4. no geral.994 0.967 0.96.719 0.992 0.7.5 AG Classe S E SxE S E SxE SxE 1 0.76 1 6 0. .965 0. os resultados obtidos pelo algoritmo genético estão representados na tabela 31.993 0.

Melhor regra para cada classe da base de dados dermatology pela PG Classe Regra Se ((clubbing of the rete ridges 0) e (follicular papules < 3)) ou 1 ((exocytosis = 0) e (thinning of the suprapapillary epidermis 0)) Então (classe = psoriasis) Se ((koebner phenomenon < 1) e (spongiosis 0)) ou 2 ((PNL infiltrate 0) e (clubbing of the rete ridges < 1)) Então (classe = seboreic dermatitis) Se ((polygonal papules 1) e (acanthosis < 3)) ou 3 ((melanin incontinence 1) e (family histoly = 0)) Então (classe = lichen planus) Se ((spongiosis 0) e (koebner phenomenon 0)) ou 4 ((disappearance of the granular layer = 1) e (spongiosis 0)) Então (classe = pityriasis rosea) Se ((saw-tooth appearance of retes 0) e (spongiform pustule < 0)) ou 5 ((koebner phenomenon < 1) e (fibrosis of the papillary dermis 1)) Então (classe = cronic dermatitis) Se ((follicular papules 0) e (follicular horn plug 0)) ou 6 ((follicular papules 2) e (knee and elbow involvement 2)) Então (classe = pityriasis rubra pilaris) Tabela 31 .80 Tabela 30 .Regras descobertas para a base de dados dermatology pelo AG Classe Regra Se (clubbing of the rete ridges 1) e (perifollicular parakeratosi s = 0) 1 Então (classe = psoriasis) Se (koebner phenomenon = 0) e 2 (vacuolisation and damage of basal layer < 1) e (spongiosis 2) Então (classe = seboreic dermatitis) Se (band-like infiltrate 2) 3 Então (classe = lichen planus) Se (knee and elbow involvement = 0) e (family history = 0) e (acanthosis < 3) e (focal hypergranulosis < 2) e (spongiosis 1) e 4 (inflammatory monoluclear infiltrate 1) Então (classe = pityriasis rosea) Se (melanin incontinence < 1) e (fibrosis of the papillary dermi s 0) e 5 (munro microabcess = 0) Então (classe = cronic dermatitis) Se (follicular papules 1) e (perifollicular parakeratosis 1) 6 Então (classe = pityriasis rubra pilaris) .

5 e 6 possuem somente um atributo presente nas duas abordagens. Na base de dados nursery existem 7 tipos de valores de atributos-meta. isto é. E as outras colunas são análogas às da tabela 15 apresentada anteriormente.4. sendo que somente um deles apresenta o mesmo valor nas duas abordagens. A figura 14 mostra a árvore resultante para uma das regras obtidas pela programação genética (regra para classe 6) para a base de dados dermatology. A primeira coluna representa o par <atributo-meta. E a classe 3 não possui nenhum atributo em comum.5 Base de dados nursery A tabela 32 representa o resultado médio obtido pela programação genética para a base de dados nursery após as 5 execuções com a validação cruzada. 4. . e o atributo apresenta o mesmo valor em ambas. valor> sendo previsto. valor>. OU E E f_papules 0 follicular 0 f_papules 2 knee_elbow 2 Figura 14 – Exemplo de uma árvore gerada pela programação genética para a base de dados dermatology. 7 diferentes valores possíveis para um conseqüente de regra. Cada linha representa o resultado médio da melhor regra prevendo um par <atributo-meta. 81 Comparando as regras geradas pela programação genética e pelo AG. as classes 1. 5. A classe 2 possui dois atributos presentes tanto em programação genética como em AG.

5 condições 0.999 100 97. 1 0.0457 0. Esses dois algoritmos genéticos foram desenvolvidos para resolver a tarefa de modelagem de dependência. onde a primeira coluna representa o par <atributo-meta.245 2 condições 0.522 0.196 convenient> <finance. 1 0. 0.293 <class. A segunda coluna representa a taxa de acerto médio para a programação genética. valor> PG AG (Noda et al.679 <class. E a quarta coluna representa a taxa de acerto médio obtido pelo algoritmo genético apresentado por ARAÚJO. A terceira coluna representa a taxa de acerto médio obtido pelo algoritmo genético apresentado por NODA.888 0. inconv> 49.865 0. 1997).) <class .514 0. FREITAS e LOPES (1999).312 2 condições 0.250 recommend> <class.4 condições 1 0.235 - <class .675 0.8 condições 1 0.752 0.585 0. que é a divisão do número de registros cobertos e com a classe correta pelo número de registros cobertos para cada regra (HAND.Resultados para a base de dados nursery Treinamento Teste <Meta.3 condições 0.63 100 30.601 0.815 1.666 0.93 . que é a mesma tarefa resolvida pela programação genética na base de dados nursery.Taxa de acerto para a base de dados nursery <Meta.399 0.632 0.672 0. valor> S E P SxExP nº médio de condições S E SxE <class.871 not_recom> <class.902 <finance.871 0. 1 0.2 condições 0.38 100 69.4 0.275 priority> <class. convenient> 50.393 0.286 <finance.202 100 - <class .794 0.206 1. 0.552 0.853 0.675 very_recom> <class.794 0.547 1.) AG (Araújo et al. recommend> 0. Tabela 33 . spec_prior> 48.215 1.597 0. 0.818 0.451 100 74.82 Tabela 32 .960 0.942 0.394 spec_prior> <finance.404 0.453 0.777 0.170 100 62. very_recom> 56. valor> sendo previsto. 0. not_recom> 81.817 1.876 0.418 0.170 inconv> A tabela 33 apresenta a taxa de acerto médio para cada valor de atributo-meta.752 0. LOPES e FREITAS (1999). priority> 50.522 0.

valor> Regra Se (health = not_recom) ou <class . Em relação ao algoritmo genético apresentado por NODA. LOPES e FREITAS (1999) estão representados na tabela 36. FREITAS e LOPES (1999) estão representados na tabela 35 e os resultados obtidos pelo algoritmo genético apresentado por ARAÚJO. Nas abordagens utilizando AG. recommend> (finance = inconv) Então (class = recommend) Se ((health = recommended) e (finance = inconv)) ou <class . teve um desempenho bem baixo. Porém. Tabela 34 .Regra para cada conseqüente da base de dados nursery pela PG <Meta. a tabela 34 apresenta as regras obtidas pela programação genética. o número de regras descobertas e o número médio de condições por regra são 14 e 1. very_recom> ((health = recommended) e (finance = convenient)) Então (class = very_recom) Se ((finance = convenient) e (health = priority)) ou <class . Como existe o interesse na compreensibilidade das regras. não foi possível verificar o número médio de condições. verifica-se que a programação genética não obteve bons resultados na taxa de acerto em relação às duas abordagens que utilizaram algoritmos genéticos. LOPES e FREITAS (1999) na classe not_recom. a programação genética. A programação genética superou o algoritmo genético apresentado por ARAÚJO. Na programação genética. cabe ressaltar que algumas das regras descobertas pelo algoritmo genético cobrem um número bem pequeno de exemplos (menor que 10). no geral. FREITAS e LOPES (1999). uma vez que aquele algoritmo genético não apresentou nenhum resultado nestas duas classes. not_recom> ((children = 1) e (parents = usual)) Então (class = not_recom) Se ((has_nurs = proper) e (children = 1)) ou <class. e pode-se dizer que também obteve melhor desempenho nas classes recommend e very_recom. enquanto que as regras descobertas pela programação genética têm maior generalidade. De forma análoga. spec_prior> ((housing = critical) e (finance = convenient)) Então (class = spec_prior) . os resultados obtidos pelo algoritmo genético apresentado por NODA.6. respectivamente. priority> ((parents = usual) e (finance = inconv)) Então (class = priority) Se ((finance = inconv) e (health = priority)) ou <class. 83 Observando os resultados. uma vez que nada foi citado sobre este assunto nos artigos.

valor> Regra Se (parents = usual) e (form = foster) e (housing = <class . <Meta. very_recom> - Se (health = recommended) <class .84 Se (form = completed) ou <finance. not_recom> Então (class = not_recom) <class. convenient> (classe = not_recom) Então (finance = convenient) Se ((classe = spec_prior) e (social = problematic)) ou <finance. <Meta.Regra para cada conseqüente da base de dados nursery pelo AG de Araújo et al. priority> Então (class = priority) <class. priority> (form = more) e (health = priority) Então (class = priority) Se (parents = usual) e (has_nurs = very_crit) e <class. spec_prior> Se (has_nurs = very_crit) e (health = priority) . valor> Regra Se (housing = convenient) e (finance = incov) <class . recommend> - <class .Regra para cada conseqüente da base de dados nursery pelo AG de Noda et al. not_recom> less_conv) e (finance = incov) e (health = not_recom) Então (class = not_recom) Se (children = 1) <class. inconv> ((form = incomplete ) e (children = 3)) Então (finance = inconv) Tabela 35 . convenient> (health = recommended) e (class = priority) Então (finance = convenient) Se (has_nurs = very_crit) e (housing = convenient) e (social = slightly_prob) e (health = recommended) e <finance. inconv> (class = spec_prior) Então (finance = incov) Tabela 36 . very_recom> (social = slightly_prob) e (health = recommended) Então (class = very_recom) Se (parents = pretensious) e (has_nurs = less_proper) e <class . recommend> Então (class = recommended) Se (parents = pretentious) e (has_nurs = less_proper) e (housing = convenient) e (finance = convenient) e <class . spec_prior> (form = more) e (finance = incov) e (health = priority) Então (class = spec_prior) Se (has_nurs = very_crit) e (children = more) e <finance.

Na tabela 35. not_recom> não possui nenhum atributo em comum às duas abordagens. sendo que. o atributo não possui o mesmo valor em ambas. convenient> Então (finance = convenient) Se (housing = convenient) e (class = spec_prior) <finance. Em seguida. valor> nas duas abordagens. Logo. very_recom> não apresentaram nenhuma regra descoberta pelo AG apresentado por ARAÚJO. 85 Então (class = spec_prior) Se (housing = convenient) e (class = very_recom) <finance. LOPES e FREITAS (1999). em alguns pares. LOPES e FREITAS (1999). OU E E = = = = classe spec_prior social problematic form incomplete children 3 Figura 15 – Exemplo de uma árvore gerada pela programação genética para a base de dados nursery. verifica-se que existe pelo menos um atributo em comum em cada par <atributo meta. não é possível comparar as regras destes dois pares com a programação genética. . FREITAS e LOPES (1999). A figura 15 mostra a árvore resultante para uma das regras obtidas pela programação genética (para o par <finance. inconv> Então (finance = incov) Inicialmente. comparando as regras geradas pela programação genética com o AG apresentado por NODA. recommend> e <class. analisando as regras geradas pela programação genética e pelo AG apresentado por ARAÚJO. inconv>) para a base de dados nursery. somente o par <class. os pares <class.

86 .

1 ANÁLISE DOS RESULTADOS Algumas considerações em relação às bases de dados dor torácica e pediatric adrenocortical tumor são feitas inicialmente. Em particular. É difícil avaliar sobrevida sem considerar "pacientes em risco". uma vez que é utilizada a validação cruzada com fator 5 (seção 5. e também na taxa de acerto. o que dificulta uma boa avaliação estatística. os resultados obtidos pela programação genética foram comparados com o algoritmo C4. sendo que o mesmo classificou os resultados encontrados como interessantes. Na base de dados dor torácica. mas em compensação ganhou na compreensibilidade das regras. Na base de dados pediatric adrenocortical tumor. A programação genética obteve bons resultados no produto S x E e na compreensibilidade das regras. os resultados obtidos foram comparados com o algoritmo C4. em 13/02/2001. os resultados podem ser uma particularidade deste banco de dados e não refletirem a realidade clínica. Ao dividir esta base em 5 partições aproximadamente iguais. a base de dados de dor torácica que possui 12 classes e 138 exemplos. Os resultados obtidos podem ser justificados pelos poucos registros na base. Estas duas bases de dados possuem poucos registros. Os resultados foram apresentados ao Dr. além de conter alguns dados duvidosos. Edson Michalkiewicz (médico do HEG e colaborador do trabalho) para avaliação. Para cada dia que passa. No produto S x E. sendo este um dos objetivos do trabalho. a programação genética não obteve bons resultados. Uma análise geral do Dr. toma-se.3). por exemplo. mas teve baixos resultados na taxa de acerto.5. Se um paciente foi acompanhado por 200 dias e 15 Resposta enviada por e-mail pelo Dr. Edson. Edson é que a dificuldade em avaliar algumas destas regras é devido ao tipo do endpoint escolhido para variáveis contínuas. além de ser uma metodologia promissora 15. há um certo número de pacientes em risco de morrer. tem-se entre 27 e 28 casos. . Para se ter uma idéia da dificuldade. sendo que tem-se somente 2 a 3 casos associados a cada classe.5 e com a abordagem AG/RA. 87 CAPÍTULO 6 DISCUSSÃO E CONCLUSÕES 6. a variável survival (sobrevida) é uma variável contínua e muda à medida que o tempo passa. Assim sendo.

lembrando que o AG não conseguiu apresentar nenhuma regra para os dois últimos pares citados. a programação genética obteve resultados inferiores aos do algoritmo genético e um pouco melhores que os obtidos pelo C4. recommmend> nos resultados. very_recom>. e um resultado aproximadamente igual ao obtido pelo algoritmo genético.5. a programação genética obteve um baixo resultado em relação ao método VFI5. enquanto que o algoritmo genético desenvolvido por Noda e colaboradores tem a maioria das regras extensas. Na base de dados Ljubljana breast cancer. pois se for esperado tempo suficiente ele poderá entrar. foi devido ao fato de que dentre os 12960 registros existem somente 2 registros para esta classe. Na compreensibilidade das regras. e o algoritmo desenvolvido por Araújo e colaboradores não encontrou nenhuma regra para 2 pares <atributo meta. enquanto a programação genética obteve regras menores. valor>. No produto S x E. a programação genética não obteve bons resultado em relação às duas abordagens. recommmend> e <class. Na taxa de acerto. Na taxa de acerto. A programação genética obteve melhor desempenho em relação ao algoritmo genético apresentado por ARAÚJO. LOPES e FREITAS (1999). No produto S x E. Na base de dados nursery foi realizada a tarefa de modelagem de dependência. mas especialmente na classe 4 obteve uma regra muito extensa. not_recom>. somente nos pares <class. o algoritmo C4. O baixo valor obtido no par <class. Na taxa de acerto a programação genética obteve um baixo resultado em relação ao método C-MLP2LN. NODA. LOPES e FREITAS (1999). Na base de dados dermatology. que dificulta a sua análise. os resultados obtidos pela programação genética foram comparados com o algoritmo genético.5. e os resultados obtidos pela programação genética foram comparados com duas abordagens diferentes de algoritmos genéticos. a programação genética obteve regras menores. KAPLAN e MEIER (1958) revolucionaram a análise de sobrevida depois que desenvolveram uma técnica para considerar pacientes em risco e envolver todos os pacientes na análise. a programação genética obteve as menores regras. os resultados obtidos pela programação genética foram comparados com o algoritmo genético. facilitando a sua análise. e um resultado aproximadamente igual ao obtido pelo algoritmo genético.88 outro por 1000 dias.5 e com o método C- MLP2LN.5 e com o algoritmo VFI5. a programação genética obteve resultados aproximadamente iguais aos obtidos pelo algoritmo genético e melhores que os obtidos pelo C4. o primeiro não pode ser excluído da análise só por que não entra no intervalo do estudo. <class. o algoritmo C4. . Na compreensibilidade das regras. FREITAS e LOPES (1999) e ARAÚJO. Na compreensibilidade das regras. o algoritmo genético obteve algumas regras pequenas.

o sistema de PG descobriu um pequeno número de regras curtas na maioria dos experimentos realizados. sendo que todas as regras representadas no indivíduo têm o mesmo conseqüente. Com relação ao algoritmo de programação genética desenvolvido. o que a torna um desafio interessante para um algoritmo de data mining. em geral. de forma determinística. Foram criadas restrições hierárquicas entre os operadores lógicos AND e OR. Esta redução do número de regras e no número de condições de regras descobertas economiza potencialmente o precioso tempo do usuário humano. Foram adicionadas restrições para entradas e saídas dos operadores lógicos e relacionais.2). em grande parte. houve um aumento significativo da pressão seletiva.2. A título de otimizar a qualidade das regras obtidas. Como solução foi adotado um tipo de elitismo no nível de tipo de conseqüente para garantir uma diversidade mínima de conseqüentes na população. ao uso de um termo medindo a parcimônia (simplicidade) das regras na função de fitness. foi utilizado um método que gera o melhor conseqüente para cada antecedente da regra da população. certas adaptações foram introduzidas em relação ao modelo de algoritmo de programação genética clássico. Por este motivo. foi adicionada a restrição de unicidade de atributo no antecedente da regra. A maioria dos algoritmos de data mining existentes foi desenvolvida com o objetivo de realizar a tarefa de classificação (ver seção 3. garantindo que um indivíduo receba entradas válidas e conseqüentemente retorne uma saída válida para o nó pai. a tarefa de modelagem de dependência acaba tendo um espaço de busca bem maior do que a classificação. . 89 Em relação a todas as bases de dados.2 CONCLUSÕES Este trabalho apresentou um algoritmo de programação genética com restrições sintáticas para as tarefas de classificação e modelagem de dependência. o qual tem que analisar somente poucas regras curtas encontradas para cada classe. para facilitar a interpretação das regras representadas em um indivíduo. mais compreensível será o conjunto de regras como um todo. Para evitar que em uma mesma regra tenha-se um mesmo atributo com valores diferentes. Isso se deve. quanto menor o número de regras e menor o número de condições. Quanto ao número de regras descobertas. Cada indivíduo representa um conjunto de regras. 6. Ao envolver uma busca por regras prevendo mais de um atributo-meta.

a programação genética obteve melhor resultado em 2 bases de dados (dor torácica e dermatology). Assim. que são importantes do ponto de vista de data mining. a programação genética obteve melhor resultado que o C4.5 obteve melhor resultado nas outras 2 bases de dados (pediatric adrenocortical tumor e Ljubljana breast cancer). outro ponto a ser abordado é a utilização de técnicas de criação de nichos (niching) para aumentar a diversidade de tipos de conseqüente de uma regra na população de indivíduos. há uma disponibilidade bem maior de bases de dados para a tarefa de classificação. poder-se-ia modelar cada tipo de conseqüente como uma espécie diferente. Além disso. Um aspecto importante deste trabalho diz respeito à qualidade das regras descobertas. neste trabalho foram utilizadas quatro bases de dados da área médica para classificação. de domínio publico. podendo ser da área médica ou de qualquer outra área de aplicação. que é uma tarefa ainda mais desafiadora do que a tarefa de classificação. seria interessante utilizar a análise de sobrevida de KAPLAN e MEIER (1958) em experimentos com o sistema de programação genética proposto neste trabalho. Com relação à base de dados pediatric adrenocortical tumor. Experimentos adicionais poderiam trabalhar com um número maior de bases de dados. cabe ressaltar que nas 4 bases de dados usadas para classificação. demonstrando desta maneira a sua eficácia na descoberta de regras de previsão. evitando assim possíveis problemas que possam ocorrer devido à realização de cruzamento (crossover) entre indivíduos de espécies diferentes. Ao operador de crossover. Em modelagem de dependência. Com relação ao produto S x E.5 com relação a dois critérios: taxa de acerto e produto S x E. a programação genética foi comparada com o C4.3 TRABALHOS FUTUROS Uma aplicação inicial deste sistema foi o trabalho com bases de dados da área médica. seria acrescentado dois novos tipos: o .5 nas 4 bases de dados. Por outro lado. seria interessante avaliar o sistema proposto em outras bases de dados para modelagem de dependência. Em relação aos operadores genéticos algumas sugestões para trabalhos futuros são listadas a seguir. Em particular. Em particular.90 Como existiu uma grande dificuldade em se obter uma base de dados adequada da área médica para a tarefa de modelagem de dependência. 6. Em geral o algoritmo de programação genética proposto conseguiu descobrir regras compreensíveis e corretas. enquanto o C4. para a realização desta tarefa. foi utilizada apenas a base de dados nursery. Com relação à taxa de acerto.

sendo que eles teriam a finalidade de gerar regras-“filho” que sejam generalizações ou especializações das regras-“pais”. ou seja. . seria possível modificar a restrição de unicidade de atributo em um antecedente da regra para que seja possível representar intervalos. que atuasse somente nos nós terminais que fossem do tipo “valor do atributo”. 91 generalizado e o especializado. Desta maneira seria possível saber quando ocorreu uma violação e tentar corrigi-la. O operador de mutação seria do tipo “dirigido”. para melhorar o desempenho do sistema. Em relação às restrições. Outra possibilidade seria monitorar o número de vezes que cada uma das restrições utilizadas foi violada. O operador seeding funcionaria de forma a favorecer que indivíduos surjam para cobrir espaços de busca “inabitados”.

92 .

. PIATETSKY-SHAPIRO. 27 CLACK. e SWAMI. e FREITAS.S. A. S. 35 DEMIROZ. R.. e ZUMBACH. 1.. A. J. R. 76 CONGDON. e NIBLETT.. e YU. e GR¥BCZEWSKI. P. R. TARANTINO. (1999). 63.A..S. H. H... C. A.. LOPES. 93 INDICE REMISSIVO DE AUTORES CITADOS AGRAWAL. D. G... A.A.49 BONARINI. 37 DE JONG. J.. W. LOPES. e FREITAS. KELLER. I.S.B.. SPEARS. 64.D. e YU. E. e FREITAS. 25.D. T. D. 38. 41 ARAÚJO. A. e SMYTH. LOPES.. 36 BANZHAF. e VAN HEMERT. W.. G.M.. C.(2000). T.C. 24. (2000). D. S. N. 40 AUGIER. e CIOPPA. HAN. 76 EGGERMONT. e FRANCONE.S.E. U. O. e LOPES. H. A. C. M.79 DUCH. H. 88 ARAÚJO.C. F. J. P.. e ILTER. A. e YU P.L.A...38 BOJARCZUK.-S. 27 BOJARCZUK. 85.A. H.. G. G.A. e FREITAS. PICTET. GOVENIR. 83.A. 37 CHEN. 389 ..M. LOPES. 20 BHATTACHARYYA... T. 34 CLACK. A. 40.. K.F..S. ADAMCZAK. IMIELINSKI. P. 82. Y.. (1998).L. e KODRATOFF. 37 BRITO. 68.A. VENTURINI.. W. C. 37 DE FALCO. NORDIN. (1997). K. C.I. A.S. J... e GORDON.. EIBEN. T.E..(1999). H. IAZZETTA... 24 FAYYAD.A. 27 CLARK.

M. e POZO.. A. 35 GOLDBERG. E. W. 53 . 36 JANIKOW. C. 33. 51 LIU. F. BARRETO.. 50... 34.A. LOPES. 39 FREITAS.M. 25. 40 FREITAS.T.Z. 5 FREEMAN. A. J. HEINISCH. J. (1993).R. 36 FIDELIS.. D. A. 88.. 6 KOZA. FREITAS. 5.. 24. 11 HASSE. 30. (1999). 29 JANIKOW. OWENS.A. J. 10.. 90 KNUTH.C. M. J.V. e KWOK. (2000). 20..S. e WALSH. 5.. M. COUTINHO.A. 56. R. 25. 22.. E. P. S. A. A. J. 75. (1999). K e SMITH. e DEWEESE.. e LIMA. J. (2001).S. e FREITAS.J. E.S.A. H.A.J. 33. P. 68. 11. 39. J. e NERI..L. D. A. 78 FOGEL.Z.R. 44 GIORDANA.. H.94 FIDELIS.. 2.D. M.. S. (1997). A. 16. 6. 6 HAND. 28 KAPLAN. C.V.. 36.. 1. H. 82 HARRIES... (1996). S. 34 JANIKOW. 69 LOPES. 28 JANIKOW. C. A. 70. H. C. 28. 37 LOPES. LOPES.S. B. 55. D. e MEIER. 31 FREITAS. M.Z.. 48 LUKE. 17.. (1999).

e VRAIN. B.C. 95 MARTIN. 74 RECHENBERG. LEUNG. 41 OLAVE. 85.S.S. M. 30. WONG. R. M.A. D. DELACERDA. E.. M. 31. 68.F. e RAND B.. 29.. I.. R. C. 38 MICHALEWICZ. H. 52 . R. FREITAS. e LOPES. M. e SANDRINI. M. E.R. GOODMAN. (2000). 43 MICHALKIEWICZ. FREITAS. 36 QUINLAN. 26 NODA.. 25.. E.L. H. J.. A.. 40..C. V.C.. P.. 2. RIBEIRO.S.. e BOHANEC.. K.A. 31 ZONGKER D. 24. 82. e CHENG.K.D e PUNCH.D. W. Z. F. MOAL. 5 SMYTH. 83.A.. RAJKOVIC. L. M. SAMPAIO.. PUNCH B. J. 88 NODA. FIGUEIREDO.. E. 68. 40 NGAN.S. (1999).. P. G..SANDRINI.. PIANOVSKY.. 61 MONTANA.L.. A... 39 WHIGHAM. F. 30. P.J.. 66 PEI.. 65. e GOODMAN.. e LOPES. L.

96 .

v.C. LOPES. 21-26.D. p. G. Orlando. A. e KODRATOFF. 1998. p. 97 REFERÊNCIAS BIBLIOGRÁFICAS AGRAWAL. Proceedings of GECCO -2000. 1998. ARAÚJO. 265. H. Rule discovery with a parallel genetic algorithm. VENTURINI. e FREITAS. 4. Washington. BANZHAF. Genetic programming for knowledge discovery in chest-pain diagnosis. BOJARCZUK. 2000. e FREITAS. 1996. D. USA. H. S.A. AUGIER. A..284. Learning first order logic rules with a genetic algorithm Proceedings on the 1st International Conference on Knowledge Discovery & Data Mining. Madison. Proceedings of GECCO-99.. BOJARCZUK.E. Genetic and Evolutionary Computation Conference. F. PICTET. e ZUMBACH. T. IMIELINSKI.L. Las Vegas. Genetic and Evolutionary Computation Conference. p. C. Y. A. 19. W. LOPES.C.S. p. R. Evolutionary learning of fuzzy rules: competition and cooperation. G.A.. Man and Cybernetics Conference. 1999.S. 89-92. USA... Fuzzy Modelling: Paradigms and Practice. Proceedings of the International Conference on Management of Data (SIGMOD-93). p. 1993. 1995. NORDIN.. e SWAMI. KELLER. v. Proceedings of the IEEE Systems. Discovering comprehensible classification rules using genetic programming: a case study in a medical domain.A. 2.L.S. e FREITAS. BONARINI. Workshop Program. 940-945.S. USA.. P. USA. 38-44. Japan. ARAÚJO. A. Tokyo. Genetic Programming 1998: Proceedings of the 3rd Annual Conference. 11-16. LOPES. 207-216.A. 1999. LOPES. A parallel genetic algorithm for rule discovery in large databases.. n. IEEE Engineering in Medicine and Biology Magazine . Montreal. p. III. e FRANCONE. Genetic Programming: An Introduction On the Automatic Evolution of Computer Programs and Its Applications. C. Mining association rules between sets of items in large databases. O. A.: Representational semantics for genetic programming based learning in high-frequency financial data. 953-958. S. San Francisco: Morgan Kaufmann. H.. e FREITAS. Canada. Norwell: Klumer Academic Press. BHATTACHARYYA. A. p. R. v. . H. D.A.A. 2000. p.

Brasil.A. p.. Machine Learning. 241-246. p. e NIBLETT. 1998. p. 1996. 442-449. e YU P.. 2000.98 BRITO. p. Proceedings of CEC-2000. e VAN HEMERT. D. R. J. International Conference on Artificial Neural Networks . Proceedings of the 3rd International Symposium on Advances in Intelligent Data Analysis. I. p. Berlin: Springer-Verlag. v. USA. A. Berlin: Springer-Verlag. Madison. Reynolds. Using genetic algorithms for concept learning. C.E. Conference on Evolutionary Computation. LNCS 1642. Genetic Programming 1998: Proceedings of the 3rd Annual Conference. 1999.J. (eds. A comparison of genetic programming variants for data classification. 866-883. 1998. J.).M. e LOPES. e GORDON. GOVENIR. 8. G. Mineração de regras fuzzy em bancos de dados por algoritmos genéticos. R. 1997.B. M. DEMIROZ..-S. 1997 EGGERMONT. P. C. Rio de Janeiro (RJ). e Eberhart. PolyGP: A polymorphic genetic programming system in haskell. Yugoslavia. A. In: Angeline.. p. 1993. 416-421. 2001. P. e YU. T. A. p. H. T. p.. Proceedings of CEC-2000. J. HAN. An evolutionary system for automatic explicit rule extraction. v. 11-30.A. CLACK. DUCH. Anais do IV Congresso Brasileiro de Redes Neurais – CBRN. Proceedings of the 2nd European Working Session on Learning. .S. CHEN. CONGDON. K.F. Classification of epidemiological data: a comparasion of genetic algorithm and decision tree approaches. 13. 147-165. USA. 87-100. McDonnell. CLARK. Induction in noisy domains.S. ADAMCZAK. T.: Data mining: an overview from database perspective. C. DE JONG. v. 281-290. 161-188. 1987. e CIOPPA. W. IEEE Transactions on Knowledge and Data Engineering. La Jolla. K. 450-457. EIBEN.D. W. E. p.. La Jolla. N. Performance enhanced genetic programming. J. Conference on Evolutionary Computation. v. e ILTER. Artificial Intelligence in Medicine..I. TARANTINO. 13. USA.. v. Extraction of crisp logical rules using constrained backpropagation networks. 1. e GR¥BCZEWSKI. 2384-2389. H.. J. R. p. p. DE FALCO. Learning differential diagnosis of eryhemato-squamous diseases using voting feature intervals. 2000. 1. Proceedings of the 6 th International Conference on Evolutionary Programming. e YU. CLACK. Bled. IAZZETTA. SPEARS.

e FREITAS. FREITAS. A genetic algorithm for generalized rule induction. FOGEL.A.V. D. M. (Proc. Optimization and Machine Learning. 1998. 1966. (eds. . Conference on Evolutionary Computation. p. Artificial intelligence through simulated evolution. PIATETSKY-SHAPIRO. p.A. Roy et al. Heidelberg: Springer-Verlag. 3rd On-Line World Conference on Soft Computing. p. 375-416. Anais do XIX Congresso Nacional da Sociedade Brasileira de Computação .A.. 99 FAYYAD.. p. 1999. J. H.). Genetic Programming 1998: Proceedings of the 3rd Annual Conference. LOPES. Stanford. 96-101. Advances in Knowledge discovery and Data Mining. S. e NERI. A. LOPES. USA. Cambridge: MIT Press. From data mining to knowledge discovery: an overview.V. Rio de Janeiro (RJ). G. Genetic Algorithms in Search. Piatetsky-Shapiro. USA.: A linear representation for GP using context free grammars.D. FREITAS. New-York: Wiley. 805-811. FIDELIS. July 1998. Discovering comprehensible classification rules using a genetic algorithm. Advances in Evolutionary Computation. e Tsutsui.. A. In: R. Brasil. HAND. B. p. U.A. New-York: John- Wiley & Sons. hosted on the Internet. e WALSH. G. D.A. 340-353.).IV Encontro Nacional de Inteligência Artificial (ENIA). 1997. USA. v. Construction and Assessment of Classification Rules.S. e Uthurusamy. A genetic programming framework for two data minning tasks: classification and generalized rule induction. Advances in Soft Computing – Engineering Design and Manufacturing. 1999. p. FREITAS. Smyth. 1997. A. 1. Madison.. 17-30.. P.. FREITAS. H. A. e SMYTH.. E.M. M. Um algoritmo genético para descobrir regras de classificação em data mining. 1996. J. Reading: Addison-Wesley. [a ser publicado] GIORDANA. WSC3.S. La Jolla. OWENS.. FIDELIS. FREEMAN. A. J. 3.. 72-77. Genetic Programming 1997: Proceedings of the 2nd Annual Conference. 1995. 1989. Search-intensive concept induction. In: Ghosh A. R. p.. P. Proceedings of CEC-2000. (eds. 2000. Evolutionary Computation. M.J.M. GOLDBERG. U. 2001. v. F. A survey of evolutionary algorithms for data mining and knowledge discovery. In: Fayyad.) Springer-Verlag. 1-33. A. A.

Using phenotypic sharing in a classifier tool. S. 2000. KAPLAN. 2. 97- 113. e DEWEESE. E. 1998. 13. . H. P. 35. Genetic Programming 1998: Proceedings of the 3rd Annual Conference. p. 514.Z. Reading: Addison-Wesley. LOPES. n. 1958. A knowledge-based system for decision support in chest pain diagnosis. KNUTH. n.Z. J.. USA. Madison. 1999. C. P. p. Conference on Evolutionary Computation. v. v.100 HARRIES. A Methodology for processing problem constraints in genetic programming. LIU. Computers and Mathematics with Applications. Genetic Programming 1997: Proceedings of the 2nd Annual Conference. e LIMA. Constrained genetic programming. R. M. Workshop Program. Nonparametric estimation from incomplete observations. suppl.. COUTINHO. J. p. 457-481.189-228. Exploring alternative operators and search strategies in genetic programming. 1996. 1996.1. C. 1973. 80-82.Z. 1997.. J. p. BARRETO. Las Vegas.L. 1993. v. JANIKOW. p.R. An extended genetic rule induction algorithm. La Jolla. 53. UFSC. 1992. Proceedings of GECCO-2000. Journal of the American Statistical Association. 159p. C. J. D. p. 1. K e SMITH. USA. HASSE. H. Proceedings of GECCO-99. v.M.J. Genetic and Evolutionary Computation Conference. 32. Sistemas de Informação) – GPEB. The Art of Computer Programming. HEINISCH. v. A. Orlando.C. M. KOZA. p. p.: Genetic Programming: on the Programming of Computers by Means of Natural Selection. USA. A knowledge-intensive genetic algorithm for supervised learning. Cambridge: MIT Press. p. JANIKOW. W.S.T. C. Analogia e Aprendizado Evolucionário: Aplicação em Diagnóstico Clínico. 2000. E. 8. LOPES. e KWOK.R. Genetic and Evolutionary Computation Conference. 1997. Tese (Doutorado em Engenharia Elétrica. 173-180. Machine Learning. Processing constraints in genetic programming with CGP2. part I. e MEIER.. USA. JANIKOW. Proceedings of CEC-2000. S. e POZO. USA. 458- 463. 392. Florianópolis.. 147-155. Medical & Biological Engineering & Computing.S. Stanford. JANIKOW.

v.K. L.. 1322-1329. RIBEIRO.. p.D e PUNCH. R. e LOPES. F. S. E. Adrenocortical tumors in children Brazilian Journal of Medical and Biological Research. Genetic Programming 1998: Proceedings of the 3rd Annual Conference.145-160. OLAVE. A. Washington. W. 1994. SANDRINI.. M. M.cs. M.5: Programs for Machine Learning . 1225-1234. Proceedings of CEC-99. Discovering interesting prediction rules using a genetic algorithm. MICHALKIEWICZ. WONG. NGAN.R. Strongly typed genetic programming. USA. Z. M. R. Berlin: Springer-Verlag. Madison.. CA: Morgan Kaufmann.). SAMPAIO. Heidelberg: Springer-Verlag.edu/users/seanl/gp/patched-gp). E. . (http://www.S. D. MONTANA. C. 1998. DELACERDA. J. Genetic and Evolutionary Computation Conference.. Genetic Algorithms + Data Structure = Evolution Programs. USA. 130-138. 254-259. 1993. M. 199-230. p. PEI. e LOPES.L. e BOHANEC. Comparing genetic algorithms with rule induction algorithms in the data mining task of dependence modeling. NODA. FREITAS.L. MOAL. FREITAS. e Baquiast.A. J. 1080.-P.B. p. NODA. E.. LEUNG.D. n. p.1997. J. Strongly Typed GP. e VRAIN. p. A relational data mining tool based on genetic programming.. 2000. van de Donk. 33. MICHALEWICZ.F... n. W. USA. 10.J.umd. K. F.H. P..S. H.. 3. E. RAJKOVIC.C. L. 2. 2. e CHENG.J. 1-13. p. B. Amsterdam: Elsevier Science Publishers. MARTIN. V. FIGUEIREDO.. LNAI 1510. 1998. 101 LUKE. Th.S. Principles of Data mining & Knowledge Discovery: Proceedings 2nd European Symposium. (eds. (13/10/00). v. San Mateo.: C4. PIANOVSKY. 1995.A. Patten discovery from data using genetic algorithms. Proceedings of GECCO-2000. 1999. 2000. QUINLAN. In: Snellen.. GOODMAN.C. v.S. Proceedings of 1 st Pacific Asia Conference Knowledge Discovery and Data Mining.. A. H. Congress on Evolutionary Computation. p. 1989.C. Las Vegas. Using grammar based genetic programming for data mining of medical knowledge. An application for admission in public school systems. G. p. 1997. Expert Systems in Public Administration. e SANDRINI. Journal of Evolutionary Computation. M.

. 33-41. In: Rosca. P. California. p. M. e RAND B.P. J. R. Michigan State University. I. Stuttgart: Frommann-Holzboog. G. P. W. p. ZONGKER D. .102 RECHENBERG. 1991. Grammatically-based genetic programming. e GOODMAN. Tahoe City..(ed. Lil-gp 1. Genetic Algorithms Research and Applications Group (GARAGe).). (eds. Evolutionsstrategie: Optimierung Technischer Systeme nach Prinzipien der Biologischen Evolution. SMYTH. Proceedings of the Workshop on Genetic Programming: From Theory to Real- World Applications. Department of Computer Science. July 1995. USA.01 – User’s Manual.). 1973. WHIGHAM. J. 159-176. Knowledge Discovery in Databases. Cambridge: MIT Press.A. 1996. PUNCH B. Rule induction using information theory. In: Piatetsky- Shapiro. e Frawley.