Descoberta de Conhecimento e Mineração de Dados Apostila ICA

Propaganda
Descoberta de Conhecimento e
Mineração de Dados
Apostila
ICA – Laboratório de Inteligência Computacional Aplicada
Departamento de Engenharia Elétrica, PUC–Rio
Marco Aurélio
Marley Vellasco
Carlos Henrique Lopes
- 1–
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
1.
2.
3.
4.
Introdução ....................................................................................................................................................... 5
Banco de Dados............................................................................................................................................... 6
Data Warehouse .............................................................................................................................................. 9
KDD – Knowledge Discovery Database....................................................................................................... 12
4.1. TAREFAS DE KDD .................................................................................................................................. 12
4.1.1. Regras de Associação.......................................................................................................................... 12
4.1.2. Classificação........................................................................................................................................ 14
4.1.3. Clustering ............................................................................................................................................ 15
4.2. FASES DE KDD........................................................................................................................................ 16
4.2.1. Data Warehousing: Organização de grandes volumes de dados......................................................... 16
OLAP: Processamento Analítico On-Line (On-Line Analytical Processing) ........................................... 17
4.2.2. Pré-processamento dos dados.............................................................................................................. 18
4.2.3. Limpeza dos dados .............................................................................................................................. 18
4.2.4. Seleção dos dados................................................................................................................................ 18
4.2.5. Codificação dos dados......................................................................................................................... 19
4.2.6. Enriquecimento dos dados................................................................................................................... 19
4.2.7. Mineração de Dados (Data Mining).................................................................................................... 19
4.2.8. Pós-processamento .............................................................................................................................. 20
5. Data Mining .................................................................................................................................................. 21
5.1. INTRODUÇÃO ......................................................................................................................................... 21
5.2. TÉCNICAS E ALGORITMOS PARA A MINERAÇÃO DE DADOS .................................................... 22
5.2.1. Redes Neurais Artificiais..................................................................................................................... 22
Introdução às Redes Neurais Artificiais .................................................................................................... 22
Modelagem de Redes Neurais Artificiais em Mineração de Dados .......................................................... 24
5.2.2. Algoritmos Genéticos.......................................................................................................................... 25
Introdução a Algoritmos genéticos............................................................................................................ 26
Modelagem de Algoritmos Genéticos para a Mineração de Dados........................................................... 27
5.2.3. Lógica Indutiva ................................................................................................................................... 29
5.2.4. Métodos Estatísticos............................................................................................................................ 30
Classificadores Bayesianos ....................................................................................................................... 30
Redes Bayesianas ...................................................................................................................................... 32
Árvores de decisão .................................................................................................................................... 33
1.1.1.1.1. Indução de Regras.............................................................................................................. 34
1.1.1.1.2. Algoritmo ID3.................................................................................................................... 34
6. Redes Neurais................................................................................................................................................ 36
6.1. Fundamentos das Redes Neurais Artificiais............................................................................................... 36
6.1.1. Histórico.............................................................................................................................................. 36
6.1.2. O Neurônio Artificial .......................................................................................................................... 37
6.1.3. Funções de Ativação ........................................................................................................................... 38
6.1.4. Topologia das Redes Neurais Artificiais ............................................................................................. 39
6.1.5. Tipos de Treinamento.......................................................................................................................... 40
6.2. Redes Neurais Artificiais Multi-Camadas.................................................................................................. 41
6.2.1. - Algoritmo de Retropropagação do Erro............................................................................................ 41
6.3. Modelagem de Redes Neurais para Data Mining ....................................................................................... 43
6.3.1. Seleção de Dados ................................................................................................................................ 43
6.3.2. Pré-processamento .............................................................................................................................. 44
Atributos derivados ................................................................................................................................... 44
Escalamento .............................................................................................................................................. 44
Normalização ............................................................................................................................................ 44
Mapeamento simbólico e taxonomias ....................................................................................................... 44
Translações de simbólicos para numéricos ............................................................................................... 45
6.3.3. Representação dos dados..................................................................................................................... 45
Representação Numérica dos dados .......................................................................................................... 45
Valores Discretos ...................................................................................................................................... 45
Código 1-de-N........................................................................................................................................... 45
Código binário........................................................................................................................................... 45
Código de temperatura .............................................................................................................................. 46
Valores contínuos...................................................................................................................................... 46
Representações de Dados Simbólicos ....................................................................................................... 46
Impacto da Representação dos Dados no Tempo de Treinamento ............................................................ 47
- 2–
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
6.3.4. Gerenciando Conjunto de Treinamento de Dados............................................................................... 47
6.3.5. Quantidade de Dados .......................................................................................................................... 47
6.3.6. Qualidade dos dados (Entra Lixo, Sai Lixo) ....................................................................................... 48
7. Neuro Fuzzy .................................................................................................................................................. 48
7.1. MOTIVAÇÃO ........................................................................................................................................... 48
7.2. Sistemas Híbridos....................................................................................................................................... 49
7.2.1. Introdução ........................................................................................................................................... 49
7.2.2. Sistemas Neuro-fuzzy.......................................................................................................................... 51
Taxonomia dos Sistemas Neurofuzzy ....................................................................................................... 52
Taxonomia quanto às características fuzzy ............................................................................................... 53
Taxonomia quanto às características de aprendizado................................................................................ 64
Exemplos de Modelos Neuro-Fuzzy ........................................................................................................ 66
Taxonomia dos três sistemas estudados .................................................................................................... 71
7.2.3. LIMITAÇÕES DOS SNF ................................................................................................................... 72
8. Algoritmos Genéticos.................................................................................................................................... 73
8.1. RESUMO ................................................................................................................................................... 73
8.2. ALGORITMOS GENÉTICOS: PRINCÍPIOS E APLICAÇÕES .............................................................. 73
8.3. Fundamentos matemáticos de Algoritmos genéticos ................................................................................. 77
8.3.1. Análise do Efeito da Seleção............................................................................................................... 77
8.3.2. Análise do Efeito do Crossover........................................................................................................... 79
8.3.3. Análise do Efeito da Mutação ............................................................................................................. 79
8.4. Desempenho de Algoritmo GenéticoS ....................................................................................................... 80
8.5. Técnicas, PARÂMETROS e Operadores Genéticos .................................................................................. 80
8.5.1. Técnicas de Reprodução:..................................................................................................................... 80
8.5.2. Técnicas de Aptidão: ........................................................................................................................... 81
8.5.3. Técnicas de Interpolação de Parâmetros: ............................................................................................ 81
8.5.4. Operadores Genéticos.......................................................................................................................... 82
8.6. Modelagem de Algoritmos genéticos para Data Mining ............................................................................ 82
8.6.1. CLASSIFICAÇÃO POR EVOLUÇÃO DE REGRAS DE ASSOCIAÇÃO....................................... 82
ACURÁCIA E ABRANGÊNCIA DE UMA REGRA.............................................................................. 83
MODELAGEM DO ALGORITMO GENÉTICO .................................................................................... 83
8.6.2. Representação de Cromossomas ......................................................................................................... 83
8.6.3. Operadores Genéticos.......................................................................................................................... 84
8.6.4. Inicialização da População .................................................................................................................. 85
8.6.5. Técnicas e Parâmetros ......................................................................................................................... 87
8.6.6. Funções de Avaliação.......................................................................................................................... 88
Número-Atributos ..................................................................................................................................... 89
Distância-Ótima ........................................................................................................................................ 89
Recompensa-Atributos .............................................................................................................................. 90
CBayesianos .............................................................................................................................................. 90
Número-Registros ..................................................................................................................................... 90
FAcurácia .................................................................................................................................................. 90
FAbrangência ............................................................................................................................................ 90
Rule Interest .............................................................................................................................................. 91
Chi-Square................................................................................................................................................. 91
8.6.7. Recompesa nas funções de avaliação .................................................................................................. 91
9. Apêndice ....................................................................................................................................................... 93
9.1. Softwares comerciais e Sites ...................................................................................................................... 93
9.1.1. AC2 (www.isoft.fr) ............................................................................................................................. 93
9.1.2. ALICE d’ISoft (www.isoft.fr)............................................................................................................. 93
9.1.3. AutoClass C (ic-www.arc.nasa.gov/ic/projects/bayes-group/group/autoclass/autoclass-cprogram.html)................................................................................................................................................ 93
9.1.4. Clementine (www.isl.co.uk/clem.html)............................................................................................... 93
9.1.5. Data Surveyor (www.ddi.nl) ............................................................................................................... 93
9.1.6. Data Engine (www.mitgmbh.de)......................................................................................................... 93
9.1.7. Datasage (www.datasage.com) ........................................................................................................... 94
9.1.8. DataScope (http://www.tiszanet.hu/cygron/datascp.htm) ................................................................... 94
9.1.9. Outros softwares e sites....................................................................................................................... 94
C5.0 / See5 - www.rulequest.com ............................................................................................................. 94
Commercial tools for data mining - www.cs.bham.ac.uk/~anp/dm_docs/oudshoff.tools.posting ............ 94
- 3–
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
DataDetective – www.smr.nl .................................................................................................................... 94
dbProphet: neural network data mining tool by Trajecta – www.trajecta.com ......................................... 94
Explora - http://orgwis.gmd.de/projects/explora/...................................................................................... 94
IBM Visualization Data Explorer – www.almaden.ibm.com/dx/ ............................................................. 94
LEVEL5 Quest – www.l5r.com ................................................................................................................ 94
ModelQuest Enterprise – www.abtech.com .............................................................................................. 94
ModelQuest Enterprise – www.data-mine.com......................................................................................... 94
PV-WAVE – www.vni.com ...................................................................................................................... 94
SE-Learn - http://www.isp.pitt.edu/~rymon/SE-Learn.html ..................................................................... 94
SPSS Data Mining Software – www.spss.com/datamine/......................................................................... 94
SuperQuery – www.azmy.com.................................................................................................................. 94
WizRule for Windows – www.wizsoft.com.............................................................................................. 94
XpertRule – www.attar.com...................................................................................................................... 94
9.2. Empresas de Data Mining no Brasil........................................................................................................... 94
9.2.1. http://www.execplan.com.br/ .............................................................................................................. 95
9.2.2. http://vidaconsultores.com.br/infovida/............................................................................................... 95
9.2.3. http://www.rio.com.br/~extend/ .......................................................................................................... 95
9.2.4. http://www.geocities.com/WallStreet/District/2108/ricvill.htm.......................................................... 95
9.3. Empresas e produtos em Data Mining........................................................................................................ 95
9.3.1. American Heuristics/Profiler – www.heuristics.com .......................................................................... 95
9.3.2. Angoss Software/Knowledge Seeker – www.angoss.com .................................................................. 95
9.3.3. Business Objects/BusinessMiner – www.businessobjects.com .......................................................... 95
9.3.4. DataMind/DataMindProfessional – www.datamind.com.................................................................... 95
9.3.5. HNC Software/DataMarksman – www.hncs.com............................................................................... 95
9.3.6. HiperParallel/Discovery – www.hiperparallel.com............................................................................. 95
9.3.7. Information Discovery Inc.(IDI)/Information Discovery System – www.datamining.com ................ 95
9.3.8. Lucent Technologies/Interactive Data Visualization – www.lucent.com............................................ 95
9.3.9. Nestor/Prism – www.nestor.com......................................................................................................... 95
9.3.10. Pilot Software/pilot Discovery Server – www.pilotsw.com.............................................................. 95
9.3.11. Seagate Software Systems/Holos 5.0 – www.holossys.com ............................................................. 95
9.3.12. Thinking Machines/Darwin – www.think.com ................................................................................. 96
Referências............................................................................................................................................................ 96
- 4–
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
1.
INTRODUÇÃO
Durante os últimos anos tem se verificado um crescimento substancial da quantidade de dados
armazenados em meios magnéticos. Estes dados, produzidos e armazenados em larga escala, são inviáveis de
serem lidos ou analisados por especialistas através de métodos manuais tradicionais [PIAT91], tais como
planilhas de cálculos e relatórios informativos operacionais, onde o especialista testa sua hipótese contra a base
de dados. Por outro lado, sabe-se que grandes quantidades de dados equivalem a um maior potencial de
informação. Entretanto, as informações contidas nos dados não estão caracterizadas explicitamente, uma vez que
sendo dados operacionais, não interessam quando estudados individualmente. Diante deste cenário, surge a
necessidade de se explorar estes dados para extrair informação - conhecimento implícito, e utilizá-la no âmbito
do problema. Argumenta-se que a necessidade de sistemas para dar suporte a decisão têm se desenvolvido ao
longo dos anos cada vez mais dentro de uma granularidade de informações mais refinada, da seguinte maneira:
nos anos 60 as exigências e necessidades estavam a nível de mercado; nos anos 70, ao nível de nichos, grupos de
interesse; nos anos 80, a nível de seguimentos de mercado; e nos anos 90, a nível de clientes. Este último nível,
naturalmente, requer o uso de mais dados para se extrair conhecimento [KELL95]. A exploração do valor destes
dados, ou seja, a informação neles contida implicitamente, depende de técnicas como Regras de Associação
[SRIK95], Classificação [MICH94], Clustering [FISH87], entre outras, capazes de gerenciar tarefas complexas.
O processo capaz de descobrir este conhecimento em banco de dados chama-se KDD (Knowledge
Discovery Database). O processo de KDD foi proposto em 1989 para referir-se às etapas que produzem
conhecimentos a partir dos dados e, principalmente, à etapa de mineração dos dados, que é a fase que transforma
dados em informações [FAYY96]. Este processo envolve encontrar e interpretar padrões nos dados, de modo
iterativo e interativo, através da repetição dos algoritmos e da análise de seus resultados. Esse processo contém
diversas fases: definição do problema; seleção dos dados; limpeza dos dados; pré-processamento dos dados;
codificação dos dados; enriquecimento dos dados; mineração dos dados (Data Mining) e a interpretação dos
resultados.
O processo de KDD é formado pela interseção de diferentes áreas. As áreas mais relacionadas em
descoberta de conhecimento são: Machine Learning [LANG96], [SHAV90], Inteligência Computacional,
estatística [ELDE96] e visualização dos dados [LEE 95]. Na área de Inteligência Computacional, em particular,
as técnicas mais utilizadas são: Redes Neurais Artificiais [HAYK94], [RUME86], Indução de regras [NILS80] e
Algoritmos Genéticos [GOLD89].
A Inteligência Computacional é uma área da ciência que busca, através de técnicas inspiradas na
Natureza, o desenvolvimento de sistemas inteligentes que imitam aspectos do comportamento humano, tais
como: aprendizado, percepção, raciocínio, evolução e adaptação.
Técnica
Redes Neurais
Algoritmos Genéticos
Lógica Fuzzy
Sistemas Especialistas
Inspiração
Neurônios biológicos
Evolução biológica
Proc. lingüístico
Inferência
Redes Neurais são modelos computacionais não lineares, inspirados na estrutura e operação do cérebro
humano, que procuram reproduzir características humanas, tais como: aprendizado, associação, generalização e
abstração. Redes Neurais são efetivas no aprendizado de padrões a partir de dados não lineares, incompletos,
com ruído ou compostos de exemplos contraditórios.
Algoritmos Genéticos são algoritmos matemáticos inspirados nos mecanismos de evolução natural e
recombinação genética. A técnica de Algoritmos Genéticos fornece um mecanismo de busca adaptativa que se
baseia no princípio Darwiniano de reprodução e sobrevivência dos mais aptos.
Lógica Nebulosa (Fuzzy Logic) tem por objetivo modelar o modo aproximado de raciocínio humano,
visando desenvolver sistemas computacionais capazes de tomar decisões racionais em um ambiente de incerteza
e imprecisão. A Lógica Nebulosa oferece um mecanismo para manipular informações imprecisas, tais como os
conceitos de muito, pouco, pequeno, alto, bom, quente, frio, etc, fornecendo uma resposta aproximada para uma
questão baseada em um conhecimento que é inexato, incompleto ou não totalmente confiável.
Sistemas Especialistas são programas computacionais destinados a solucionar problemas em um campo
especializado do conhecimento humano. Usa técnicas de IA, base de conhecimento e raciocínio inferencial.
As técnicas da Inteligência Computacional têm sido empregadas com sucesso no desenvolvimento de
sistemas inteligentes de previsão, suporte à decisão, controle, otimização, modelagem, classificação e
reconhecimento de padrões em geral, aplicados em diversos setores: Energia, Industrial, Econômico, Financeiro,
Comercial e Outros, Síntese de Circuitos, Meio Ambiente, entre outros [MARCO].
- 5–
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
2.
BANCO DE DADOS
Este capítulo introduz banco de dados de uma forma simples. São abordados os pontos que julga-se ser
o mínimo necessário para deixar o leitor capacitado a entender a necessidade de banco de dados direcionados
para Data Mining. Os tópicos abordados estão mais detalhados na referência citada para banco de dados.
De maneira genérica são abordados em banco de dados: conceitos básicos, tais como definição e
propriedades; características, como linguagens de BD e coerência dos dados; arquitetura lógica, esquemas
externo, conceitual e interno; usuários; modelo de Entidade-Relacionamento; linguagens de consulta; linguagem
SQL, apresentando os principais comandos; cuidados no projeto do BD e algumas restrições de integridade.
Pode-se definir banco de dados como uma coleção de dados relacionados. Onde dados significam fatos
conhecidos que podem ser armazenados e que possuem significado implícito. Por exemplo, considere os nomes,
número de telefones, e endereços das pessoas que você conhece. Você pode ter armazenado esse dado numa
agenda de endereço indexada, ou você pode ter armazenado ele diretamente em um disquete, utilizando um PC e
um software como DBASE IV ou V, PARADOX, ou EXCEL. Isto é uma coleção de dados relacionados com um
significado implícito, então é um banco de dados.
De maneira genérica um banco de dados possui as seguintes propriedades implícitas:
•Um banco de dados representa algum aspecto do mundo real, algumas vezes chamado de mini-mundo
ou Universo do Discurso. Mudanças no mini-mundo são refletidas no banco de dados.
•Um banco de dados é uma coleção logicamente coerente de dados como algum significado herdado.
Uma ordenação aleatória de dados não pode ser corretamente referenciada como um banco de dados.
•Um banco de dados é modelado, construído, e povoado com dados para uma proposta específica. Ou
seja existe um grupo de usuários e algumas aplicações pré concebidas as quais esses usuários estão
interessados.
Em outras palavras, os bancos de dados tem alguma origem da qual os dados são derivados, algum grau
de interação com eventos no mundo real, e alguns usuários que estão ativamente interessados no conteúdo do
banco de dados.
Um banco de dados pode ser gerado e mantido manualmente ou por uma máquina. Um banco de dados
computadorizado pode ser criado e mantido ou por um grupo de programas de aplicação escritos especialmente
para essa tarefa ou por um sistema gerenciador de banco de dados.
Um sistema gerenciador de banco de dados (SGBD), ou em inglês, DBMS (Database Management
System), é uma coleção de programas habilita usuários a criar e manter um banco de dados. O SGBD é então um
software de propósito geral que facilita o processo de definir, construir e manipular banco de dados de várias
aplicações. Onde definir o banco de dados envolve especificar os tipos dos dados, estruturas e restrições para os
dados que serão armazenados no banco de dados. Construir o banco de dados é o processo de armazenamento do
dado em alguma mídia que é controlada pelo SGBD. E a manipulação do banco de dados inclui algumas funções
como queries que buscam por dados específicos, atualizações no banco de dados que refletem mudanças no
mini-mundo, e geração de relatórios dos dados.
U suários/P r o g r a m ado r e s
SI S T E M A
BD
P r o g r a m a s d e Aplicação/ Q u erie s
SGBD
SOF T W A R E
S o ftw a re para pro c ess a r
Q u erie s /Program as
Softw a re para acessar
D a dos A r m a z e n a d o s
M e ta-Dados
D e fi niç ã o
BD
A r maze nado
Figura 1: Um ambiente simplificado de um sistema de banco de dados
- 6–
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
É necessário uma grande quantidade de softwares para manipular o banco de dados além do próprio
banco de dados, nesse caso, chama-se sistema de banco de dados o conjunto BD e softwares. A Figura 1 ilustra
essas idéias.
Um número de características distinguem a aproximação de banco de dados com a aproximação
tradicional de programação com arquivos. No tradicional processamento de arquivos, cada usuário define e
implementa os arquivos necessários para uma aplicação específica. Na aproximação por banco de dados, um
único repositório de dados é mantido e definido uma única vez e então é acessada por vários usuários.
Deste modo as principais características podem ser a definição do banco de dados através da linguagem
de definição de dados (LDD) criando e relacionamentos, tipos e restrições nos dados; a utilização de linguagens
de manipulação de dados (LMD) fazendo atualizações na base; o suporte ao método de armazenamento,
segurança, e acesso eficiente aos dados, além do controle multi-usuário concorrentemente. Entretanto a
característica fundamental é a que provê um nível de abstração capaz de esconder os detalhes de como os dados
estão armazenados, que para a maioria dos usuários não é de interesse.
Analisando-se as principais características de banco de dados pode-se especificar uma arquitetura para
sistemas de banco de dados, chamada de arquitetura em 3 níveis ou esquemas (Figura 2).
NÍVEIS DE ABSTRAÇÃO
Esquema Externo
EE1
EE2
EEN
Esquema Conceitual
Esquema Interno
Figura 2: Arquitetura em 3 níveis
O objetivo dessa arquitetura ilustrada na Figura 2 é separar as aplicações dos usuários e o banco de dados
fisicamente. Nessa arquitetura os esquemas podem ser definidos nos seguintes níveis:
1. O nível interno tem um esquema interno, que descreve a estrutura física de armazenamento do banco
de dados. O esquema interno usa o modelo de dados físico e descreve detalhes completos do
armazenamento dos dados e caminhos de acesso para o banco de dados.
2. O nível conceitual tem um esquema conceitual, que descreve a estrutura de todo o banco de dados
para uma comunidade de usuários. O esquema conceitual escondes os detalhes da estrutura de
armazenamento físico e concentra-se na descrição de entidades, tipos de dados, relacionamentos,
operações de usuários, e restrições.
3. O esquema externo ou nível de visão inclui um número de esquemas esternos ou visões de usuários.
Cada esquema externo descreve a parte do banco de dados que um grupo particular de usuários está
interessada e esconde o resto do banco de dados para esse mesmo grupo.
Essa arquitetura pode ser utilizada para explicar o conceito de independência dos dados., que pode ser
definido como a capacidade de alterar o esquema em algum nível de um banco de dados sem ter que alterar o
esquemas do nível mais alto. Pode-se definir dois tipos de independência, a física e a lógica.
A independência lógica é a capacidade de alterar o esquema conceitual sem ter que alterar o conceito
externo ou os programas de aplicação. A independência física é a capacidade de mudar o esquema interno sem
ter que mudar o esquema conceitual.
Uma vez que o modelo do banco de dados está definido e um SGBD foi escolhido para implementar o
banco de dados, então precisa-se especificar os esquemas conceitual e interno para o banco de dados e qualquer
mapeamento entre os dois. Uma linguagem chamada Linguagem de Definição de Dados (LDD) é utilizada por
um usuário administrador da base e pelos desenvolvedores do modelo para definir ambos os esquemas. Em
SGBDs onde existe uma clara diferença entre os níveis conceitual e interno, a LDD é utilizada apenas para o
modelo conceitual. Uma outra linguagem (SDL – Storage Definition Data) é usada para especificar o modelo
interno. Para completar a arquitetura de 3 níveis é necessário uma terceira linguagem, a VDL (View Definition
Language) que define o esquema de visões. Uma vez que os esquemas do banco de dados são criados e o banco
de dados é povoado, os usuários precisam ter meios de manipular os dados. As manipulações típicas incluem
- 7–
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
busca, inserção, deleção, e modificação dos dados. Para essa proposta o SGBD propõe a LMD, linguagem de
manipulação de dados.
O modelo conceitual de entidade-relacionamento descreve dados como entidades, relacionamentos e
atributos. A entidade é o objeto básico representado no modelo ER, que é uma “coisa” do mundo real com
existência independente. Uma entidade pode ser um objeto com existência física – uma pessoa, carro, casa, ou
empregado – ou pode ser um objeto com existência conceitual – uma companhia, um trabalho, ou um curso de
universidade. Cada entidade tem propriedades particulares, chamadas atributos, que a descrevem. Por exemplo,
uma entidade empregado pode ser descrita por nome do empregado, idade, endereço, salário e trabalho. Uma
entidade particular terá um valor para cada um desses atributos. Os valores dos atributos que descrevem cada
entidade são a maior parte dos dados armazenados no banco de dados.
Informalmente, um relacionamento é uma associação de entidades, onde a associação inclui exatamente
uma entidade de cada participante no tipo da entidade. Por exemplo, suponha o relacionamento
TRABALHA_PARA entre duas entidades EMPREGADO e DEPARTAMENTO, que associa cada empregado
ao departamento em que trabalha.
Dado que o banco de dados está concluído, existem as pessoas cujo trabalho necessita acessar o banco de
dados para busca de informações, atualizações e gerações de relatórios; o banco de dados inicialmente existe
para o uso dessa pessoas. Existem várias categorias para usuários finais:
• Usuário casual – ocasionalmente acessam o banco de dados, mas eles tem necessidades de
informações diferentes a cada acesso. Eles usam uma linguagem sofisticada de busca em banco de
dados para especificar seus requisitos e são tipicamente gerentes de nível médio ou alto.
• Naive ou usuários paramétricos – São usuários de grande parte do banco de dados. A função
principal do seu trabalho faz com que constantemente ele busque e atualize o banco de dados através
de transações enlatadas que foram cuidadosamente programadas e testadas. Por exemplo, caixas de
banco, reservas aéreas, de hotéis, de aluguéis de carros, etc...
• Usuários sofisticados – incluem engenheiros, cientistas, analistas de negócios, e outros que são
familiarizados com as facilidades do SGBD e buscam encontrar suas necessidades mais complexas.
• Usuários isolados – mantém um banco de dados pessoal utilizando programas empacotados que
provê facilidade de uso em menus e interfaces gráficas.
Existem várias linguagens que tem sido parcialmente ou completamente implementada e estão
disponíveis em SGBDs comerciais. A mais conhecida delas é a SQL, cujo nome é derivado de Structure Query
Language. Variações de SQL tem sido implementadas por vários fabricantes, por isso há um esforço de se
padronizar o SQL coordenado pelo ANSI (American National Standards Institute) e pela ISO (International
Standards Organizations).
SQL é uma linguagem compreensiva para banco de dados; ela possui comandos para definição de dados,
busca e atualizações. Então, ela é uma LMD e LDD. SQL utiliza os termos tabela, linha, e coluna para relação,
tupla e atributo, respectivamente. Os comando de SQL para definição de dados são CREATE, ALTER, e DROP.
O comando CREATE TABLE é usado para especificar uma nova relação dando-se seu nome e
especificando seus atributos e restrições. Os atributos são especificados primeiro, e a cada atributo é dado um
nome, um tipo de dados para especificar seu domínio de valores, e possivelmente algumas restrições. A chave, as
restrições de integridade da entidade e referencial são especificadas.
Exemplo:
CREATE TABLE EMPLOYEE
(NAME
VARCHAR(15)
NOT NULL,
MINIT
CHAR,
LNAME
VARCHAR(15)
NOT NULL,
SSN
CHAR(9)
NOT NULL,
BDATE DATE,
ADDRESS
VARCHAR(30),
SEX
CHAR,
SALARY
DECIMAL(10, 2),
SUPERSSN
CHAR(9),
DNO
INT
NOT NULL,
PRIMARY KEY (SSN),
FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE (SSN),
FOREIGN KEY (DNO) REFERENCES DEPARTAMENT (DNUMBER));
O comando ALTER TABLE pode ser utilizado para alterar a definição de um tabela. As possíveis ações
desse comando incluem adicionar ou excluir uma coluna (atributo), alterar a definição de uma coluna, e
- 8–
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
adicionar ou excluir restrições. Por exemplo, adicionar um atributo para monitorar o trabalho de um empregado.
ALTER TABLE EMPLOYEE ADD JOB VARCHAR (12);
SQL tem um comando básico para obter informações da base de dados: SELECT. A forma básica do
comando SELECT é formada por 3 cláusulas SELECT, FROM, e WHERE e tem a seguinte forma:
SELECT <lista de atributos>
FROM <lista de tabelas>
WHERE <condição>,
Onde
•<lista de atributos> é uma lista de nomes de atributos cujos valores serão obtidos na query.
•<lista de tabelas> é uma lista com os nomes das relações requisitadas para processar a query.
•<condição> é a condição necessária para identificar expressões que satisfazem as tuplas da query.
Exemplo:
SELECT BDATE, ADDRESS
FROM EMPLOYEE
WHERE FNAME = ´JOHN´ AND LNAME = ´SMITH´
3.
DATA WAREHOUSE
Os bancos de dados e a teoria de banco de dados estão disponíveis há bastante tempo. As primeiras
edições de bancos de dados concentravam-se em um único banco de dados que atendia a todos os propósitos
conhecidos pela comunidade de informática – do processamento de transações ao processamento batch (lote) e
ao processamento analítico. Na maioria dos casos, o enfoque principal dos primeiros sistemas de banco de dados
era o processamento operacional – geralmente transacional. Nos últimos anos, surgiu um conceito de banco de
dados mais sofisticados – um que atende as necessidades operacionais e outro que atende as necessidades
informacionais ou analíticas. Até certo ponto, esse conceito mais evoluído de banco de dados se deve ao advento
dos PCs, à tecnologia das linguagens de quarta geração, e ao empowerment do usuário final.
A divisão em banco de dados operacionais e informacionais ocorre por várias razões:
•Os dados que atendem a necessidades operacionais são fisicamente diferentes dos dados que atendem a
necessidades informacionais ou analíticas.
•A tecnologia de suporte ao processamento operacional é fundamentalmente, diferente da tecnologia
utilizada para prestar suporte a necessidades informacionais ou analíticas.
•A comunidade de usuários dos dados operacionais é diferente da que é atendida pelos dados
informacionais ou analíticos.
•As características de processamento do ambiente operacional e do ambiente informacional são,
fundamentalmente diferentes.
Por essas razões (e por muitas outras!), a maneira moderna de construir sistemas consiste em separar o
processamento e os dados operacionais dos informacionais ou analíticos.
Pode-se definir que o processamento informacional ou analítico é o processamento que atende às
necessidades dos gerentes durante o processo de tomada de decisões. Geralmente conhecido como SAD –
sistemas de apoio à decisão, o processamento analítico examina amplos espectros de dados para detectar
tendências. Em vez de considerar um ou dois registros de dados (como ocorre no processamento operacional),
quando o analista de SAD executa um processamento analítico, muitos registros são acessados. Além disso, o
analista de SAD muito raramente atualiza dados. Nos dados operacionais, os dados estão constantemente sendo
atualizados no nível de registro individual. No processamento analítico, os registros estão constantemente sendo
acessados, e seus conteúdos são agrupados para análise, mas ocorre pouca ou nenhuma alteração dos registros
individuais.
No processamento analítico, os requisitos de tempo de resposta são muito atenuados em comparação com
o do tradicional processamento operacional. O tempo de resposta analítico alcança de 30 minutos a 24 horas.
Para o processamento operacional, tempos de resposta inseridos nessa escala significariam um absoluto desastre.
A rede que atende a comunidade analítica é muito menor do que a que atende à comunidade operacional.
Normalmente, há muito menos usuários da rede analítica do que da rede operacional.
Ao contrário da tecnologia que dá suporte ao ambiente analítico, a tecnologia voltada para o ambiente
operacional deve tratar do bloqueio de dados e transações, disputa de dados, deadlock, e assim por diante.
- 9–
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Há portanto, muitas diferenças importantes entre o ambiente operacional e o ambiente analítico. Aqui é
dado enfoque ao processamento analítico com as seguintes questões:
•Granularidade dos dados
•Particionamento dos dados
•Metadados
•Falta de credibilidade dos dados
•Integração dos dados do SAD
•Parâmetros de tempo dos dados do SAD
•Identificação da fonte dos dados do SAD – o sistema de registro
•Migração e tecnologia
O Data Warehouse é o alicerce do processamento dos SADs. Em virtude de haver uma fonte única de
dados integrados no DW, e uma vez que os dados apresentam condições de acesso, a tarefa do analista de SAD
no ambiente de DW é incomensuravelmente mais fácil do que no ambiente clássico.
Um DW é um conjunto de dados baseado em assuntos, integrado, não-volátil, e variável em relação ao
tempo, de apoio às decisões gerenciais. Os sistemas operacionais clássicos são organizados em torno das
aplicações da empresa. No caso de uma companhia de seguros, as aplicações podem ser automóvel, saúde, vida e
perdas. Os principais assuntos ou negócios da empresa podem ser cliente, apólice, prêmio e indenização.
A segunda característica marcante do DW é que ele é integrado. A integração ocorre quando os dados
passam do ambiente operacional baseado em aplicações para o data warehouse.
O processo de introdução dos dados no DW é feita de modo que as muitas inconsistências da aplicações
sejam desfeitas. As considerações sobre inconsistências são válidas para todas as questões de projeto de
aplicações, como as convenções de atribuição de nomes, estruturas de chaves, unidades de medidas de atributos
e características físicas dos dados.
A terceira característica importante de um DW consiste em que ele é não-volátil. No ambiente
operacional, os dados sofrem atualizações. Contudo, os dados existentes no data warehouse apresentam um
conjunto de características muito diferentes. Os dados do DW são carregados (normalmente em grandes
quantidades) e acessados. Mas a atualização dos dados (geralmente) não ocorre no ambiente de data warehouse.
A última característica significativa do DW diz respeito ao fato de ele ser variável em relação ao tempo.
• O horizonte de tempo válido para o DW é significantemente maior do que o dos sistemas
operacionais. Um horizonte de tempo de 60 a 90 dias é normal para os sistemas operacionais; um
horizonte de tempo de 5 a 10 anos é normal para o DW.
• Bancos de dados operacionais contêm dados de valor corrente – dados cuja exatidão é válida para o
momento de acesso. Assim sendo, dados de valor corrente podem ser atualizados. Dados existentes
no DW não passam de uma série sofisticada de instantâneos, capturados num determinado momento.
• A estrutura de chaves dos dados operacionais pode conter, ou não, elementos de tempo, como ano,
mês, dia, etc. A estrutura de chave do DW sempre contém algum elemento de tempo.
Na estrutura do DW pode-se notar um nível de detalhe mais antigo (geralmente residente em um
armazenamento alternativo, de massa), um nível corrente de detalhe, um nível de dados levemente resumidos e
um nível de dados altamente resumidos. Os dados fluem do ambiente operacional para o DW. Na passagem do
nível operacional pare o nível do DW, geralmente ocorre uma quantidade significativa de transformações de
dados.
O DW baseia-se nos principais assuntos ou negócios de interesse da empresa que tenham sido definidos
no modelo de dados. Entre as tradicionais áreas de interesse incluem-se: Cliente, produto, transação ou atividade,
apólice, indenização, conta, etc. A principal área de interesse termina sendo fisicamente implementada como
uma série de tabelas relacionadas inseridas no DW.
Dados que apresentam alta probabilidade de acesso e baixo volume de armazenamento residem em um
meio rápido e relativamente caro. Dados que apresentam baixa probabilidade de acesso e grande volume de
armazenamento residem em um meio menos dispendioso e de acesso mais lento.
O mais importante aspecto do projeto de um DW é a questão da granularidade. A granularidade diz
respeito ao nível de detalhe ou de resumo contido nas unidades de dados existentes no DW. Quanto mais detalhe,
mais baixo o nível de granularidade. Quanto melhor detalhe, mais alto o nível de granularidade.
A granularidade de dados tem se mantido como uma questão delicada de projeto. Nos primeiros sistemas
operacionais que foram criados, a granularidade era tido como certa. Quando os dados detalhados eram
atualizados, era quase certo que eles seriam armazenados no nível mais baixo de granularidade. No entanto, no
ambiente de DW, a granularidade não é um pressuposto.
- 10 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
A razão pela qual a granularidade é a principal questão de projeto consiste no fato de que ela afeta
profundamente o volume de dados que residem no DW e, ao mesmo tempo, afeta o tipo de consulta que pode ser
atendida. O volume de dados contido no DW é balanceado de acordo com o nível de detalhe de uma consulta.
Outro meio utilizado é o particionamento dos dados de detalhe corrente em unidades físicas menores.
Pois, unidades físicas menores proporcionam ao pessoal de operação e ao projetista muito mais flexibilidade no
gerenciamento dos dados do que é proporcionado pelas unidades maiores.
Quando os dados residem em unidades físicas de tamanho maior, entre outras coisas, eles não podem ser:
• Reestruturados facilmente
• Indexados livremente
• Pesquisados sequencialmente, se necessário
• Reorganizados facilmente
• Recuperados facilmente
• Monitorados facilmente
Em resumo, uma das características essenciais do data warehouse é o acesso flexível aos dados. A
existência de uma grande quantidade de dados frusta boa parte do objetivo do DW. Portanto, todos os dados de
detalhe corrente do DW devem ser particionados. Os dados podem ser divididos de diversas maneiras, as mais
comuns são: por data, por área de negócio, por área geográfica, por unidade organizacional, etc.
Existem dois importantes aspectos vinculados à construção de um DW – o projeto da interface com os
sistemas operacionais e o projeto do data warehouse propriamente dito. De certa forma, “projeto” não é uma
descrição exata do que acontece durante a construção do DW, uma vez que ele é construído de modo heurístico.
Primeiro, o warehouse é povoado com alguns dados. Tais dados são, então, usados e minuciosamente
examinados pelo analista de SAD. Em seguida, com base no feedback proporcionado pelo usuário final, os dados
são modificados e/ou outros são adicionados ao data warehouse.
O ciclo de feedback tem continuidade por toda a vida do data warehouse. É um engano pensar que os
enfoques de projetos que funcionaram no passado serão úteis na construção do DW. Os requisitos para a criação
do DW não podem ser conhecidos até que ele esteja parcialmente povoado e sendo usado pelo analista de SAD.
Portanto, ele não pode ser projetado do mesmo modo pelo qual são construídos os sistemas clássicos baseados
em requisitos. Por outro lado, também constitui um engano pensar que não prever requisitos seja uma boa idéia.
Antes de qualquer tentativa de aplicar as técnicas convencionais de projeto seja feita, o projetista precisa
compreender a aplicabilidade e o os limites dessas técnicas. O modelo de processos se aplica apenas ao ambiente
operacional. O modelo de dados se aplica tanto ao ambiente operacional quanto ao ambiente de data warehouse.
A tentativa de utilização de um modelo de dados ou de processos no local inadequado resultará apenas em
frustração.
O escopo de integração estabelece as fronteiras do modelo de dados e deve ser definido antes do inicio do
processo de modelagem. O escopo é combinado entre o encarregado da modelagem, a gerência e o usuário final
do sistema. Caso o escopo não seja predeterminado, há uma grande possibilidade de o processo de modelagem
prolongar-se por um tempo excessivo. O modelo físico de dados é criado a partir do modelo de nível
intermediário mediante a simples expansão deste de forma que ele passe a apresentar chaves e características
físicas. À essa altura, o modelo físico de dados se parece com uma série de tabelas chamadas, em alguns casos,
de tabelas relacionais.
Um importante aspecto do ambiente de DW diz respeito aos metadados. Metadados são dados sobre
dados. Os metadados fazem parte do meio de processamento de informações há tanto tempo quanto os
programas e os dados. Contudo, é no mundo do data warehouse que os metadados assumem um novo nível de
importância. É por meio dos metadados que a utilização mais produtiva do data warehouse é alcançada. Os
metadados permitem que o usuário final/analista de SAD navegue pelas possibilidades.
Os metadados englobam o warehouse e mantêm informações sobre o que está onde no data warehouse.
Tipicamente, os aspectos sobre os quais os metadados mantêm informações são:
• A estrutura dos dados segundo a visão do programador.
• A estrutura dos dados segundo a visão do analista de SAD.
• A fonte de dados que alimenta o data warehouse.
• A transformação sofrida pelos dados no momento de sua migração para o DW.
• O modelo de dados.
• O relacionamento entre o modelo de dados e o DW.
• O histórico de extrações.
De modo geral pode-se resumir que o projeto do data warehouse começa com o modelo de dados. O
modelo corporativo de dados é utilizado para o projeto do ambiente operacional, e uma variante do modelo
corporativo de dados é usada para o DW. O data warehouse é construído de forma iterativa. Os requisitos para o
DW não podem ser conhecidos antecipadamente. A construção do data warehouse ocorre sob um ciclo de vida
do desenvolvimento completamente diferente daquele referente aos sistemas operacionais clássicos.
- 11 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
A principal preocupação do desenvolvedor do data warehouse diz respeito ao gerenciamento de volume.
Com relação a isso, a granularidade e o particionamento dos dados são duas questões mais importantes do
projeto de banco de dados. Há, no entanto, muitas outras questões de projeto físico, a maioria das quais,
centradas na eficiência de acesso aos dados.
4.
KDD – KNOWLEDGE DISCOVERY DATABASE
4.1. TAREFAS DE KDD
A Figura 3 representa de forma hierárquica uma visão sistemática do processo de KDD. Nessa figura
percebe-se as fases e as principais tarefas do processo de KDD, envolvendo: tarefas e algoritmos empregados;
fases; e etapas do pré processamento.
Figura 3:Taxonomia do processo de KDD
O desenvolvimento de sistemas de KDD esta relacionado com diversos domínios de aplicações:
marketing, análises corporativas, astronomia, medicina, biologia, entre outros. Deste modo, pode-se identificar
diversas tarefas de KDD que são, principalmente, dependentes do domínio da aplicação e do interesse do
usuário. De modo geral, cada tarefa de KDD extrai um tipo diferente de conhecimento do banco de dados, logo
cada tarefa requer um algoritmo diferente para a extração de conhecimento. A seguir descreve-se algumas das
principais tarefas de KDD.
4.1.1. Regras de Associação
A tarefa de descobrir regras de associação foi introduzida por Agrawal [AGRA93]. Na sua forma
original essa tarefa é definida para um tipo especial de dados, frequentemente chamado “basket data”. Nesse tipo
de dado uma tupla consiste num conjunto de atributos binários chamados itens. Cada tupla corresponde à uma
transação, e um item pode assumir um valor verdadeiro ou falso, dependendo se o ele está ou não presente na
- 12 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
transação. A transformação de uma tabela da base de dados para o formato binário é feita de modo que um
atributo de cardinalidade K é substituído por K atributos binários [ADRI97].
Uma regra de associação é um relacionamento da forma X ⇒ Y, onde X e Y são conjuntos de itens e a
interseção deles, X ∩ Y, é o conjunto vazio. Cada regra de associação é associada a um fator suporte superior,
denominado FSup, e a um fator de confidência, FConf. FSup é definido como a razão do número de tuplas
satisfazendo ambos X e Y sobre o número total de tuplas, isto é, FSup = | X ∪ Y | / N, onde N é o número total
de tuplas. FConf é definido como a razão do número de tuplas que satisfazem ambos X e Y sobre o número de
tuplas que satisfazem X, isto é, FConf = | X ∪ Y | / | X |. A tarefa de descobrir regras de associação consiste em
extrair do banco de dados todas as regras com FSup e FConf maiores ou iguais a um FSup e FConf especificado
pelo usuário. A definição desses fatores serve para introduzir uma medida capaz de distinguir associações
interessantes, dado que as regras geradas em forma binária elevam em muito o espaço de busca de qualquer
algoritmo minerador.
A descoberta de regras de associação é geralmente executada em 2 passos. Primeiro, um algoritmo
determina todos os conjuntos de itens que têm FSup maior ou igual ao FSup especificado pelo usuário. Estes
conjuntos são chamados conjuntos de itens frequentes. Segundo, para cada conjunto de itens frequentes, todas as
possíveis regras candidatas são geradas e testadas com respeito ao FConf. Uma regra candidata é gerada por
algum subconjunto de itens de um conjunto de itens frequentes como antecedente da regra, e os itens
remanescentes do conjunto de itens frequentes como o consequente da regra. Apenas regras candidatas com
FConf maior ou igual ao FConf especificado pelo usuário são dadas como saída do algoritmo.
Para ilustrar a descoberta de regras de associação, considere o exemplo mostrado na Tabela 1 [FREI98].
A primeira coluna nessa tabela mostra um identificador (ID) da transação, e as outras colunas indicam se um
determinado item foi ou não comprado na transação correspondente. Suponha que o usuário especificou os
parâmetros FSup = 0.3 e FConf = 0.8.
Tabela 1: Entrada de dados para a descoberta de regras de associação.
ID
1
2
3
4
5
6
7
8
9
10
LEITE
Não
Sim
Não
Sim
Não
Não
Não
Não
Não
Não
CAFÉ
Sim
Não
Sim
Sim
Não
Não
Não
Não
Não
Não
CERVEJA
Não
Sim
Não
Não
Sim
Não
Não
Não
Não
Não
PÃO
Sim
Sim
Sim
Sim
Não
Não
Sim
Não
Não
Não
MANTEIGA
Sim
Sim
Sim
Sim
Não
Sim
Não
Não
Não
Não
ARROZ
Não
Não
Não
Não
Não
Não
Não
Não
Sim
Sim
FEIJÃO
Não
Não
Não
Não
Não
Não
Não
Sim
Sim
Não
Conjunto de itens frequentes: CAFÉ, PÃO. FSup = 0.3
Regra: Se (CAFÉ) então (PÃO). FConf = 1.
Conjunto de itens frequentes: CAFÉ, MANTEIGA. FSup = 0.3
Regra: Se (CAFÉ) então (MANTEIGA). FConf = 1.
Conjunto de itens frequentes: PÃO, MANTEIGA. FSup = 0.4
Regra: Se (PÃO) então (MANTEIGA). FConf = 0.8.
Regra: Se (MANTEIGA) então (PÃO). FConf = 0.8
Conjunto de itens frequentes: CAFÉ, PÃO, MANTEIGA. FSup = 0.3
Regra: Se (CAFÉ e PÃO) então (MANTEIGA). FConf = 1.
Regra: Se (CAFÉ e MANTEIGA) então (PÃO). FConf = 1
Regra: Se (CAFÉ) então (PÃO e MANTEIGA). FConf = 1
Figura 4: Regras de associação descobertas dos dados da Tabela 1 (FSup = 0.3 e FConf = 0.8)
A Figura 4 mostra as regras de associação que seriam descobertas dos dados da Tabela 1 utilizando-se os
valores de FSup e FConf maiores ou iguais aos especificados pelo usuário. Na Figura 4 as regras de associação
são agrupadas pelos conjuntos de itens frequentes dos quais as regras foram geradas. A Figura 4 mostra apenas
conjuntos de itens frequentes com dois ou mais itens.
O algoritmo Apriori, um dos algoritmos disponíveis na literatura [AGRA97], é responsável por descobrir
o conjunto de itens frequentes através de múltiplos passos na base de dados. Cada passo inicia com um conjunto
semente de itens, e esse conjunto semente gerará novos conjuntos potenciais, chamados conjunto de itens
candidatos. Em linhas gerais, enquanto o conjunto de itens candidatos não ficar vazio, o algoritmo armazena
- 13 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
esses conjuntos e para cada (tupla) do banco de dados testa se um conjunto candidato está ou não contido na
tupla. Caso um conjunto candidato esteja contido na tupla, então incrementa-se um contador. Se ao final do teste
para cada tupla da base de dados uma regra candidata tiver um suporte mínimo especificado, então ela é inserida
num novo conjunto semente (itens candidatos).
O Algoritmo Basic trabalha de forma análoga ao Apriori [AGRA93]. A diferença está nas transações,
pois nesse algoritmo criam-se novas transações, ou tuplas, chamadas transações estendidas. Uma transação
estendida é uma nova transação tal que nela são adicionados todos os itens antecessores de um dado item. Por
exemplo, “Roupas” podem ser divididas em “Roupas de Frio” e “Roupas de Calor”, e as “Roupas de Frio” em
“Jaquetas” e “Calças”. Logo, se numa transação aparece o item “Calça”, então essa transação é adicionada dos
itens “Roupas de Frio” e “Roupas”.
O Algoritmo Cumulate pré computa os antecessores de um item e só os adiciona na transação se esses
itens forem relevantes [AGRA93]. Se ao final do processo de geração de itens candidatos existirem conjuntos de
itens candidatos que contenham o item e seu antecessor com o mesmo suporte, então um dos conjuntos é
retirado. Por exemplo, se o suporte do conjunto {“Jaquetas”, “Roupas de Frio”} for o mesmo que {“Jaquetas”},
então é suficiente retirar um desses conjuntos.
Uma vez que se obtém os conjuntos de itens frequentes, o algoritmo que é responsável por descobrir as
regras pode ser como o mostrado na Figura 5.
Para cada conjunto de itens frequentes f faça
Para cada subconjunto c de f faça
Se (suporte(f) / suporte(f - c) ≥ MínimoFConf.) então
Saída a regra (f - c) ⇒ c
com fator de confidência = suporte(f) / suporte(f - c)
E suporte = suporte(f)
Figura 5: Algoritmo para descoberta de regras de associação
Mais informações sobre regras de associação e detalhes sobre os algoritmos Apriori, Basic, Cumulate,
Stratify, Estimate e EstMerge, responsáveis pela geração de regras e de conjuntos de itens frequentes podem ser
encontradas em [ AGRA94], [AGRA95], [HAN 97].
Recentemente a descoberta de regras de associação tem sido estendida para outros tipos de atributos que
não sejam estritamente binários. Por exemplo, [ FUKU96] propõe algoritmos para descobrir regras de associação
que se referem à atributos contínuos ou quantitativos.
4.1.2. Classificação
É a tarefa mais estudada em KDD. Nessa tarefa cada tupla pertence a uma classe entre um conjunto prédefinido de classes. A classe de uma tupla, ou registro, é indicada por um valor especificado pelo usuário em um
atributo meta, ou atributo objetivo. As tuplas consistem de atributos preditivos e um atributo objetivo, esse
último indicando a que classe essa tupla pertence. O atributo objetivo é do tipo categórico, ou discreto, isto é,
pode tomar apenas um valor dentro de um conjunto de valores discretos, determinando classes ou categorias.
Esse atributo pode ter valores discretos como SIM ou NÃO, um código pertencente a um intervalo de números
inteiros, tais como {1..10}, etc.
O princípio da tarefa de classificação é descobrir algum tipo de relacionamento entre os atributos
preditivos e o atributo objetivo, de modo a descobrir um conhecimento que possa ser utilizado para prever a
classe de uma tupla desconhecida, ou seja, que ainda não possui uma classe definida. Por exemplo, suponha que
uma editora de livros publicou um livro chamado “Um guia para restaurantes franceses na Inglaterra”. O livro é
publicado em inglês, francês e alemão, de acordo com o país onde ele está sendo vendido. Suponha também que
a editora tem um banco de dados contendo dados sobre seus clientes nos três países, Inglaterra, França e
Alemanha. Seria interessante utilizar esses dados para prever que tipo de clientes estariam mais interessados em
comprar esse novo livro. A editora pode então concentrar os esforços de vendas nesses clientes.
Para prever se o cliente irá ou não comprar o livro quando eles receberem um material de propaganda, a
editora necessita de alguns dados sobre o efeito dessa técnica de propaganda em alguns de seus clientes na sua
base de dados. A partir desses dados um algoritmo de classificação pode descobrir regras que prevêem se um
novo cliente irá ou não comprar esse novo livro. Para coletar esses dados a editora pode enviar o material de
propaganda para alguns de seus clientes e monitorá-los para saber se eles compram ou não o livro. Essa
informação é então armazenada em um novo atributo, nesse caso o atributo objetivo. Seu valor pode assumir
dois possíveis valores: SIM, significando a compra do livro, ou NÃO, caso contrário. Uma vez esse atributo
determinado, o próximo passo é selecionar um subconjunto de atributos preditivos entre todos os atributos dos
clientes no banco de dados. Claramente alguns atributos, tal como: nome do cliente, são de modo geral
- 14 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
irrelevantes para a previsão da compra ou não do livro. No exemplo abaixo serão considerados apenas os
atributos SEXO, PAÍS e IDADE dos clientes como relevantes para a previsão.
A Tabela 2 [FREI98] mostra os valores dos atributos preditivos selecionados, junto com valor do
atributo objetivo, COMPRAR. Esses são dados de dez clientes, aos quais algum material de propaganda foi
enviado sobre o novo livro. Um algoritmo de classificação pode analisar os dados da Tabela 2 para determinar
que valores dos atributos preditivos tendem a ser relacionados, ou associados, com cada um dos atributos
objetivos. Esta descoberta de conhecimento pode então ser aplicada para prever se um cliente da base de dados
da editora comprará ou não o novo livro. Note que esse conhecimento será aplicado nos clientes para o qual o
valor do atributo objetivo ainda é desconhecido.
Tabela 2: Entrada de dados para a tarefa de classificação
SEXO
Masculino
Masculino
Feminino
Feminino
Feminino
Masculino
Masculino
Feminino
Feminino
Masculino
PAÍS
França
Inglaterra
França
Inglaterra
França
Alemanha
Alemanha
Alemanha
França
França
IDADE
25
21
23
34
30
21
20
18
34
55
COMPRAR
Sim
Sim
Sim
Sim
Não
Não
Não
Não
Não
Não
Se (PAÍS = Alemanha) então COMPRAR = Não
Se (PAÍS = Inglaterra) então COMPRAR = Sim
Se (PAÍS = França e IDADE ≤ 25) então COMPRAR = Sim
Se (PAÍS = França e IDADE > 25) então COMPRAR = Não
Figura 6: Regras de classificação descobertas dos dados da Tabela 2
O conhecimento descoberto é frequentemente representado na forma de regras SE-ENTÃO. Essas
regras são interpretadas da seguinte maneira: “SE os atributos preditivos de uma tupla satisfazem as condições
no antecedente da regra, ENTÃO a tupla tem a classe indicada no consequente da regra”. A Figura 6 mostra as
regras extraídas através de um algoritmo de classificação utilizando os dados da Tabela 2.
Mais informações sobre a tarefa de classificação podem ser encontradas em [MEHT96], [SHAF96],
[SHOL91] e [MICH94].
4.1.3. Clustering
Instintivamente as pessoas visualizam os dados segmentados em grupos discretos, como por exemplo,
tipos de plantas ou animais. Na criação desses grupos discretos pode-se notar a similaridade dos objetos em cada
grupo.
Enquanto a análise de grupos é frequentemente feita manualmente em pequenos conjuntos de dados, para
grandes conjuntos um processo automático de clustering através da tecnologia de mineração de dados é mais
eficiente. Em adição, os cenários existentes são muito similares, tornando-os competitivos, requerendo a
utilização de algoritmos complexos que determinem a segmentação mais apropriada.
Nessa tarefa de KDD, o algoritmo deve criar as classes através da produção de partições do banco de
dados em conjuntos de tuplas. Essa partição é feita de modo que tuplas com valores de atributos semelhantes, ou
seja, propriedades de interesse comuns, sejam reunidas dentro de uma mesma classe. Uma vez que as classes
sejam criadas, pode-se aplicar um algoritmo de classificação nessas classes, produzindo assim regras para as
mesmas. Um bom agrupamento caracteriza-se pela produção de segmentos de alta qualidade, onde a
similaridade intra-classe é alta e a inter-classe é baixa. A qualidade do resultado do clustering também depende
da medida utilizada para medir a similaridade usada pelo método e de sua implementação, além de sua
habilidade de descobrir algum ou todos os padrões escondidos.
As técnicas mais utilizadas para agrupar dados são baseadas em três categorias: Partição, basicamente
enumera várias partições e então cria uma nota para cada uma delas segundo algum critério; Hierarquia, cria uma
decomposição hierárquica do conjunto de dados usando algum critério; Modelo, um modelo é hipoteticamente
criado para cada cluster e a idéia é encontrar o que melhor se enquadra quando comparados entre si.
- 15 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
A maioria das ferramentas de clustering trabalham em função de um número pré-definido de grupos
especificado por um usuário. Isso requer um conhecimento detalhado do domínio, transformando assim a tarefa
de descoberta de conhecimento menos atrativa. Tecnologias mais sofisticadas são capazes de procurar através de
diferentes possibilidades de quantidades de grupos e avaliar cada configuração de acordo com a sua importância.
Técnicas baseadas em Redes Neurais Auto Organizáveis utilizando algoritmos Kohonen [HAYK94] também são
capazes de segmentar grupos de dados. Outras discussões sobre métodos de clustering podem ser encontradas
em [JAIN88], [ARAB96] e [RAYM94].
Existem outras tarefas de KDD que menos destacadas, são elas:
• Descoberta de regras através da semântica da otimização de “queries” – Esta tarefa transforma uma
query do banco de dados em uma outra query utilizando a semântica do conhecimento da base, tais
como restrições de integridade e dependências funcionais para produzir uma query mais eficiente
[KING81].
• Descoberta de dependências do banco de dados – No modelo de dados relacional, as definições das
relações na base de dados não dizem nada sobre o relacionamento entre seus atributos. Esses
relacionamentos são especificados através das dependências dos dados, ou das restrições de
integridade [FAGI86], essa tarefa busca automaticamente descobrir tais dependências.
• Regressão – Esta tarefa é conceitualmente similar a tarefa de classificação. A maior diferença é que
nessa tarefa o atributo meta, ou objetivo, é contínuo, isto é, pode tomar qualquer valor real ou
qualquer número inteiro num intervalo arbitrário, ao invés de um valor discreto [QUIN93].
4.2. FASES DE KDD
No processo de KDD cada fase pode possuir uma interseção com as demais. Desse modo, os resultados
produzidos numa fase podem ser utilizados para melhorar os resultados das próximas fases. Esse cenário indica
que o processo de KDD é iterativo, buscando sempre aprimorar os resultados a cada iteração. Na execução do
processo de KDD o usuário analisa as informações geradas em cada fase e procura incorporar sua experiência de
analista de dados para obter cada vez mais melhores resultados.
A definição do problema é fundamental para o processo de KDD. Essa definição requer que a pessoa que
solicita a tarefa de KDD entenda perfeitamente o problema existente e tenha um objetivo bem especificado, ou
seja, aquilo que se deseja conhecer ou extrair. Para isso, é necessário uma interação com o solicitador da tarefa
de modo que seja exposto tudo o que se relaciona com o problema. Tendo sido definido o problema, pode-se
fixar metas para os objetivos da tarefa de KDD.
4.2.1. Data Warehousing: Organização de grandes volumes de dados
O processo de KDD deve iniciar a construção de um Data Warehousing (DW). Este é um meio efetivo de
organizar grandes volumes de dados para sistemas de suporte a decisão e aplicações de KDD. Pode-se definir um
DW como um repositório integrado, orientado para análise, histórico, com dados apenas para leitura, designado
para ser utilizado como base para suporte à decisão e sistemas KDD [INMO93], [POE 96]. Um DW funciona
como uma base de dados para dar suporte à decisão mantido separadamente das bases de dados operacionais da
organização. Geralmente integra dados de diversas origens heterogêneas e por isso necessita de uma estrutura
flexível que suporte queries e geração de relatórios analíticos.
A Figura 7 mostra o ponto crítico em um DW que é a integração de múltiplos dados, provenientes de
bases de dados heterogêneas. A integração envolve padronizar atributos, formatos e convenções de nomes, além
de remoção de inconsistências.
- 16 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Figura 7: Visão resumida das fases do processo de KDD incluindo Data Warehousing
Um DW contém dados históricos, variantes no tempo (geralmente por um período de muitos anos). Esses
dados são geralmente organizados de modo a facilitar sua análise por um usuário especializado. Uma
organização típica de dados é armazenar informações quantitativas (por exemplo, vendas de produtos) em
grandes tabelas, chamadas tabelas de fatos, e dados qualitativos, informação descritiva (por exemplo, atributos
do produto) armazenados em pequenas tabelas, chamadas tabelas de dimensão. Este modelo é chamado estrela,
pois um simples objeto (tabela de fatos) está no centro do modelo conectado a um número de objetos (tabela de
dimensão) radialmente. Além desse modelo, também utiliza-se: - Flocos de neve, um refinamento do modelo
estrela onde a hierarquia dimensional é representada explicitamente pela normalização das tabelas de dimensão;
- Constelações de fatos, múltiplas tabelas de fatos compartilhando as tabelas de dimensões.
Um DW é uma base apenas para leitura no sentido que um item dessa base é raramente alterado. Em um
DW o usuário obtém a informação desejada executando queries pré-definidas que fazem junções entre as tabelas
de fatos e dimensões. Atualizações no DW geralmente consistem na inserção de novos dados (e as vezes da
retirada de dados mais antigos) num período pré-determinado de tempo, por exemplo, uma vez por semana.
As características citadas estão em contraste com SGBD (Sistema Gerenciador de Banco de Dados), os
quais tipicamente contém apenas as últimas versões dos dados e onde tuplas estão constantemente sendo
inseridas, apagadas ou alteradas. Um SGBD é uma coleção de programas que habilitam usuários a criar e manter
um banco de dados. Ou seja, um SGBD é um sistema que facilita os processos de definição, construção, e
manipulação de bases de dados para várias aplicações.
OLAP: Processamento Analítico On-Line (On-Line Analytical Processing)
O Processo Analítico On-Line motiva-se pela necessidade de minerar conhecimento e padrões em
diferentes níveis de abstração através de análises multidimensionais dos dados, ou seja, uma visão lógica dos
dados. É uma análise interativa dos dados, permitindo ilimitadas visões através de agregações em todas
interseções de dimensões possíveis. Permite obter informações e mostrá-las em tabelas de 2D e 3D, mapas e
gráficos, com fácil modificação dos eixos. Além disso, deriva-se análises estatísticas (razões, médias, variâncias)
envolvendo quaisquer medidas ou dados numéricos entre muitas dimensões. Um OLAP executa queries com um
tempo de resposta pequeno, pois procura-se através de otimização do DW manter as informações solicitadas com
maior frequência em memória. Abaixo segue a arquitetura de uma ferramenta OLAP:
1. A arquitetura Lógica OLAP
- 17 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
2.
3.
• Visão OLAP – multidimensional e apresentação lógica dos dados em um DW para o usuário de
trabalho.
• Tecnologia de armazenamento de dados – Indica as opções de tecnologia de como e onde os dados
serão armazenados.
Os três principais componentes de serviços
• Serviços de armazenamento de dados
• Serviços OLAP
• Serviços de apresentação para o usuário
Arquiteturas de armazenamento de dados
• Multidimensional (MOLAP)
• Relacional (ROLAP)
4.2.2. Pré-processamento dos dados
Na Figura 7 nota-se que após a fase de DW inicia-se o pré-processamento dos dados. Essa fase,
responsável por consolidar as informações relevantes para o algoritmo minerador, buscando reduzir a
complexidade do problema, inclui 3 sub-fases chamadas: limpeza dos dados, seleção dos dados e transformação
ou codificação dos dados. Essas fases não necessitam ser executadas nessa ordem, algumas dessas operações
podem ser parcialmente executadas durante a construção de um DW.
4.2.3. Limpeza dos dados
A limpeza dos dados envolve uma verificação da consistência das informações, a correção de possíveis
erros e o preenchimento ou a eliminação de valores nulos e redundantes. Nessa fase são identificados e
removidos os dados duplicados e/ou corrompidos. A execução dessa fase corrige a base de dados eliminando
consultas desnecessárias que seriam executadas pelo algoritmo minerador e que afetariam o seu processamento.
Os métodos de limpeza dos dados são herdados e dependentes do domínio da aplicação, desse modo a
participação do analista de dados torna-se essencial. Um exemplo simples de limpeza de dados seria a definição
de um intervalo de possíveis valores para um determinado atributo, {0..10}. Caso surgisse qualquer valor
diferente dos definidos no intervalo, esse dado seria retirado.
4.2.4. Seleção dos dados
Na seleção dos dados deseja-se escolher apenas atributos relevantes do conjunto de atributos do banco de
dados. Em suma, a seleção de atributos consiste da escolha de um subconjunto de atributos disponíveis para o
algoritmo de KDD que seja relevante para o objetivo da tarefa. O subconjunto selecionado é então fornecido
para o algoritmo de mineração dos dados. Uma motivação para essa seleção é otimizar o tempo de
processamento do algoritmo minerador, visto que ele apenas trabalhará com um subconjunto de atributos, desse
modo diminuindo o seu espaço de busca.
Existem 2 principais métodos para a seleção de atributos:
•Múltiplas iterações – o dado a ser minerado é dividido em 2 subconjuntos: treinamento e avaliação,
então uma busca heurística iterativa é executada no espaço dos subconjuntos dos atributos. Cada
iteração dessa busca consiste basicamente de três passos. Primeiro, um subconjunto de atributos,
chamados atributos candidatos, é selecionado de acordo com algum critério. Segundo, um algoritmo
é aplicado no subconjunto de treinamento, composto apenas por atributos candidatos. Terceiro, é
medido a qualidade da seleção aplicando-se o resultado obtido no subconjunto de avaliação. Esse
ciclo permanece até que se chegue a um resultado satisfatório. Os métodos básicos mais utilizados
podem ser: Forward Selection (FS) e Backward Elimination (BE). FS inicia com um conjunto vazio
de atributos e iterativamente seleciona um atributo por vez até que nenhuma melhora na medida da
qualidade do resultado seja obtida. BE inicia com um conjunto com todos os atributos e
iterativamente remove um atributo por vez até que nenhuma melhora na medida da qualidade do
resultado seja obtida. Métodos mais sofisticados para seleção de atributos podem ser encontrados em
[BALA95], utilizando algoritmos genéticos e [AHA 95] utilizando outros métodos de busca.
•Iteração simples – Este método é independente do algoritmo minerador, ou seja o mesmo conjunto de
atributos selecionados pode ser fornecido para qualquer algoritmo minerador. Exemplos podem ser
- 18 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
encontrados em [KIRA92], [KONO94] e [KOLL96]. Esses algoritmos se utilizam de métodos
estatísticos como probabilidade de distribuição e são menos complexos em eficiência que o método
de múltiplas iterações.
Uma outra maneira de selecionar os dados é de forma determinística. Nesse caso o analista de dados
escolhe os atributos que segundo sua experiência são essenciais e necessários para explicar, ou compor, o
objetivo da tarefa de KDD.
4.2.5. Codificação dos dados
Um algoritmo de codificação divide os valores contínuos dos atributos (inteiros ou reais) numa lista de
intervalos representados por um código. Ele efetivamente converte valores quantitativos em valores categóricos.
Ou seja, cada intervalo resulta num valor discreto do atributo. Por exemplo, mostra-se uma possível codificação
para o atributo IDADE: {0..18} → Faixa 1; {19..25} → Faixa 2; {26..40} → Faixa 3 e assim por diante. Nesse
exemplo, os valores contínuos das idades foram discretizados em 3 faixas. Em alguns casos a transformação de
um valor em seu equivalente na base binária pode facilitar o algoritmo minerador a encontrar seu objetivo com
melhor qualidade de resultados. Em resumo essa fase converte os dados para a forma mais adequada para a
construção e interpretação do modelo.
A codificação de dados é potencialmente a tarefa onde há a necessidade de grande habilidade no processo
de KDD. Tipicamente essa etapa exige a experiência do analista de dados e do seu conhecimento nos dados em
questão. Embora o processo de KDD possa ser executado sem essa fase, nota-se que quando efetivada os
resultados obtidos são mais intuitivos e valiosos, além de que, na maioria das vezes, facilita a construção do
modelo.
Os algoritmos de codificação podem ser de dois tipos: cego para a classe, dirigido para a classe.
O algoritmo cego para a classe discretiza um dado atributo sem considerar o atributo objetivo (classe)
[MANN88]. Por exemplo, dividir um intervalo de valores de um atributo em um número pré-determinado de
intervalos do mesmo tamanho. Usando o exemplo do atributo IDADE, este método produziria intervalos como:
0-10, 10-20, 20-30, etc.
O algoritmo dirigido para a classe [DOUG95] considera o valor da classe quando discretiza o atributo. A
entrada para esse algoritmo é uma relação com o atributo a ser discretizado e o atributo objetivo, cujo valor
indica a que classe a tupla pertence.
As vantagens de se codificar um atributo são: melhorar a compreensão do conhecimento descoberto;
reduzir o tempo de processamento para o algoritmo minerador, diminuindo o seu espaço de busca; facilitar o
algoritmo a tomar decisões globais, já que os valores dos atributos foram englobados em faixas. Como
desvantagens cita-se a redução da medida de qualidade de um conhecimento descoberto, perdendo assim
detalhes relevantes sobre as informações extraídas.
4.2.6. Enriquecimento dos dados
Essa fase de enriquecimento consiste em agregar aos dados existentes mais informações de modo que
essas contribuam no processo de descoberta de conhecimento. Essas informações serão incorporadas ao processo
como um meta conhecimento do analista de dados, ou seja, informações que não estão na base de dados, porém
são conhecidas e ratificadas. Em suma, o enriquecimento dos dados é qualquer processo capaz de aumentar as
informações já existentes que acredita-se melhorar o desempenho do algoritmo minerador.
4.2.7. Mineração de Dados (Data Mining)
É a etapa mais importante do processo de KDD. Caracteriza-se pela existência do algoritmo que diante
da tarefa especificada será capaz de extrair eficientemente conhecimento implícito e útil de um banco de dados.
Pode-se dizer que mineração de dados é a fase que transforma dados em informações, consequentemente um
sistema de suporte a decisão baseado em algoritmos de mineração de dados é o que transforma os dados em
possíveis ações e na percepção de aumento dos lucros.
Nessa fase necessita-se definir a técnica e o algoritmo a ser utilizado em função da tarefa proposta. A
Tabela 3 mostra as principais tarefas de KDD e as técnicas mais utilizadas para mineração de dados.
- 19 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Tabela 3: Algumas tarefas de KDD e suas técnicas de mineração de dados
Tarefas de KDD
Associação
Classificação
Clustering
Previsão de Séries Temporais
Técnicas
Estatística e Teoria dos Conjuntos
Algoritmos Genéticos, Redes Neurais e Arvores de
Decisão
Redes Neurais e Estatística
Redes Neurais, Lógica Nebulosa e Estatística
Uma vez escolhido o algoritmo a ser utilizado, deve-se implementá-lo e adaptá-lo ao problema proposto.
Para finalizar essa etapa deve-se executar o algoritmo a fim de obter resultados que serão analisados na fase de
pós-processamento.
4.2.8. Pós-processamento
Finalmente, a saída do algoritmo minerador pode ser refinada numa fase de pós-processamento. Essa fase
envolve a interpretação do conhecimento descoberto, ou algum processamento desse conhecimento. Esse pósprocessamento deve ser incluído no algoritmo minerador, porém algumas vezes é vantajoso implementá-lo
separadamente. Em geral, a principal meta dessa fase é melhorar a compreensão do conhecimento descoberto
pelo algoritmo minerador, validando-o através de medidas da qualidade da solução e da percepção de um
analista de dados. Esses conhecimentos serão consolidados em forma de relatórios demonstrativos com a
documentação e explicação das informações relevantes ocorridas em cada etapa do processo de KDD.
Uma maneira genérica de obter a compreensão e interpretação dos resultados é utilizar técnicas de
visualização [LEE 95]. Existem também outros tipos de técnicas de pós-processamento criados especialmente
para um dado tipo de algoritmo minerador, ou para uma dada tarefa de KDD. Por exemplo, recentemente têm
aparecido pesquisas sobre como converter os pesos das conexões de uma rede neural artificial num conjunto de
regras [FU 94], [LU 95], [VAUG96].
A Figura 8 [FAYY96] mostra uma visão mais ampla do processo de KDD, onde a fase de DW não é
evidenciada. Em um processo de KDD, a fase DW não é absolutamente necessária, podendo, ser executada pelo
usuário do sistema conforme a necessidade de dados para o algoritmos minerador. O DW é importante para
agilizar e organizar o processo de KDD, não sendo imprescindível para tal. É importante notar que não existe um
sistema que implementa um processo de KDD. Existem sistemas intermediários, controlados por um usuário, e
cada sistema é bem definido e com o seu objetivo delineado conforme a tarefa solicitada.
- 20 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Figura 8: Uma visão mais ampla do processo de KDD
5.
DATA MINING
5.1. INTRODUÇÃO
A mineração de dados é considerada a principal fase do processo de KDD. Essa fase é exclusivamente
responsável pelo algoritmo minerador, ou seja, o algoritmo que diante da tarefa especificada, busca extrair o
conhecimento implícito e potencialmente útil dos dados. A mineração de dados é, na verdade, uma descoberta
eficiente de informações válidas e não óbvias de uma grande coleção de dados [BIGU96].
A proposta de extrair conhecimento de banco de dados surgiu devido a explosão do crescimento da
quantidade de dados armazenados em meios magnéticos e da necessidade de aproveitá-los, motivada pela “fome
de conhecimento”. Outro fator que contribuiu em muito para aumento do interesse em mineração de dados foi o
desenvolvimento das técnicas de machine learning - redes neurais artificiais, algoritmos genéticos, entre outras,
que tornaram a descoberta de relações interessantes em bases de dados mais atrativa.
Quando fala-se de mineração de dados não está se considerando apenas consultas complexas e elaboradas
que visam ratificar uma hipótese gerada por um usuário em função dos relacionamentos existentes entre os
dados, e sim da descoberta de novos fatos, regularidades, restrições, padrões e relacionamentos.
Na fase de mineração dos dados o executor da tarefa pode utilizar várias ferramentas e técnicas para que o
seu objetivo seja bem sucedido. Uma das ferramentas mais utilizadas são aquelas baseadas em consulta a bases
de dados, linguagem SQL, pois permite que o executor possa obter uma análise preliminar dos dados.
A mineração de dados envolve diversas áreas e técnicas, além dos principais algoritmos. A Figura 9
mostra uma taxonomia da fase de mineração de dados. Os algoritmos estão representados pelo símbolo (•
),
enquanto que as caixas representam áreas e técnicas.
- 21 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Figura 9: Taxonomia da fase de Mineração de Dados
Neste capítulo, todos os itens da taxonomia são abordados genericamente, de modo a permitir uma visão
ampla de como essas técnicas e algoritmos são empregados na mineração de dados.
A seguir, são apresentadas as principais técnicas e algoritmos utilizados em mineração e dados.
5.2. TÉCNICAS E ALGORITMOS PARA A MINERAÇÃO DE DADOS
A mineração de dados possui não só um amplo espectro de aplicações, mas também de técnicas,
algoritmos e procedimentos. Nas seções a seguir são mostrados, resumidamente, os fundamentos das principais
técnicas e a sua modelagem para a mineração de dados.
5.2.1. Redes Neurais Artificiais
Introdução às Redes Neurais Artificiais
Uma Rede Neural Artificial (RNA) é uma técnica computacional que constrói um modelo matemático,
emulado por computador, de um sistema neural biológico simplificado, com capacidade de aprendizado,
generalização, associação e abstração. As RNAs tentam aprender padrões diretamente dos dados através de um
processo de repetidas apresentações dos dados à rede, ou seja por experiência. Dessa forma, uma RNA procura
por relacionamentos, constrói modelos automaticamente, e os corrige de modo a diminuir seu próprio erro.
Semelhante ao sistema biológico, uma RNA possui, simplificadamente, um sistema de neurônios, ou nós,
e conexões ponderadas (equivalente às sinapses), pesos. Numa RNA os nós são arrumados em camadas, com
conexões entre elas. A Figura 10 representa conceitualmente a arquitetura de uma RNA simples. Os círculos
representam os nós e as linhas representam os pesos das conexões. Por convenção, a camada que recebe os dados
é chamada camada de entrada e a camada que mostra o resultado é chamada camada de saída. A camada interna,
onde localiza-se o processamento interno, é tradicionalmente chamada de camada escondida. Uma RNA pode
conter uma ou várias camadas escondidas, de acordo com a complexidade do problema [HOLL92], [DHAR97].
- 22 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Figura 10: A arquitetura de uma Rede Neural Artificial simples
Para entender como uma RNA aprende é necessário saber como os pesos da rede afetam sua saída. O
aprendizado de uma RNA envolve os ajustes dos pesos. A Figura 11 mostra o esquema de um neurônio artificial
criado a partir do modelo simplificado do neurônio biológico [PERE96]. O neurônio artificial possui várias
entradas, que podem ser estímulos do sistema ou saídas de outros neurônios.
Ativação
Pesos
X1
Propagação
W1
X2
W2
X3
W3
Σ
Figura 11: Esquema simplificado de um neurônio artificial
O neurônio artificial é dividido em 2 seções funcionais. A primeira seção combina todas as entradas que
alimenta o neurônio. Essa etapa indica como as entradas serão computadas (regra de propagação). A segunda
seção recebe esse valor e faz um cálculo determinando o grau de importância da soma ponderada utilizando uma
função de transferência, ou função de ativação. Essa função determina a que grau uma soma causará uma
excitação ou inibição do neurônio. Os tipos mais comuns de funções de ativação são sigmóide e tangente
hiperbólica, pois fornecem a característica de não linearidade para uma RNA.
Uma RNA ajusta seus pesos na fase de treinamento. É fornecido um dado de observação, o qual é
processado, e uma resposta será produzida. O resultado fornecido é comparado com uma saída desejada, saída
correta. Se a rede acerta essa saída, então ela não faz nada, entretanto se o resultado não está correto, ocorre um
ajuste dos pesos de modo que o erro seja minimizado.
- 23 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
As topologias mais comuns de RNAs são as de múltiplas camadas feed-forward e as redes recorrentes. O
aprendizado de uma RNA pode ser dividido em 3 grupos: sem treinamento – os valores dos pesos sinápticos são
estabelecidos a priori, ou seja, ajustados em um único passo, por exemplo, Redes de Hopfield [DAYH90];
treinamento supervisionado – a rede é treinada através do fornecimento dos valores de entrada e dos seus
respectivos valores de saída desejados (procura minimizar o erro médio quadrado); e treinamento nãosupervisionado – o sistema extrai as características dos dados fornecidos, agrupando-os em classes (clusters).
Modelagem de Redes Neurais Artificiais em Mineração de Dados
As principais aplicações de Redes Neurais em mineração são classificação, clustering, aproximação de
funções, previsão e verificação de tendências.
De um modo geral, a arquitetura de uma RNA recebe uma tupla (atributos preditivos, ou seja, atributos
que pertencem a parte SE de uma regra) como entrada através da primeira camada da rede (camada de entrada).
Figura 12: Modelo de um Rede Neural Artificial para mineração de dados
Tratando-se de aprendizado não supervisionado, não existe atributos objetivo que possa ser utilizado
para corrigir os pesos da rede. Esse tipo de aprendizado aplica-se em tarefas de clustering. As redes auto
organizáveis (por exemplo, Kohonen), baseadas em aprendizado competitivo, destacam-se como um bom
algoritmo [FU 94].
Entretanto, em algoritmos supervisionados, os atributos objetivo são modelados pela camada de saída
da rede. Deste modo o algoritmo pode estimar o quanto a saída desejada está distante da saída real. O algoritmo
mais comum em RNAs com aprendizado supervisionado é o back progation. Seu objetivo é minimizar a função
erro entre a saída real da rede e a saída desejada utilizando o método do gradiente descendente [HAYK94].
Back-propagation é utilizado para classificar, aproximar funções, prever e verificar tendências [DHAR97].
Tomando como exemplo a Figura 12, a camada de entrada pode ser tal que cada nó representa um determinado
atributo preditivo de uma tupla e a camada de saída decodifica a que classe essa tupla pertence, ativando um
único nó. Maiores detalhes podem ser encontrados em [FREE92].
Para a tarefa de classificação também são utilizadas as redes neurais probabilísticas, baseadas em
classificadores bayesianos e as redes RBF (Radio-Basis Function), baseadas em funções gaussianas. Esses
algoritmos geram curvas de densidade de probabilidade, fornecendo resultados com bases estatísticas. Esses
- 24 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
resultados indicam o grau de evidência sobre o qual se baseia a decisão. Entretanto, essa metodologia só
funciona bem se existir um número suficiente de exemplos na base de dados. A Figura 13 se enquadra como
arquitetura desses algoritmos. A principal diferença está na interpretação do resultado, pois cada nó da camada
de saída gera um valor que indica a probabilidade da tupla inserida na camada de entrada pertencer a uma
determinada classe.
1.
X1
h( )
y2
u2σ2
X2
h( )
y1/s
Σ
Σ
y2/s
y8
umσm
Xm
Σ
y8/s
s
h( )
Σ
Figura 13: Uma topologia de uma RNA utilizando bases estatísticas
Nesta topologia, RBF, (Figura 13) o número de neurônios da camada escondida é exatamente igual ao
número de tuplas apresentadas para treinamento. Onde: Xi é um atributo preditivo da tupla apresentada, h( ) é a
função de ativação, ui é o centro da Gaussiana e σi é o desvio padrão.
As redes Hopfield também são utilizadas para classificação. Nesse algoritmo as classes são
consideradas estados. Fornecendo-se uma tupla como entrada para a rede, os pesos são atualizados de modo a
ocorrer uma convergência para um estado estável, que será sua classe.
Tresp destaca o grande interesse em entender o conhecimento intrínseco que a rede neural adquire no
treinamento [TRES97]. Nesse trabalho argumenta-se que redes com funções de base gaussiana podem ser
geradas de simples regras probabilísticas e, também, que se regras apropriadas de aprendizados são utilizadas,
regras probabilísticas podem ser extraídas das redes treinadas. Nessa pesquisa, apresentam-se métodos para a
redução da complexidade da rede com o objetivo de obter regras concisas e significantes.
Towell apresenta um método que eficientemente extrai regras simbólicas de uma RNA treinada
[TOWE93]. Os resultados obtidos através de testes empíricos desse método permitem concluir que as regras
extraídas 1) reproduzem com proximidade a acurácia da rede a qual foi extraída; 2) são superiores às regras
produzidas por métodos que diretamente refinam regras simbólicas; 3) são superiores àquelas produzidas por
técnicas anteriores para extração de regras de RNAs treinadas; e 4) são compreensíveis. Conclui-se que esse
método demonstra que uma RNA pode ser utilizada para efetivamente refinar o conhecimento simbólico.
5.2.2. Algoritmos Genéticos
Algoritmos Genéticos são modelos estocásticos e probabilísticos de busca e otimização, inspirados na
evolução natural e na genética, aplicados a problemas complexos de otimização.
Problemas de otimização tipicamente envolvem 3 componentes: variáveis, restrições e objetivos. As
variáveis descrevem os vários aspectos do problema. As restrições monitoram os valores que as variáveis podem
ter. Por último, as funções objetivas são utilizadas para avaliar a solução. As funções objetivas geralmente
envolvem a minimização ou a maximização de algum tipo de recurso. São as funções objetivas que medem a
qualidade de uma regra gerada num Algoritmo Genético.
As variáveis, as restrições e as funções objetivas, descritas em um problema de otimização definem a
geografia básica do espaço de busca, e determinam que técnicas podem ser usadas. Técnicas baseadas em
heurísticas como Algoritmos Genéticos não podem garantir a solução ótima, porém conseguem soluções
- 25 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
próximas, ou aceitáveis (sub-ótimas). Além disso, Algoritmos Genéticos são mais facilmente aplicados em
problemas complexos com muitas variáveis e restrições ou com grandes espaços de busca.
Introdução a Algoritmos genéticos
Um Algoritmo Genético (AG) é um modelo de otimização inspirado na teoria biológica, mais
precisamente, no conceito evolucionário da sobrevivência do mais apto, a seleção natural.
A menor unidade de um AG é chamada gene. Um gene representa uma unidade de informação do
domínio do problema, ou no âmbito de mineração de dados, um valor de um atributo. Uma série de genes, ou um
cromossoma, representa uma possível solução completa para o problema, ou seja uma regra candidata.
Soluções ou cromossomas são avaliados por uma função capaz de medir através de um valor as
qualidades dessas soluções.
Para que um cromossoma seja avaliado é necessário converter o cromossoma numa solução para o
problema, isto é, decodificar o cromossoma.
Uma vez que o cromossoma foi decodificado, o módulo de avaliação determina o quanto soluções são
boas ou ruins. Esses dois módulos, decodificador e avaliador, são as únicas partes do AG responsáveis por
entender o domínio do problema.
Um AG emprega uma população de cromossomas, executando, assim, uma busca de forma paralela.
Após a criação da população inicial (em geral, aleatória), tem inicio um processo iterativo de refinamento ou
evolução das soluções iniciais. O AG cria novas soluções através da combinação e refinamento das informações
dos cromossomas usando três operações: seleção, crossover e mutação. Essas operações produzem novas
soluções que formam uma nova população. Cada nova população é chamada de geração.
Durante a seleção, o AG escolhe os cromossomas, privilegiando aqueles com maiores aptidões para
permanecer e se multiplicar na população. Durante o crossover o AG utiliza as informações dos cromossomas
selecionados, formando outros cromossomas, enquanto que durante a mutação o AG busca eventualmente
melhorá-las.
Uma forma comum de seleção é uma onde cada cromossoma tem a probabilidade de permanecer na
próxima geração proporcional à sua aptidão (método da roleta). Cromossomas com maiores aptidões possuem
mais espaço na roleta e consequentemente possuem maiores chances de serem escolhidos para o cruzamento e a
mutação.
Durante o crossover, dois cromossomas basicamente trocam algumas de suas informações gene a gene.
Ou seja, o crossover permite a combinação dos elementos de uma solução com os de outra.
O operador de crossover recombina as informações, porém não é capaz de gerar diversidade numa
população, essa diversidade é obtida através do operador de mutação. Sua função é alterar o valor de um gene
por um outro valor qualquer no domínio da aplicação
A mutação permite explorar novas áreas a procura de melhores soluções.
Esses três operadores, seleção, crossover, e mutação, agem no refinamento das soluções e quando
combinados com os módulos de decodificação e avaliação, podem resolver uma vasta variedade de problemas.
- 26 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Figura 14: Ciclo Básico de Algoritmos Genéticos
A Figura 14 mostra o ciclo de um AG, para o problema da função de maximização f(x) = x2. Nesse caso
os cromossomas são palavras de 6 bits de comprimento. Inicialmente cria-se uma população inicial aleatória
(cromossoma A, B, C, e D), representados por palavras binárias. Essas palavras são decodificadas (binário →
inteiro) e em seguida avaliadas, conhecendo-se suas aptidões. Posteriormente esses cromossomas passam pelo
módulo de seleção, definindo-se então os pais que irão se reproduzir. Após a passagem dos cromossomas pais
pelos módulos de crossover e mutação, finaliza-se uma geração e o ciclo reinicia com a avaliação da aptidão
dessa nova população, parando apenas quando algum critério é alcançado (por exemplo: número máximo de
gerações).
AGs têm sido empregados com sucesso em numa variedade de problemas de busca e otimização
[HOLL75], [DASG97]. Trabalhos de AGs em aprendizado tem tradicionalmente sido classificados em uma das
2 aproximações gerais. A aproximação de Pitt [SMIT80] utiliza um AG de modo tradicional, a qual cada
entidade da população é um conjunto de regras representando uma solução completa para o problema de
aprendizado. Crossover e mutação são aplicados de modo usual para criar novas gerações a partir de uma
população. E, a aproximação de Michigan [HOLL86] que tem utilizado distintamente diferentes mecanismos
evolucionários. A população consiste de regras individuais, cada uma representando uma solução parcial para
toda a tarefa de aprendizado. Apenas através de cooperação com outras regras da população o problema é
resolvido.
Mais informações sobre Algoritmos Genéticos e sua base matemática podem ser encontrados em
[GOLD89], [HOLL92], [BELE91].
Modelagem de Algoritmos Genéticos para a Mineração de Dados
Os AGs têm sido empregados em mineração de dados para as tarefas de classificação e descrição de
registros de uma base de dados, além da seleção de atributos de bases de dados que melhor caracterizem o
objetivo da tarefa de KDD proposta [KIRA92], [KOLL96].
Na classificação de registros, os modelos de AGs geram regras que exprimem uma realidade do domínio
da aplicação. Essas regras são de fácil interpretação, o que incentiva o uso dessa técnica, Algoritmos Genéticos.
- 27 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
A Tabela 4 mostra sucintamente os principais trabalhos encontrados na literatura em mineração de dados
por algoritmos genéticos.
Tabela 4: Principais trabalhos de Algoritmos Genéticos em mineração de dados
Nome
Radcliffe
GA-MINER
Tarefas
Classificação e
Descoberta de
Padrões através de
regras explícitas
Smith
[SMIT80][SMIT84]
LS-1
Classificação
DeJong
[DEJO93]
GABIL
Greene
[GREE93]
[GREE94]
COGIN
Neri
[NERI95]
[GIOR94]]
REGAL
Classificação por
regras
Classificação por
regras
Classificação por
regras
Representação
Características
Utiliza descoberta de
Estruturada sem
conhecimento
cadeia de caracteres
direcionada, não
utilizando cláusulas
que são descrições
direcionada e
de subconjuntos da
refinamento de
base de dados
hipóteses utilizando
Subc = Clausula [ou
basicamente
Cláusula]
medidas estatísticas
Cláusula = Termo [e
Termo]
Termo = Valor do
atributo | intervalo
do atributo
Estruturada na
Manipula regras de
semântica do
produção
domínio do
problema
Aprendizado da
Binária utilizando
descrição de uma
apenas valores
única classe
discretos
Focaliza o problema
Atributos
de domínios de
codificados em
multi-classes
palavras binárias
Desempenho
As funções de
avaliação mostram
que o mecanismos
de avaliação geram
resultados
qualitativamente
similares
Utiliza lógica de
primeira ordem
Em outros trabalhos, [AUGI95], [NERI95], o AG tem a finalidade de descobrir descrições de classes
utilizando lógica de primeira ordem. Já em [ANGL97], [JANI93] destaca-se a criação de operadores genéticos
não convencionais para a tarefa de classificação. Em [IGLE96] pode-se encontrar uma comparação entre AG e
indução de regras no contexto de KDD.
GA-MINER é um sistema que pode ser utilizado para tarefas direcionadas de descoberta de
conhecimento, como também para as não direcionadas e, para refinamento de hipóteses. Em mineração de dados
não direcionada o ponto chave é que não é necessário se especificar o tipo de regra desejada. O usuário pode
perguntar coisas do tipo: “Diga-me alguma coisa interessante sobre meus dados”. Já em mineração de dados
direcionada, existe uma forte especificação que direciona o sistema. Uma pergunta específica nesse caso pode
ser: “Caracterize os clientes que mais consomem em minha empresa”. No caso de refinamento de hipóteses o
usuário informa uma hipótese, o sistema avalia, e se a evidência for verdadeira então ele busca refinar. Um
usuário pode conceitualmente dizer: “Eu acho que existe uma correlação positiva entre a venda de pêssegos e
creme: Eu estou certo?”.
Um outros trabalho de AG baseado em aprendizado é o LS-1 [SMIT80], [SMIT84], que apresenta uma
representação estruturada baseada na semântica do domínio do problema com operadores genéticos trabalhando
em diferentes níveis de granularidade, refletindo a semântica da representação. LS-1 utiliza a aproximação de
Pitt, cuja base de conhecimento do conjunto de produção de regras (população) é manipulado por operadores
genéticos e, em qualquer instante, a melhor regra dessa base é armazenada como hipótese corrente da solução da
tarefa de aprendizado. LS-1 age como uma máquina de estado finito, na qual as regras de produção, que
governam os estados de transição e sua resposta ao ambiente, são envolvidas por um algoritmo Genético.
GABIL [DEJO93] também utiliza a aproximação de Pitt para evoluir o conceito de descrição, o qual é
definido como uma coleção de possíveis sobreposições de regras de classificação, através da interação com o
ambiente. O lado esquerdo das regras de classificação consistem de conjunções de atributos (conjunto de
valores), enquanto o lado direito especifica a classe a qual a regra associará um registro que satisfaça o lado
esquerdo (condição). Apenas atributos discretos são utilizados e o conjunto de valores são codificados em forma
- 28 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
binária. O foco do trabalho está no aprendizado da descrição de uma única classe. Registros não cobertos por
nenhuma regra de produção do conceito descrito são ditos como não pertencentes ao conceito. Os problemas
frequentemente especificam aprendizados em multi-conceitos, onde mais de uma classe pode existir e, registros
podem ser cobertos por várias regras de produção conflitantes. O modelo construído baseado em conceito de
aprendizado é simples e possui uma arquitetura unificada com algumas qualidades importantes. Primeiro, o
sistema é robusto mesmo com um mínimo “bias”. Segundo, o sistema pode ser facilmente estendido para
incorporar formas tradicionais de “bias” encontrados em outros conceitos de sistemas de aprendizado.
Finalmente, a arquitetura do sistema encoraja a representação explícita dos “bias”, como resultado, provê uma
qualidade adicional: a habilidade de dinamicamente ajustar o sistema de “bias”. O conceito de descrição (função
de avaliação) é medido como o quadrado da porcentagem de registros corretamente classificados.
COGIN [GREE93], [GREE94] focaliza o problema de domínios de multi-classes através da competição
pelas tuplas do conjunto de exemplos, reduzindo sua complexidade. Utiliza a aproximação de Michigan no que
diz respeito a encorajar a população a trabalhar junta para resolver um problema de aprendizado, entretanto seu
mecanismo evolucionário é distinto da aproximação de Pitt. Cada regra é uma conjunção de atributos,
codificados em binário. Diferente de implementações de AG tradicionais, regras são escolhidas para
recombinação aleatoriamente. As novas regras criadas, juntas com a população de regras existentes, são então
ordenadas em função da sua aptidão e, são inseridas uma por uma ordenadamente na próxima geração da
população. As regras são inseridas desde que ainda existam registros não cobertos por regras inseridas
anteriormente. Quaisquer regras redundantes são excluídas. O tamanho da população muda dinamicamente de
acordo com o número de regras requeridas para cobrir todo o conjunto de registros. COGIN é um AG baseado
em sistemas indutivos que explora as convenções de indução dos exemplos. Sua função de avaliação é baseada
em entropia, modificada de acordo com a acurácia da classificação. São utilizados crossover de um ponto e
uniforme e, a recombinação é utilizada apenas no lado esquerdo da regra, enquanto que o lado direito associa a
classe com a maioria dos registros do conjunto de exemplos cobertos pela regra.
REGAL [NERI95] [GIOR94] utiliza uma aproximação baseada em abrangência para o aprendizado em
múltiplos conceitos, similar ao COGIN. Uma população de descrições conjuntivas para conceitos é mantida,
formando um conjunto redundante de soluções parciais e, todo o conceito da tarefa de indução é executada por
toda a população de regras. O sistema utiliza lógica de primeira ordem como representação da regra. Foram
utilizadas operadores de crossover de dois pontos e uniforme juntamente com operadores de generalização e
especialização.
GA/RULE [PEI 95] é um AG baseado em aprendizado indutivo combinado com um sistema de produção
de regras. Esse AG também é baseado na aproximação de Pitt, e seu foco é na descoberta de padrões através de
regras de classificação.
Tratando de seleção de atributos, pode-se dizer que uma seleção apropriada de atributos ajuda a facilitar a
tarefa de classificação, pois elimina dados ruidosos ou atributos não representativos que podem impedir o
reconhecimento do padrão. Mesmo quando alguns atributos possuem alguma informação utilizável, estes podem
reduzir a acurácia do classificador quando a quantidade de dados para treinamento é reduzida [TRUN79],
[FERR94].
Siedlecki e Skalanski tem aplicado algoritmos genéticos ao problema de seleção de atributos [SIED89].
No seu trabalho, o AG, executa a seleção de atributos combinado com um classificador KNN (k-nearestneighbors), o qual é usado para avaliar a performance de classificação para cada subconjunto de atributos
selecionados pelo AG. O AG mantém um vetor binário de atributos selecionados, onde cada bit representa um
atributo da base. Quando um bit está ativado, valor igual a 1, indica que o atributo correspondente participa na
classificação do KNN, caso contrário, ele é omitido. O AG procura por um vetor de seleção que possui um
mínimo de 1’s, de modo que a taxa de erro do classificador KNN permaneça abaixo de um valor fornecido
previamente pelo usuário.
Punch e outros e, Kelly e Davis expandiram o modelo de Siedlecki e Skalanski para o uso de AG em
seleção de atributos [PUNC93], [KELL91]. Ao invés de existir um vetor binário de atributos selecionados, o AG
manipula um vetor de pesos. Nesse vetor, cada atributo esta associado a um valor real discretizado. A meta do
AG é encontrar um vetor de pesos que minimize a taxa de erro do classificador KNN, ao mesmo tempo que
procura reduzir os valores dos pesos a zero.
5.2.3. Lógica Indutiva
Nessa seção é apresentada uma breve introdução sobre Lógica Indutiva. As referências citadas detalham
todos os aspectos e fundamentos dessa área.
Quando se procura aprendizado de grandes bancos de dados, a redução da complexidade é extremamente
importante. Dois extremos na construção do processo de KDD são identificados: o primeiro está na escolha de
uma linguagem de hipóteses muito simples e, o extremo oposto é selecionar um pequeno conjunto de dados.
- 29 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Criando-se uma aproximação multi-estratégica, permite-se incluir a maioria das vantagens e excluir grande parte
das desvantagens. Algoritmos simples de aprendizado detectam hierarquias que são usadas para estruturar o
espaço de hipóteses para um algoritmo de aprendizado mais complexo. Essas características podem ser obtidas
combinando lógica indutiva diretamente com o sistema de gerenciamento de base de dados relacionais
[MORI97].
Programação por Lógica Indutiva (LI) [MUGG92], [RAED92], [LAVR94], pode ser vista como uma
máquina de aprendizado em lógica de primeira ordem, onde as relações são apresentadas no contexto de banco
de dados dedutivos [ULLM88]. LI é relevante para a descoberta de conhecimento em base de dados relacionais e
dedutivas, pois pode descrever padrões envolvendo mais de uma relação.
Desenvolvimentos em aprendizado indutivo focam no problema da construção de uma definição lógica
para uma relação [QUIN90] através do conhecimento de tuplas que pertençam ou não a essa relação. Desse
modo novas relações podem ser especificadas por um número menor de tuplas, as quais são então generalizadas
para induzir uma definição lógica. Alguns sistemas recentes utilizando essa técnica são FOIL [QUIN90] e
LINUS [LAVR91], que são capazes de manipular ruídos e atributos contínuos.
5.2.4. Métodos Estatísticos
Analisando os métodos estatísticos, nota-se um foco no trabalho de interpretabilidade como formulações
alternativas derivadas do modelo linear. A comunidade estatística está geralmente interessada em interpretar seus
modelos, e possivelmente sacrificando-os de alguma performance para ser capaz de extrair significado de sua
estrutura. Daí surgem as teorias da probabilidade penalizada e formulações Bayesianas [SULL86]. Existem
diversos métodos estatísticos, alguns clássicos e outros mais recentes, e todos assumem a existência de uma
variável (atributo) resposta, y, e uma coleção de variáveis preditoras, x = (x1, x2, ... xj), além da disponibilidade
de dados para treinamento. A meta é encontrar um modelo para prever y de x que funcione bem quando aplicado
a um novo dado. [FRIED95] provê um resumo dos principais modelos aplicados à todas as técnicas de indução.
[WEIS91] descreve técnicas para tarefa de classificação utilizando aprendizado de máquina (machine learning),
incluindo análise de discriminante linear, árvores de decisão, redes neurais e sistemas especialistas.
A seguir são abordados de maneira concisa alguns dos principais métodos estatísticos. As formulações
matemáticas e alguns conceitos não serão demonstrados, porém estão a disposição nas referências citadas.
Classificadores Bayesianos
O princípio básico desse método está fundamentado na teoria da probabilidade bayesiana [SHEN 93].
Assumindo-se a Equação 1 , que estabelece:
Equação 1
P(AB|C) = P(A|C)P(B|AC) = P(B|C)P(A|BC)
Onde P refere-se a probabilidade de um evento. A, B, e C são subconjuntos do espaço de amostras
(universo do problema, ou seja, a base de dados) e a notação P(AB|C) significa “a probabilidade dos eventos A e
B acontecerem dado que o evento C acontece”. De modo análogo P(A|C) significa “a probabilidade do evento A
acontecer dado que C acontece”.
Desse modo, sejam A1, ..., Ak atributos, [a1, ..., ak] uma tupla do banco de dados, e C uma classe a ser
prevista. A previsão ótima é uma classe de valor c tal que:
Equação 2
P(C = c | A1 = a1 ∩ ... ∩ Ak = ak)
é máxima.
Transformado a Equação 2 através da regra de bayes, que estabelece:
Equação 3
P(A|B) = P(B|A) * P(A) / P(B), tem-se:
Equação 4
P(A1 = a1 ∩ ... ∩ Ak = ak | C = c) * P(C = c) / P(A1 = a1 ∩ ... ∩ Ak = ak)
- 30 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Pode-se perceber da Equação 4 que:
• P(C = c) é fácil de estimar através do conjunto de treinamento, pois simplesmente é a razão do
número de vezes em que c ocorre pelo número de tuplas do conjunto de treinamento;
• P(A1 = a1 ∩ ... ∩ Ak = ak) é irrelevante, pois é o mesmo para todos os c, já que independe da
classe a que a tupla pertence, nesse caso uma constante do processo.
Resta então descobrir como calcular a parcela referente a Equação 5:
Equação 5
• P(A1 = a1 ∩ ... ∩ Ak = ak | C = c)
Assumi-se que os atributos são independentes, nesse caso a Equação 5 transforma-se em:
Equação 6
P(A1 = a1| C = c) * P(A2 = a2| C = c) * ... P(Ak = ak| C = c)
Onde cada termo da Equação 6 pode ser estimado como:
Equação 7
P(Aj = aj| C = c) = Contador(Aj = aj| C = c) / Contador(C = c)
Contador é uma função que conta o número de vezes, ou a frequência, que um dado evento ocorre na base
de dados. A Tabela 5 mostra um exemplo [WEI 98] de um banco de dados que servirá como entrada para
extração de conhecimento utilizando classificadores bayesianos.
Tabela 5: Exemplo de entrada para Classificadores Bayesianos
DIA
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D12
D12
D13
D14
APARÊNCIA
Ensolarado
Ensolarado
Nublado
Chuvoso
Chuvoso
Chuvoso
Nublado
Ensolarado
Ensolarado
Chuvoso
Ensolarado
Nublado
Nublado
Chuvoso
TEMPERATURA
Quente
Quente
Quente
Moderado
Fresco
Fresco
Fresco
Moderado
Fresco
Moderado
Moderado
Moderado
Quente
Moderado
UMIDADE
Alta
Alta
Alta
Alta
Normal
Normal
Normal
Alta
Normal
Normal
Normal
Alta
Normal
Alta
VENTO
Fraco
Forte
Fraco
Fraco
Fraco
Forte
Forte
Fraco
Fraco
Fraco
Forte
Forte
Fraco
Forte
JOGAR TÊNIS
Não
Não
Sim
Sim
Sim
Não
Sim
Não
Sim
Sim
Sim
Sim
Sim
Não
Através da Tabela 5 pode-se perguntar:
•Qual a probabilidade de se jogar tênis dado que o dia está ensolarado, com temperatura quente, umidade
alta e vento fraco? Em termos probabilísticos essa pergunta equivale a P(JOGAR TÊNIS = Sim |
[Ensolarado, Quente, Alta, Fraco])
•Qual a probabilidade de NÃO se jogar tênis dado que o dia está ensolarado, com temperatura quente,
umidade alta e vento fraco? Em termos probabilísticos essa pergunta equivale a P(JOGAR TÊNIS =
Não | [Ensolarado, Quente, Alta, Fraco])
Calculando-se cada evento por meio da Equação 7, tem-se:
Tabela 6: Cálculo das probabilidades dos dados da Tabela 5 utilizando Classificadores Bayesianos
PERGUNTA
P(JOGAR = Sim)
P(JOGAR = Não)
P(APARÊNCIA = Ensolarado | JOGAR = Sim)
P(APARÊNCIA = Ensolarado | JOGAR = Não)
P(TEMPERATURA = Quente | JOGAR = Sim)
PROBABILIDADE
9/14
5/14
2/9
3/5
2/9
- 31 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
P(TEMPERATURA = Quente | JOGAR = Não)
P(UMIDADE = Alta | JOGAR = Sim)
P(UMIDADE = Alta | JOGAR = Não)
P(VENTO = Fraco | JOGAR = Sim)
P(VENTO = Fraco | JOGAR = Não)
2/5
3/9
4/5
6/9
2/5
Uma vez que as probabilidades de cada termo foram calculadas, pode-se estimar através da Equação 4
que:
•P(JOGAR TÊNIS = Sim | [Ensolarado, Quente, Alta, Fraco]) = [(2/9) * (2/9) * (3/9)*(6/9)] * (9/14) /
[(5/14) * (4/14) * (7/14) * (8/14)] = (108/6561) * (9/14) / (1120/38416) = 0,3630 = 36,30%
•P(JOGAR TÊNIS = Não | [Ensolarado, Quente, Alta, Fraco]) = [(3/5) * (2/5) * (4/5) * (2/5)] * (5/14) /
[(5/14) * (4/14) * (7/14) * (8/14)] = (48/625) * (5/14) / (1120/38416) = 0,9498 = 94,98%
Esse tipo de método é bastante utilizado por sua facilidade de interpretação, em [CHEE96] apresenta uma
exposição detalhada de um modelo utilizando métodos bayesianos, chamado AutoClass.
Redes Bayesianas
Muitas técnicas de KDD baseiam-se apenas nos dados. Em contraste, o conhecimento codificado em
sistemas especialistas, geralmente, baseia-se unicamente em um especialista. Uma representação de
conhecimento utilizando uma arquitetura baseada em Rede Bayesiana (RB) combina o melhor das duas áreas, ou
seja, o conhecimento do domínio do especialista e a estatística dos dados [HECK96], [ALIF94].
O processo de descoberta de conhecimento utilizando RBs segue os seguintes passos. Primeiro,
codifica-se o conhecimento existente de um especialista ou um conjunto de especialista numa RB.
Posteriormente, utiliza-se uma base de dados para atualizar esse conhecimento, criando uma ou mais novas RBs.
O resultado inclui um refinamento do conhecimento original do especialista e algumas vezes da identificação de
novos relacionamentos.
A descoberta de conhecimento utilizando RB é similar a descoberta por Redes Neurais Artificiais. O
processo empregado em RBs, entretanto, possui duas importantes vantagens. Uma, pode-se facilmente codificar
conhecimento de um especialista em RBs e usar esse conhecimento para aumentar a eficiência e a qualidade do
conhecimento descoberto. Dois, os nós e arcos em uma RB treinada geralmente correspondem a distinções de
variáveis e relacionamentos causais. Consequentemente, pode-se mais facilmente interpretar e entender o
conhecimento codificado na representação. A interpretação de uma probabilidade como uma frequência numa
série de repetições de experimentos é tradicionalmente referida como sendo uma interpretação objetiva. Em
contraste, a interpretação de uma probabilidade como um grau de certeza é chamado de subjetiva, ou
interpretação bayesiana. Nessa última interpretação, a probabilidade ou certeza geralmente dependerá do estado
de conhecimento da pessoa que provê aquela probabilidade. Essa probabilidade pode ser escrita como P(e|ξ),
significando “probabilidade de e dado ξ”. O símbolo ξ representa o estado de conhecimento da pessoa que provê
a probabilidade e um evento. Uma variável representa uma distinção sobre o mundo. Ela toma valores de uma
coleção de estados mutuamente exclusivos ou coletivamente exaustivos, onde cada estado corresponde a algum
evento. Uma RB é um modelo para algum problema de domínio ou universo, o qual consiste de um conjunto de
variáveis. Uma RB num determinado domínio U representa uma função distribuição de probabilidade, P(U|ξ).
Para ilustrar essa representação, considere o domínio para o problema de uma carro que não dá partida
[HECK96]. O primeiro passo na construção de uma RB é decidir quais são as variáveis e estados do modelo.
Uma possível escolha de variáveis para esse domínio é “bateria” com estados bom e ruim, “gasolina” com
estados não vazio e vazio, “manômetro” com estados não vazio e vazio, “ligado” com os estados sim e não, e
“partida” com os estados sim e não.
O segundo passo é construir um grafo acíclico que codifica asserções de independência condicional.
Dado um domínio U = {x1, x2, ..., xn} e uma ordem nas variáveis (x1, x2, ..., xn), pode-se gerar o grafo da função
distribuição de probabilidade de U.
- 32 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Bateria
Gasolina
Mamômetro
Partida
Ligado
Figura 15: Exemplo de grafo de independência condicional de Redes Bayesianas
A Figura 15 mostra a estrutura em forma de grafo de independência condicional, nele os arcos são
direcionados da causa para o efeito.
O passo final na construção de um RB é avaliar as distribuições locais, ou seja, a distribuição de
probabilidade para cada estado do domínio. O problema de computar as probabilidades de interesse da função
distribuição de probabilidades é chamada inferência probabilística. Dada qualquer RB, pode-se utilizar a função
da distribuição da probabilidade determinada pela rede para fazer a inferência probabilística.
Transformando as variáveis em atributos do banco de dados e os estados como seus possíveis valores,
pode-se então utilizar RB para extrair independências condicionais associadas com as asserções de que um banco
de dados é um conjunto de exemplos aleatórios para a estrutura x → y.
Maiores detalhes sobre RB e métodos de aprendizados podem ser encontrados em [BUNT95] que é uma
guia bem detalhado sobre RB; [CHAR91] apresenta uma introdução de fácil leitura; e [ SPIE93] apresenta
discussões de métodos de aprendizado por RBs que trabalham em domínios apenas com variáveis discretas.
Árvores de decisão
Uma árvore de decisão é uma árvore com uma estrutura onde cada nó interno é rotulado com um dos
atributos preditivos; cada seta que sai do nó interno é rotulado com valores dos atributos de cada nó; e todo nó
folha é rotulado com uma classe (valor do atributo objetivo).
País
Alemanha
Inglaterra
França
N
S
Idade
≤ 25
S
> 25
N
Figura 16: Uma árvore de decisão construída com os dados da Tabela 2
Por exemplo, a Figura 16 possui uma possível árvore de decisão para o exemplo da Tabela 2,. Cada
caminho da árvore pode ser convertido numa regra. O nó interno e os valores das setas são convertidos no
antecedente da regra (parte SE); o nó folha é convertido no consequente da regra (Parte ENTÃO). Uma árvore de
decisão classifica uma nova tupla de maneira top-down. Inicialmente a nova tupla é passada para o nó raiz da
árvore, o qual testa que valor a tupla tem no atributo rotulado no nó. Depois a tupla é testada nos nós inferiores
seguindo o caminho das setas em função do valor da tupla no atributo rotulado no nó corrente. Esse processo é
recursivamente repetido até que a tupla chegue à folha. A tupla <”Masculino”, “França”, “23”, ?>, identifica um
cliente. A ? representa o valor que o atributo objetivo, nesse exemplo particular, o atributo COMPRAR, deverá
ter. Esse atributo informa se o cliente compra ou não o novo livro. Ao percorrer essa tupla na árvore da Figura
16, pode-se classificá-la como “Sim” no atributo COMPRAR. O nó raiz da árvore representa o atributo PAÍS,
- 33 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
onde na tupla consta “França”, direcionando então a classificação para o nó representando o atributo IDADE.
Verificando a tupla, esse atributo possui o valor “23”, que é menor ou igual a 25, novamente o algoritmo
direciona a classificação do atributo COMPRAR, sendo que, dessa vez para o nó folha rotulado por “S”, que
significa “Sim”.
Uma árvore de decisão é geralmente construída de maneira top-down, utilizando um algoritmo baseado
na aproximação “dividir para conquistar” [QUIN93]. Inicialmente todas as tuplas que estão sendo mineradas são
associadas ao nó raiz da árvore. Então o algoritmo seleciona uma partição de atributos e divide o conjunto de
tuplas no nó raiz de acordo com o valor do atributo selecionado. O objetivo desse processo é separar as classes
para que tuplas de classes distintas tendam a ser associadas a diferentes partições. Esse processo é
recursivamente aplicado a subconjuntos de tuplas criados pelas partições, produzindo subconjuntos de dados
cada vez menores, até que um critério de parada seja satisfeito. Discussões sobre algoritmos de poda de uma
árvore de decisão podem ser encontrados nas próximas seções e em [AGRA92], [ESPO95], através dos quais
busca-se minimizar o tamanho da árvore, sem prejudicar a qualidade da solução.
As principais vantagens de algoritmos baseados em árvores de decisão são sua eficiência computacional
e simplicidade. Devido ao uso da aproximação “dividir para conquistar”, entretanto essa aproximação também
possui desvantagem. Por exemplo, uma condição envolvendo um atributo que será incluído em todas as regras
descobertas. Essa situação possivelmente produz regras com informações irrelevantes, além de desperdício de
processamento. A seguir são apresentados dois dos principais algoritmos baseados em árvores de decisão.
1.1.1.1.1.
Indução de Regras
Esse tipo de algoritmo é baseado em duas noções chaves: estado e operador. Um estado é a descrição da
situação de um problema num dado instante, e um operador é um procedimento o qual transforma um estado em
outro. Resolver um problema utilizando essa algoritmo consiste em encontrar uma sequência de operadores os
quais transformam um estado inicial num estado objetivo, ou estado meta, [ PEAR85], [WINS92].
Nesse contexto, um estado corresponde a uma regra candidata e os operadores correspondem a operações
de generalização e/ou especialização que transformam uma regra candidata em outra [MICH83], [HOLS94]. A
escolha do operador que será aplicado a uma dada regra candidata é determinada por uma função heurística que
avalia a eficácia de cada operador com respeito a cada regra candidata.
Exemplos de operações de especialização e generalização utilizando indução de regras estão na Figura 17.
Essa figura refere-se ao exemplo de classificação mostrado na Tabela 2. A parte (a) mostra que a regra pode ser
especializada pela conjunção de “IDADE ≤ 25” ao antecedente. Note que a nova regra é uma especialização da
original porque o antecedente da regra é satisfeito por um número menor de tuplas no banco de dados. A regra
original acerta 5 registros, enquanto a regra especializada acerta apenas 2.
Na generalização a idéia é estender o intervalo de valores cobertos pelo atributo IDADE, relaxando-o de
modo que o antecedente da regra satisfaça um número maior de tuplas na base de dados, nesse caso passou de 2
para 3 registros.
Regra original: Se (PAÍS = França) então COMPRAR = Sim
Regra especializada: Se (PAÍS = França e IDADE ≤ 25) então COMPRAR = Sim
(a) Especializando uma regra pela adição da conjunção em seu antecedente
Regra original: Se (PAÍS = França e IDADE ≤ 25) então COMPRAR = Sim
Regra generalizada: Se (PAÍS = França e IDADE ≤ 30) então COMPRAR = Sim
(b) Generalizando uma regra relaxando uma condição no antecedente
Figura 17: Exemplo da operações de especialização e generalização em indução de regras
A principal vantagem dessa técnica é que geralmente ela produz conhecimento compreensível
[LANG95]. Tipicamente, o conhecimento descoberto está na forma de regras “SE-ENTÃO” como mostrado na
Figura 17, desse modo ele pode ser facilmente entendido e validado por um usuário.
1.1.1.1.2.
Algoritmo ID3
Em termos gerais um algoritmo para construção de uma árvore de decisão pode seguir apenas 3 passos.
•Dado um nó na árvore e todas as tuplas do conjunto de treinamento S;
•Selecione o melhor atributo A para esse nó;
•Para cada valor vi de A, cresça uma sub-árvore (ou uma folha) sob o nó.
- 34 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
A definição do melhor atributo, segue o seguinte critério:
Seja S todas as tuplas do conjunto de treinamento, A um atributo, s uma tupla, v um valor, e c o número
de classes, defini-se.
Equação 8
Sv = {s ∈ S | A(s) = v}
A Equação 8 representa o conjunto de todas as tuplas do conjunto de treinamento que possuem no
atributo A, o valor v. Defini-se a entropia de S, como:
Equação 9
Entropia(S) = ∑ i=1, ..., c -pi * log(pi)
Onde pi é a probabilidade de ocorrência de uma determinada classe. Desse modo pode-se definir o ganho
da escolha de um atributo A com respeito a S como:
Equação 10
Ganho(S, A) = Entropia(S) - ∑ v ∈ valores(A) (|Sv| / |S|) * Entropia(Sv)
O algoritmo ID3 recebe como entrada um conjunto de tuplas para treinamento, chamado Exemplos, um
atributo objetivo, Meta, e um conjunto de atributos preditivos, Atributos.
Baseando-se nas definições anteriores, o algoritmo caracteriza-se nas seguintes etapas:
ID3(Exemplos, Meta, Atributos) – é a chamada para a execução do algoritmo com seus argumentos prédefinidos anteriormente. Como já mencionado antes, esse algoritmo é recursivo, ou seja, seu procedimento será
executado n vezes até que alguma condição seja satisfeita. O texto que segue em itálico é um comentário
resumido sobre a execução de cada etapa do procedimento.
•Criar uma raiz para a árvore – Cria um nó sempre que o procedimento é executado, esse nó será um nó
corrente;
•Se o conjunto de Exemplos são positivos, retorna a raiz o rótulo Sim; ou Não, caso negativo – Positivo
significa que todas as tuplas que estão no conjunto de exemplos pertencem a uma mesma classe,
negativo, caso contrário;
•Se o conjunto de Atributos está vazio, retorna a raiz o valor da classe mais comum no conjunto de
Exemplos – Analisa se ainda existem atributos não utilizados;
•Seleciona o melhor atributo A do conjunto de Atributos, e para cada valor vi de A, executa: - o melhor
atributo é selecionado segundo a Equação 10 e seu rótulo é colocado no nó raiz, ou nó corrente;
• Adiciona uma nova seta para A = vi e cria um conjunto E’ com todas as tuplas onde o
atributo A = vi – Cria-se links do nó raiz com todos os possíveis valores do atributo A
para outros nós;
• Se o conjunto E’ for um conjunto vazio, então adicione um nó folha, senão adicione o
nó ID3(E’, Meta, Atributos - {A}) – Será criada uma nova sub-árvore. Essa é a
chamada recursiva do procedimento. Nela pode-se notar que os argumentos de
entrada são sempre diferentes para cada chamada;
•Retorne a raiz – Quando uma sub-árvore chega a um nó folha, o procedimento retorna para o nó raiz,
continuando sua execução até que toda a árvore seja construída.
Além do algoritmo ID3, podem ser encontrados na literatura os algoritmos CN2 [CLAR91, de aprendizado
para um conjunto de regras de classificação; e FOIDL e CDL3, que utilizam aprendizado com listas de decisão
de primeira ordem [SHEN 92].
[KLOE94] apresenta EXPLORA, uma ferramenta interativa de análises estatísticas para descoberta em
banco de dados. Nela um número de padrões são definidos permitindo-se selecionar os padrões mais apropriados
para a análise do problema proposto. Subconjuntos da base de dados são selecionados usando construtores de
lógica proposicional, consistindo de conjunções de testes condicionais nos atributos e valores. A avaliação de
bons padrões é executado através de testes de significado estatístico, e a busca no espaço de padrões é executado
usando uma busca por grafo, combinados com filtros de redundância que asseguram que apenas regras
verdadeiras e não redundantes são gerados.
FORTY-NINER [ZYTK91], [ZYTK93] procura por regularidades em bases de dados, ou seja, um padrão
e os limites ao qual ele se aplica. A representação dos limites é um conjunto de valores de um atributo, e o
padrão é uma função (uma equação relacionando os atributos) ou uma tabela de contingência (relacionando
causa e efeito). O algoritmo de busca inicialmente concentra-se nas regularidades entre pares de atributos em
subconjuntos do banco de dados e permite a interação do usuário para aprofundar essa busca, refinando assim as
regularidades descobertas.
- 35 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
6.
REDES NEURAIS
Este capítulo define os principais conceitos sobre as Redes Neurais Artificiais e suas
aplicações. Inicialmente, faz-se um levantamento da história das RNAs. Em seguida, são
apresentados: uma descrição do funcionamento dos neurônios, as topologias de redes existentes e os
tipos de treinamento utilizados. Por fim, destaca-se as RNAs multi-camadas e o algoritmo de
retropropagação.
6.1. FUNDAMENTOS DAS REDES NEURAIS ARTIFICIAIS
6.1.1. Histórico
Os primeiros conceitos de máquinas baseadas no comportamento das células nervosas biológicas
surgiram no início da década de 40 . Em 1943, Warren McCulloch e Walter Pitts apresentaram a primeira
discussão sofisticada sobre "neuro-logical network" . Em 1947 eles publicaram o segundo estudo, entitulado
"How we know universals" . A partir destas idéias, surgiu o movimento intelectual chamado "Cybernetics" , o
qual tentou combinar conceitos de biologia, psicologia, engenharia e matemática. A década terminou com a
publicação do livro de Donald Hebb "The Organization of Behavior".
Após a era "Cybernetics" ter aberto a perspectiva de se construir máquinas baseadas no conhecimento,
surgiram, no início da década de 50, os primeiros protótipos neste campo, com arquiteturas específicas para
desempenhar tarefas determinadas. Contudo, tendo em vista o fato de que os animais podiam aprender a fazer
muitas coisas para as quais eles não tinham sido "construídos" para fazer, passou-se a ter como meta a
construção de máquinas que fossem capazes de aprender . Com isso, a década de 50 presenciou o surgimento de
muitos sistemas que aprendiam baseados em reforço 1 e em formas simples de aprendizado, sendo que o primeiro
deles, provavelmente, foi feito por Minsky em 1951 . No final dos anos 50, o campo de pesquisa em redes
neurais ficou virtualmente dormente, sem nenhuma descoberta de peso na área, enquanto que importantes
avanços tinham sido alcançados em sistemas especialistas.
O interesse nas redes neurais ressurgiu, dramaticamente, em 1962 com a publicação do livro de Frank
Rosenblatt "Principles of Neurodynamics" . Neste livro Rosenblatt definiu máquinas denominadas de
"perceptrons", e provou muitas teorias sobre as mesmas. Uma onda de entusiasmo dominou a área e muitos
pesquisadores passaram a crer que os "perceptrons" seriam a base para uma inteligência artificial. Contudo, esta
ilusão foi logo desaparecendo, pois constatou-se que essas redes falhavam na solução de alguns problemas
simples, similares a outros em que elas tinham sucesso. O rápido entusiasmo foi sepultado em 1969 com o livro
de Marvin Minsky e Seymour Papert chamado "Perceptrons" , onde eles provaram que as redes neurais de uma
única camada de Rosenblatt eram incapazes de resolver alguns problemas elementares como o do ou-exclusivo.
O prestígio e o brilhantismo de Minsky deram grande credibilidade ao seu livro, levando à quase totalidade da
comunidade científica a abandonar as pesquisas na área por um longo período.
A década de 70 e o início da de 80 foram marcadas por um silêncio quase geral na área. Alguns poucos
pesquisadores como Grossberg, Kohonen, Anderson, Hopfield, Marr, von der Malsburg e Copper continuaram
pesquisando e desenvolveram trabalhos interessantes, principalmente nas áreas de memória associativa
endereçável pelo conteúdo, sistema visual e reformulações do problema de aprendizado das redes . Em 1982,
Hopfield deu uma importante contribuição com a introdução da função energia e pela enfatização da noção de
memórias como atratores dinamicamente estáveis . Entretanto, talvez a maior influência desta época ainda tenha
vindo dos "perceptrons" de Rosenblatt pois, baseados em suas teorias, vários pesquisadores foram
desenvolvendo algoritmos para o ajustes dos pesos das redes neurais multi-camada, culminando com o
surgimento do algoritmo de "Backpropagation" (retropropagação). O "Backpropagation" parece ter sido
primeiramente proposto por Werbos em 1974 e independentemente redescoberto por volta de 1985 por
Rumelhart, Hinton e Williams , tendo Parker e Le Cun também propostos algoritmos semelhantes.
Após a descoberta do "Backpropagation" o interesse na área voltou a crescer, desta vez de forma mais
madura e consciente. Nos últimos anos, toda a teoria de redes neurais tem sido transformada em aplicações,
sendo que novas corporações dedicadas à comercialização desta tecnologia têm aparecido. O crescimento nas
atividades de pesquisa tem sido astronômico e novas áreas de atuação das redes neurais têm surgido, tais como:
compressão de imagem e voz , reconhecimento de caracteres manuscritos , diagnósticos médicos , conservação
de energia e previsões de séries temporais, em especial séries econômicas.
1
Reforço - Idéia de reforçar ações que tenham sido feitas no passado com sucesso. Conceito, ainda hoje, popular
em psicologia do comportamento.
- 36 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
6.1.2. O Neurônio Artificial
O cérebro humano é composto por mais ou menos 10 11 neurônios de diversos tipos diferentes. A figura
2.1 mostra o esquema de um neurônio comum.
Neurônio
Artificial
Neurônio
Biológico
Dendritos
Sinapses
Pesos
Axônio
w1
Propagação
Ativação
w2
Corpo
Somático
w3
Figura 18: -Exemplo de um neurônio biológico comum
O núcleo da célula está localizado no corpo da mesma, sendo este último também chamado de soma.
Conectados ao corpo da célula estão as fibras nervosas com estruturas similares a raízes, chamadas dendritos.
Estendendo-se do corpo da célula existe uma única fibra nervosa mais grossa chamada axônio, da qual surgem
ramificações e sub-ramificações. No fim destas ramificações estão os pontos de transmissão para os outros
neurônios, chamados de junções sinápticas ou sinapses. Os pontos de recepção onde as sinapses vão se conectar
aos outros neurônios podem ser os dendritos ou mesmo o corpo da célula. O axônio de um neurônio típico
possui algumas centenas de sinapses que irão se conectar com outros neurônios.
A transmissão do sinal de uma célula para outra é um complexo processo químico, no qual substâncias
específicas são liberadas pelo neurônio transmissor. O efeito é um aumento ou uma queda no potencial elétrico
no corpo da célula receptora. Se este potencial alcançar o limite de ativação da célula, um pulso ou uma ação
potencial de potência e duração fixa é enviada através do axônio. Diz-se então que o neurônio está ativo.
O neurônio artificial foi projetado para imitar as características de primeira ordem de um neurônio
biológico. Essencialmente, um conjunto de entradas são aplicadas ao neurônio artificial, cada uma representando
a saída de outros neurônios (Figura 19). Cada entrada é multiplicada por um peso correspondente (Wij), gerando
entradas ponderadas, de forma análoga à força das sinapses. Em seguida todas estas entradas ponderadas são
somadas, obtendo-se um valor NET que será comparado com o valor limite para ativação do neurônio (F). Caso
este valor alcance o valor limite de ativação do neurônio, ele se ativará, caso contrário ele ficará inativo. A figura
2.2 mostra o modelo que implementa esta idéia.
Wi1
Wi2
Wi3
Σ
ΝΕΤ
F
SAÍDA=F(NET)
NEURÔNIO ARTIFICIAL
Figura 19: Diagrama esquemático de um neurônio artificial
- 37 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
6.1.3. Funções de Ativação
A função de ativação F é a que processa o sinal NET para produzir a saída final do neurônio, SAÍDA.
Esta função pode ter várias formas: uma simples função linear; uma função limiar (função degrau); ou ainda uma
função que simule mais precisamente as características não lineares do neurônio biológico. No caso de F ser
uma função linear, a saída do neurônio é dada por:
Equação 11
SAÍDA=K*(NET)
onde K é uma constante. Caso F seja uma função limiar, a saída seria:
Equação 12
SAÍDA=1
Se NET > T
SAÍDA=0
Caso contrário
onde T é o valor de limiar do neurônio artificial (constante). No caso de se querer imitar com maior precisão os
neurônios biológicos, usa-se funções não lineares, chamadas funções "squashing". Elas caracterizam-se por não
deixarem a SAÍDA exceder certos valores limites, os quais, em geral, são menores que os valores de NET. A
função "squashing" mais usada é a função logística ou sigmóide (Figura 20 a), a qual é representada
matematicamente por F(x)=1/(1+e -x). Adequando-a ao neurônio artificial tem-se:
Equação 13
SAÍDA=1/(1+e-NET)
Pode-se pensar na função de ativação como definindo um ganho para o neurônio artificial, fazendo uma
analogia a sistemas eletrônicos analógicos. Este ganho é calculado encontrando-se a razão entre a variação da
saída SAÍDA e a variação da entrada NET. Este ganho é a inclinação da curva para um nível de excitação
específico, podendo variar desde um valor baixo para grandes excitações negativa, passando por valores altos
para excitação zero, até voltar a cair quando a excitação se torna grande e positiva (Figura 20). Em 1973
Grossberg descobriu que esta característica de ganho não linear resolvia o problema do dilema da saturação com
ruído. Neste dilema, Grossberg questionava como a mesma rede poderia manipular tanto sinais pequenos como
grandes. Pequenos sinais necessitariam de um alto ganho através da rede para produzir saídas usáveis, exigindo
um grande número de estágios de alto ganho. Contudo, estes estágios poderiam saturar a saída, amplificando o
ruído (variáveis randômicas) que está presente em qualquer rede criada. Para sinais de entrada com valores altos,
os estágios de alto ganho também iriam saturar a saída, eliminando qualquer saída usável. A região central de
alto ganho da função sigmóide resolve este problema do processamento de pequenos sinais, enquanto que suas
regiões de ganho decrescente nos extremos negativo e positivo são adequadas a grandes excitações.
F(netj)
F(netj)
netj
Degrau
netj
Pseudo-Linear
netj
Sigmoid
- 38 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Figura 20: (a) Função sigmóide típica; (b) Função tangente hiperbólica típica
Outra função de ativação "squashing" bastante usada é a tangente hiperbólica (Figura 20 b). Ela possui
uma forma similar a da sigmóide e é frequentemente usada por biólogos para o modelo matemático de ativação
das células nervosas. Como função de ativação dos neurônios artificiais a função tem a forma:
Equação 14
SAÍDA = tanh(NET)
Apesar da forma semelhante a da sigmóide, a tangente hiperbólica possui valores de SAÍDA bipolares,
característica que é benéfica para certos tipos de RNAs .
É interessante ressaltar que este modelo simples de neurônio artificial ignora diversas características do
neurônio natural, tais como a não consideração dos atrasos de tempo que afetam a dinâmica do sistema - as
entradas produzem saídas imediatas - e a não inclusão dos efeitos de sincronismo ou de modulação de frequência
- característica que alguns pesquisadores acham de fundamental importância. Apesar destas limitações, as RNAs
formadas por simples neurônios artificiais possuem atributos semelhantes aos do sistema biológico, como a
capacidade de aprendizado e generalização, podendo-se dizer que a essência do funcionamento do neurônio
natural foi absorvida.
6.1.4. Topologia das Redes Neurais Artificiais
As várias topologias de redes neurais estão divididas, basicamente, em duas classes:
Não-Recorrentes
Recorrentes
As RNAs não-recorrentes são aquelas que não possuem realimentação de suas saídas para suas entradas e
por isso são também ditas "sem memória". A estrutura das RNAs ditas não-recorrentes é em camadas, podendo
estas RNAs serem formadas por uma (RNA de camada única) ou mais camadas (RNA multi-camada). Redes
neurais multi-camadas contêm um conjunto de neurônios de entrada, uma camada de saída e uma ou mais
camadas escondidas. A entrada não é considerada uma camada da rede, pelo fato de apenas distribuir os padrões
, . A camada com os neurônios que fornecem a saída da rede é chamada camada de saída. As camadas que não
possuem ligações diretas nem com a entrada, nem com a saída são chamadas de camadas escondidas. Não
existem conexões ligando um neurônio de uma camada a outro de uma camada prévia, nem a um neurônio da
mesma camada (Figura 21). As RNAs de uma camada, também chamadas de "perceptrons" , por possuírem um
espectro de representações limitado, não serão tratadas neste trabalho. As RNAs multi-camadas, por suprirem as
deficiências das redes de uma única camada, são utilizadas neste trabalho e serão estudadas com mais detalhes
na seção 2..2 e no capítulo 4.
CAMADA
CAMADA
ENTRADAS
SAÍDA
DE SAÍDA
ESCONDIDA
Figura 21: Exemplo de uma RNA não recorrente
As RNAs recorrentes são redes mais gerais que contêm realimentação das saídas para as entradas, sendo
suas saídas determinadas pelas entradas atuais e pelas saídas anteriores. Além disso, suas estruturas não são
- 39 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
obrigatoriamente organizadas em camadas e quando são, estas redes podem possuir interligações entre neurônios
da mesma camada e entre camadas não consecutivas, gerando interconexões bem mais complexas que as RNAs
não-recorrentes (Figura 22)
ENTRADAS
SAÍDAS
Figura 22: Exemplo de uma RNA recorrente
As RNAs recorrentes, também chamadas de RNAs com memória por possuírem realimentação, respondem
a estímulos dinamicamente, isto é, após aplicar uma nova entrada, a saída é calculada e então realimentada para
modificar a entrada. Para as redes estáveis, este processo é repetido várias vezes, produzindo pequenas mudanças
nas saídas, até estas ficarem constantes. Todavia, as RNAs recorrentes nem sempre são estáveis, mesmo com
entradas constantes. O fato de não se conseguir prever quais redes seriam estáveis foi um problema que
preocupou os pesquisadores até o início da década de 80, quando Cohen e Grossberg provaram um poderoso
teorema para definir quando as RNAs eram estáveis . Este teorema determina que para as RNAs recorrentes
alcançarem um estado estável é necessário que possuam conexões simétricas, melhor dizendo, W ij=Wji, sendo
Wii=0. Contribuições importantes também foram dadas por John Hopfield , tanto para a teoria como para a
prática, sendo que algumas configurações passaram a ser chamadas de redes de Hopfield em sua homenagem.
Hinton e Sejnowski também tiveram seus méritos, introduzindo regras gerais de treinamento para redes,
denominadas por eles de máquina de Boltzmann devido ao cálculo das saídas dos neurônios artificiais ser
efetuado através de probabilidade com distribuição de Boltzmann.
6.1.5. Tipos de Treinamento
De todas as propriedades interessantes das redes neurais artificiais, nenhuma captura tão bem a
característica humana como a habilidade de aprender. Ao invés de especificar todos os detalhes de uma
computação tem-se a possibilidade de treinar uma rede para fazer esta computação. Isto significa que pode-se
tratar problemas onde regras apropriadas são muito difíceis de se conhecer a priori.
O objetivo do treinamento de uma RNA é fazer com que a aplicação de um conjunto de entradas produza
um conjunto de saídas desejado ou no mínimo um conjunto de saídas consistentes. Cada conjunto de entrada ou
saída é chamado de vetor. O treinamento é realizado pela aplicação sequencial dos vetores de entradas (e em
alguns casos também os de saída), enquanto os pesos da rede são ajustados de acordo com um procedimento de
treinamento pré-determinado. Durante o treinamento, os pesos da rede gradualmente convergem para
determinados valores, tal que a aplicação dos vetores de entrada produza as saídas necessárias.
Os procedimentos de treinamento que levam as RNAs a aprender determinadas tarefas podem ser
classificados em duas classes de treinamento:
Supervisionado
Não Supervisionado
O treinamento supervisionado necessita de um par de vetores composto do vetor de entrada e do vetor
alvo que se deseja como saída. Juntos, estes vetores são chamados de par de treinamento ou vetor de
treinamento, sendo interessante ressaltar que geralmente a rede é treinada com vários vetores de treinamento.
O procedimento de treinamento funciona da seguinte forma: o vetor de entrada é aplicado. A saída da
rede é calculada e comparada com o correspondente vetor alvo. O erro encontrado é então realimentado através
da rede e os pesos são atualizados de acordo com um algoritmo determinado a fim de minimizar este erro. Este
processo de treinamento é repetido até que o erro para os vetores de treinamento tenha alcançado níveis bem
baixos.
- 40 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
O treinamento não supervisionado, por sua vez, não requer vetor alvo para as saídas e, obviamente, não
faz comparações para determinar a resposta ideal. O conjunto de treinamento modifica os pesos da rede de forma
a produzir saídas que sejam consistentes, isto é, tanto a apresentação de um dos vetores de treinamento, como a
apresentação de um vetor que é suficientemente similar, irão produzir o mesmo padrão nas saídas. O processo de
treinamento extrai as propriedades estatísticas do conjunto de treinamento e agrupa os vetores similares em
classes. A aplicação de um vetor de uma determinada classe à entrada da rede irá produzir um vetor de saída
específico, mas não existe maneira de se determinar, antes do treinamento, qual o padrão que será produzido na
saída para um vetor de entrada de uma determinada classe. Desta forma, a saída de algumas RNAs deve ser
transformada em uma forma compreensiva após o processo de treinamento, o que é um simples problema de
identificação da relações entrada-saída estabelecidas pela rede.
No que diz respeito aos algoritmos de treinamento usados, existe uma grande variedade, tanto para o
treinamento supervisionado, como para o não supervisionado. Muitos deles baseiam-se no algoritmo proposto
por D. O. Hebb em 1961 entretanto, os algoritmos mais eficientes foram desenvolvidos nos últimos trinta anos,
baseados nos trabalhos de Rosenblatt (1962), Windrow (1959) e Windrow e Hoff (1960) . Entre estes, o mais
difundido com certeza foi o algoritmo de retropropagação ("Backpropagation"), o qual é utilizado neste
trabalho. Sua descrição detalhada é apresentada na seção 2.2.
6.2. REDES NEURAIS ARTIFICIAIS MULTI-CAMADAS
A capacidade limitada de representação das RNAs com uma única camada foi superada na década de 60, a
partir do perfeito entendimento do problema da separabilidade linear . Contudo, apesar de se ter descoberto
como aumentar a capacidade de representação da rede com o acréscimo de novas camadas, faltava ainda uma
forma de treinar a rede. Esta forma só foi descoberta em meados da década de 70, com a criação de vários
algoritmos, entre eles o de retropropagação ("Backpropagation"). O "Backpropagation" se tornou um dos
algoritmos mais populares para o treinamento, sendo em parte responsável pelo ressurgimento do interesse na
área de Redes Neurais Artificiais.
6.2.1. - Algoritmo de Retropropagação do Erro
A técnica de Back-Propagation vem sendo utilizada com sucesso em diversas aplicações de redes neurais
artificiais. O Algoritmo baseia-se no método do gradiente descendente para a minimização do erro entre a saída
da rede e a saída desejada. O reajuste ∆Wij de cada peso Wij é fornecido pela seguinte equação:
Equação 15
∆Wij = − η ×( ∂E / ∂Wij )
onde E é o somatório dos erros quadráticos da rede, o parâmetro η é a taxa de aprendizado (esta taxa
influencia a velocidade do aprendizado da rede neural) e Wij é o peso associado à conexão entre um elemento
processador i de determinada camada ao processador j da camada imediatamente posterior (Figura 23).
Wij
Neurônio j
Neurônio i
Figura 23: Peso sináptico associado aos processadores i e j
A expressão para E é:
1 n
E = ∑ (t j − s j ) 2
2 j=1
onde outj é a saída do processador j, tj é o valor esperado desta saída e n é o número de neurônios na
camada j.
Como a saída de cada neurônio é uma função do Net, tem-se:
s j = F(Net) = F(∑ s i w ij )
- 41 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
onde n é o número de entradas do neurônio j.
Como
∂net j
∂E
∂E
=
*
∂Wij ∂net j ∂Wij
e
∂net
= si
∂Wij
e definindo-se
dj = −
∂E
∂net j
pode-se reescrever a Equação 15 como:
Equação 16
?W ij = ? * s i * d j
onde si é a saída no neurônio i da camada anterior.
Para os elementos da camada de saída tem-se:
Equação 17
d j = (t j − s j )F′
(net j )
e, para os elementos da camada escondida:
Equação 18
n

d j = ∑ d k Wik F′
(net j )
 k =1

Na Equação 17 e na Equação 18, o termo F’(netj) é a derivada da função de ativação e tj é o valor
esperado de saída para o processador j.
Conforme foi mencionado, a taxa de aprendizado η determina a velocidade do treinamento. Embora um
valor alto possa acelerar consideravelmente o treinamento, o mesmo também pode acarretar oscilações. Para
evitar esse tipo de evento, pode ser utilizado o termo de momento α. A Equação 16 torna-se:
Equação 19
dWij = ?d j s i + a?W ij (k)
Neste caso, a atualização dos pesos no instante atual (k + 1) é calculada utilizando-se a atualização feita
no instante anterior (k). A aplicação do momento tende a filtrar as oscilações do treinamento da rede, pois tende
a atenuar os efeitos de mudanças no sentido oposto e a reforçar mudanças no sentido corrente.
Seu treinamento, apesar de lento, permite uma boa generalização. Entretanto deve ser mencionado que a
escolha da arquitetura da rede (normalmente feita pelo projetista do sistema) tem uma grande importância no seu
desempenho final.
A Figura 24 mostra uma rede multicamada apropriada para o treinamento com o algoritmo de
retropropagação.
- 42 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
...
ENTRADAS
..
.
SAÍDA
Figura 24: RNA multi-camada
Como dito anteriormente, o objetivo do treinamento da rede é ajustar os pesos, tal que a aplicação de um
conjunto de entradas produza um conjunto de saídas desejadas. Antes de iniciar o processo de treinamento, todos
os pesos devem ser inicializados randomicamente com valores pequenos, garantindo desta forma que a rede não
ficará saturada com grandes valores de pesos e prevenindo-se contra certas patologias de treinamento.
O treinamento pode ser dividido em passos da seguinte forma:
1-Selecionar o próximo par do conjunto de treinamento e aplicar o vetor de entrada a rede.
2-Calcular a saída da rede.
3-Calcular o erro entre a saída da rede e a saída alvo.
4-Ajustar os pesos da rede de maneira a minimizar o erro.
5-Repetir o passo 1 até o passo 4 para cada vetor do conjunto de treinamento, até o erro se
tornar aceitavelmente baixo para o conjunto inteiro.
Pode-se observar que os passos 1 e 2 constituem a etapa de propagação para frente, onde o sinal de
entrada é transmitido através da rede da entrada até a saída. Os passos 3 e 4, por sua vez, constituem-se na etapa
de retropropagação, onde o erro calculado é propagado de volta através da rede para ajustar os pesos.
Apesar do grande sucesso das aplicações do algoritmo de retropropagação e da sua enorme popularidade,
muitos problemas ainda o acompanham. Entre eles, o que mais se destacam são:
wO longo período de treinamento, principalmente para problemas complexos, sendo que
não há garantias que depois deste tempo o treinamento tenha sido feito com sucesso;
wMínimos locais, já que a superfície do erro geralmente é cheia de vales e desníveis e o
algoritmo emprega um tipo de gradiente descendente, existe sempre a possibilidade de ficar
preso em um mínimo local;
wParalisia da rede, pois durante o treinamento os pesos podem ser ajustados para valores
muito grandes, os quais vão levar a derivada da função de ativação a zero (no caso de funções "
squashing"), impedindo a rede de aprender o conjunto de treinamento.
Devido às deficiências do algoritmo de retropropagação, inúmeras variações têm sido propostas nos
últimos anos , , . Uma alternativa para diminuir o tempo de treinamento, assegurando um maior grau de
estabilidade para rede, chamada "momentum", foi proposta por Rumelhart, Hinton e Williams em 1986 e se
mostrou bastante eficiente em alguns casos. Outras alternativas também foram propostas por Parker em 1987,
bem como por Stornetta e Huberman, Todavia, até agora, nenhuma tem solucionado de forma definitiva e
confiável os problemas do "Backpropagation".
6.3. MODELAGEM DE REDES NEURAIS PARA DATA MINING
6.3.1. Seleção de Dados
Uma vez selecionado o banco de dados para treinar a rede neural, o próximo passo é decidir que dado é
importante para a tarefa que se deseja automatizar. Talvez o bando de dados tenha 100 atributos, mas apenas 10
são utilizados para tomar decisões. Esse é o problema, na maioria dos casos, não sabe-se exatamente que
parâmetros são importantes no processo de decisão. Redes neurais podem ser utilizadas para ajudar a determinar
quais parâmetros são importantes e contruir o modelo relativo a esses parâmetros.
- 43 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
O processo de seleção de dados possui duas direções (dimensões). A primeira, são as colunas ou
parâmetros, os quais serão parte do processo de data mining. A segunda, é a seleção de linhas ou registros,
baseado nos valores dos atributos individuais. O mecanismo usado para acessar todos os bancos de dados
relacionais é o SQL. Entretanto, muitas ferramentas “front-end” permitem que usuários especifiquem que dados
acessarão usando formulários “fill-in-the-blanks”.
Os passos para seleção de dados requerem algum conhecimento do domínio do problema e do dado.
Frequentemente o dado é armazenado num banco de dados para ser manipulado antes que o data mining se
inicie. Esse pré-processamento é descrito na próxima seção.
6.3.2. Pré-processamento
Pré-processamento dos dados é o passo executado quando tem-se uma base de dados limpa e deseja-se
melhorá-la. Algumas vezes esse melhoramento envolve gerar novos dados a partir de um ou mais atributos, e
algumas vezes isso significa trocar vários atributos por apenas um que contenha mais informação. O número de
atributos de entrada não é necessariamente uma medida da informação fornecida para o algoritmo de data
mining. Alguns dados podem ser redundantes; ou seja, alguns dos atributos são maneiras diferentes de se medir o
mesmo efeito. Algumas vezes os dados precisam ser transformados para uma forma que é aceitável como
entrada para um algoritmo específico de data mining, tal como a rede neural.
Atributos derivados
Um requisito em data mining é combinar 2 ou mais campos para gerar um novo campo ou atributo. Isto é
geralmente criado na forma da razão de 2 valores, mas tambem pode ser soma, produto, ou diferença de valores.
Outras transformações podem ser do tipo que transforma data em dia da semana ou dia do ano.
Escalamento
Uma outra transformação envolve um propósito mais geral de transformar os dados para serem
apresentados à rede neural. A maioria dos modelos neurais aceitam dados numéricos apenas no intervalo de [0.0
à 1.0] ou de [-1.0 à +1.0], dependendo das funções de ativação utilizadas no processamento dos elementos.
Consequentemente, os dados precisam ser reduzidos para um intervalo.
Valores escalares que são distribuídos mais ou menos uniforme sobre o intervalo podem ser escalados
diretamente para o intervalo [0.0 à 1.0]. Se os valores dos dados são descorrelacionados, uma função linear ou
logaritma pode ser utilizada para transformar os dados, os quais podem ser escalados para o intervalo desejado.
Variáveis discretas podem ser representadas por tipos codificados com valores 0 ou 1, ou elas podem ser
associadas a valores em um intervalo contínuo desejado.
Normalização
Vetores de dados numéricos podem algumas vezes ser tratados como um grupo de números. Nesses
casos, é necessário normalizar ou escalar os vetores como um grupo. Existem vários métodos para se fazer isso.
Talvez o mais comum dos métodos de normalização é somar os quadrados de cada elemento, tirar a raiz
quadrada da soma, e então dividir cada elemento pela norma. Este é chamado de Normalização Euclidiana. Um
segundo método de normalização de um vetor de dados é simplesmente somar todos os elementos do vetor e
então dividir cada número pela soma. Deste modo, a soma dos elementos normalizados vale 1.0, e cada elemento
tem um valor que representa percentualmente a sua contribuição nessa soma. Um terceiro método para
normalizar um vetor é dividir cada elemento pelo valor do elemento de máximo valor no array. Esse tipo de
normalização é utilizada desde quando se deseja minimizar o custo de processamento.
Mapeamento simbólico e taxonomias
Em muitos casos é necessário executar transformações de símbolos em outros símbolos antes de
transformá-los em valores numéricos. Um uso comum seria agregar membros de algumas classes ou grupos num
único símbolo para a proposta de representação do dado. Por exemplo, uma loja pode vender 100 variedade de
sucos, todos com uma única medida e identificadores alfanuméricos. Se nos queremos um modelo que compre
de várias classes de bebidas, nós precisamos tratar todos esses produtos como apenas um.
Este tipo de mapeamento pode ser utilizado para verificar as categorias em vários níveis de granularidade.
Por exemplo, nível de categoria com todos os condimentos, com subcategorias mostarda, catchup, cebolas,
- 44 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
picles; catchup com subcategoria picante e não picante. Ou seja, analisa-se em forma de uma árvore com
hierarquias, ou uma taxonomia que verifica os problemas em vários níveis de abstração.
Translações de simbólicos para numéricos
Translações de simbólicos para numéricos são frequentemente requisitos para transformar símbolos
discretos ou categorias em valores numéricos para o processamento dos algoritmos de data mining. A forma
mais básica de se fazer isso é procurar numa tabela, onde o símbolo é comparado contra uma lista de símbolos e
quando ele é encontrado, o correspondente valor numérico é utilizado. Cuidados devem ser tomados para
assegurar que símbolos indefinidos ou ilegais sejam associados a algum valor desconhecido ou irrelevante. Uma
a outra aproximação mais sofisticada é utilizar uma função “hashing”, no qual um algoritmo pega uma string e
transforma num único valor numérico.
6.3.3. Representação dos dados
Apesar de existirem muitos tipos de dados suportados no sistema de banco de dados relacional, a maioria
pode ser facilmente mapeado em três tipos lógicos. Estes tipos incluem valores numéricos contínuos, valores
numéricos discretos, e categóricos ou valores discretos simbólicos. Tempo e datas apresentam certos desafios,
mas eles também podem ser mapeados em valores numéricos utilizando-se funções apropriadas.
Por exemplo: O símbolo “maçã” pode ser mapeado em um inteiro específico utilizando-se uma tabela de
símbolos, ou pode-se utilizar uma função hash que transforma a string em um único inteiro. Isto gera um valor
numérico discreto (inteiro). Este valor pode ser apresentado a uma rede neural de várias maneiras. Entretanto,
deseja-se geralmente que esse número seja codificado ou transformado para um intervalo apropriado. O símbolo
maçã pode ser mapeado para o valor “5”. Pode ser transformado para 0.5 se desejarmos uma entrada real
contínua ou pode ser convertida para qualquer um dos três códigos (1 0 0 0 0; 1 1 1 1 1; 0 0 1 0 1). Na seção
seguinte é descrita a conversão lógica básica desses tipos.
Representação Numérica dos dados
Dados numéricos podem ser simplesmente valores binários (0 ou 1) indicando os estados “ativado” e
“desativado”, ou pode ser um intervalo de valores discretos (1 a 10) ou um intervalo contínuo de -1000 a +1000.
Em cada caso deve-se decidir como representar cada dado. A maioria das redes neurais aceitam entradas no
intervalo de 0 a 1, ou de -1 a +1. Nesse caso, parâmetros binários podem ser representados pelos extremos do
intervalo de entrada.
Valores Discretos
Variáveis discretas são aquelas que se associam a apenas um conjunto fixo de valores. Estas, tipicamente
denotam um conjunto pequeno de classes, ou um conjunto de respostas a questões de múltiplas escolhas (por
exemplo. A a E), ou um intervalo fixo de números inteiros. O desafio para uma rede neural representar valores
discretos é apresentar esses valores de modo que a rede seja capaz de discernir as diferenças entre valores e que
possam dizer a magnitude relativa das diferenças se a informação estiver disponível. Vários tipos codificados são
utilizados para representar esses valores. Nas seguintes seções são apresentados os códigos utilizados mais
comuns.
Código 1-de-N
Quando uma variável pode tomar um conjunto de valores discretos, ela deve ser transformada numa
representação que apresenta em um único conjunto de entrada, cada valor discreto distinto. Talvez a
representação mais comum seja a 1-de-N. O código 1-de-N tem um comprimento igual ao número de categorias
discretas permitidas para a variável, onde todo elemento no vetor de código é 0, exceto para um único elemento,
que representa o valor do código. Por exemplo, se temos um conjunto com 4 elementos {maçã, pêssego, uva,
abacaxi}, pode-se representar maçã como 1 0 0 0, pêssego como 0 1 0 0, uva como 0 0 1 0, e abacaxi como 0 0 0
1. O lado positivo dessa representação é que ela é simples, fácil de usar, e a rede neural pode facilmente aprender
a discriminar entre os vários valores. Usando essa representação, uma única variável pode expandir de 100 ou
1000 entradas, ocorrendo uma explosão no número dos pesos de entrada.
Código binário
- 45 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Uma representação alternativa é o código binário padrão. Nele, cada categoria discreta a um valor de 1 até
N e é representado por uma string de dígitos binários. Ou seja, se temos 64 possíveis valores, podemos
representá-los com um vetor binário de comprimento 6. Como os valores discretos não são arbitrários e não são
ordenados, o código binário é um bom modo de representar os dados. Entretanto, note que existem grandes
diferenças nos valores dos bits como números discretos convertidos para código binário. O sétimo item tem o
código 0 0 0 1 1 1, enquanto o oitavo tem 0 0 1 0 0 0. A distância de hamming é uma medida de similaridade ou
diferença entre duas strings binárias. Neste caso, indo de 7 para 8 resulta numa distancia de hamming de 4. Se
desejamos que a rede neural trate os padrões de entrada com um 7 ou 8 como sendo “similares”, então devemos
escolher o termômetro ou código de temperatura.
Código de temperatura
Código de temperatura é utilizado mais frequentemente quando os valores discretos estão relacionados de
algum modo. Por exemplo, uma variável discreta que pode ter um dos seguintes valores {fraco, regular, bom,
ótimo}. Nesse caso, desejamos que a diferença entre fraco e ótimo seja grande (na distância de hamming) e a
diferença entre bom e ótimo seja menor. Isto é exatamente o que acontece com o código termômetro desde que
fraco é representado como 1 0 0 0, enquanto ótimo é representado como 1 1 1 1 (distância de hamming 4),
enquanto bom é representado como 1 1 1 0 (de bom para ótimo a distância de hamming é de apenas 1).
Existem outros esquemas de códigos que trabalham com variáveis discretas, mas, em geral, o 1-de-N,
binário e termômetro são os mais utilizados.
Valores contínuos
Para valores contínuos, a forma mais comum de transformar dados é fazendo um scaling. Por exemplo,
uma variável que pode tomar valores de 0 a 100 pode ser linearmente transformada de 0.0 a 1.0. Portanto, 20
tornaria 0.2, enquanto 80 se transformaria em 0.8. Para variável com distribuição como essa, a transformação
linear funciona bem.
Mas se o dado não se comporta dessa maneira? Por exemplo, suponha 80% dos dados estão abaixo de 50
e precisamos ensinar a rede neural a fazer boas distinções entre valores no intervalo de 0 a 50. Uma opção é
transformar o dado utilizando uma aproximação linear para que o dado no intervalo de 0 a 50 seja expandido na
representação. Enquanto os menos importantes, intervalo de 50 a 100, sejam comprimidos. Isso pode ser feito
tomando-se o intervalo 0, 50, 100 e transformando-o em 0.0, 0.8 e 1.0. Neste caso, o valor de entrada 50 fica
associado ao valor 0.8, enquanto o valor 75 é associado a 0.9. Uma diferença de 25 (75 - 50) no valor de entrada
transformasse em 0.1 (0.9 - 0.8) como entrada na rede neural. Entretanto, uma entrada de 10 teria o valor de
0.16, enquanto 25 seria 0.4. Aqui a rede neural vê uma diferença maior no valor de entrada e portanto pode mais
facilmente discriminar entre as diferenças nos valores de entrada. Isso pode ou não pode ser importante. Mas é
importante lembrar que se uma diferença pequena na entrada é realmente significante, digamos mudar de 31 para
33 graus, então queremos Ter certeza que a nossa representação mostra essa significância para a rede neural.
Uma outra necessidade comum é um threshold nos dados para que os valores fora do intervalo de
interesse não necessariamente diluam a nossa representação. Por exemplo, suponha que temos um intervalo de 0
a 300000 reais. Mas estamos apenas checando se uma pessoa tem 35000 ou mais. Nós simplesmente inserimos
um threshold para que os valores entre 0 e 35000 sejam transformados para o intervalo de 0.0 a 1.0, enquanto
valores acima de 35000 obtêm um threshold de 35000, portanto transformando-se em 1. Não é necessário fazer
com que a rede neural tente aprender coisas que ela realmente não precisa, é esforço perdido.
Representações de Dados Simbólicos
Nós encontramos dados simbólicos com frequência em aplicações de redes neurais. O mais comum, e
mais fácil de trabalhar, são as variáveis booleanas tais como sim e não e masculino e feminino. Entretanto, nós
devemos adicionar uma terceira condição (mesmo para variáveis booleanas), a condição “desconhecida”. Nesse
caso podemos utilizar a codificação 1-de-N de comprimento 3 (sim, não, desconhecido) ou um código binário de
comprimento 2 (sim, não, desconhecido, <não usado>). Ou nós podemos decidir representar não como 0, sim
como 1 e desconhecido como 0.5. Todas as representações são válidas. Ela depende do que é requerida pela
aplicação. O conflito está entre o tamanho da rede (número de entradas) versus a facilidade de treinamento
(tempo reduzido de treinamento).
Para representação de dados simbólicos não relacionados a valores discretos, nós simplesmente
mapeamos o símbolo num inteiro de 1 a N. Por exemplo, {maçãs, pêssegos, uva, abacaxi} pode ser mapeado
para 1, 2, 3 e 4. Certamente, podíamos provavelmente transformá-los de 0 a 1, e então teríamos 0, 0.33, 0.66,
1.0. Em essência nós temos as mesmas opções de representação discutidas anteriormente no caso numérico
- 46 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
discreto. Dependendo da aplicação, podemos ou não tratar símbolos escritos diferentemente (maçã versus Maçã),
por exemplo, como diferentes símbolos.
Para representação simbólica de valores relacionados, tais como {regular, bom, ótimo} devemos ter
cuidado para mapeá-los como inteiros consecutivos e usar uma representação de dados que preserve esta
ordenação, tais como termômetro e transformação linear.
Para dados simbólicos de natureza contínua, isto é mais complexo. Por exemplo, se desejamos ser
sensíveis a diferença de um simples caracter em uma string e notar que ela é similar a outra string, o
mapeamento de valores numéricos torna-se mais difícil.
Impacto da Representação dos Dados no Tempo de Treinamento
A representação dos dados é importante. Se as decisões sobre a representação dos dados é feita
erroneamente, pode tornar-se impossível que a rede neural aprenda o relacionamento que estamos tentando
ensinar. Entretanto, geralmente existe um conjunto de possíveis representação de dados que são suficientes para
treinar a rede. Em todos os casos, é importante entender como as decisões na representação do dado vai afetar
tanto o treinamento como a acurácia obtida.
Em geral, quanto mais explícita a representação do dado, mais fácil será para a rede neural aprender. Por
exemplo, tomando uma variável discreta e uma codificação 1-de-N teremos tipicamente um treinamento mais
rápido. Entretanto, o custo é que estamos adicionando N unidades de entrada e um fator N de pesos adicionais a
rede. De novo, em geral, quanto maior a rede em termos de unidades de processamento e conexões dos pesos,
pior será a generalização e mais tempo durará o treinamento. Tomando a mesma variável discreta e associando-a
a uma única unidade de entrada, onde cada valor discreto é representado por uma diferença de 0.1 na magnitude
de entrada, é certamente a representação mais compacta. Entretanto, a rede neural demorará muito para ajustar os
seus pesos de uma simples unidade de entrada, dado que é preciso reconhecer que um décimo de diferença é
significante e indica completamente um único valor para a variável de entrada.
6.3.4. Gerenciando Conjunto de Treinamento de Dados
Um importante aspecto de utilizar redes neurais para data mining e desenvolvimento de aplicações é
como gerenciar seu material, os dados históricos. A aproximação mais comum é randomicamente dividir os
dados em dois ou mais conjuntos de dados. Um subconjunto dos dados é utilizado para treinar a rede neural, e o
outro subconjunto é utilizado para testar a acurácia da rede neural. É importante acreditar que a rede neural
nunca vê o conjunto de teste quando ela esta no modo de treinamento. Ou seja, ela nunca aprende, ou ajusta os
pesos utilizando os dados de teste. Algumas pessoas sugerem um terceiro conjunto seja gerado that is withheled
even from the developer of the neural network model (not that anyone would cheat!). Nesse terceiro cenário,
usa-se dados de treinamento e teste para construir o modelo e então de modo independente testa-se o modelo
com os dados de validação.
Existem alguns casos e, que esse método não é apropriado. Um é quando o dado é temporal. Esse dado
deve ser utilizado de forma contínua de modo a manter a informação que ele contém. Uma seleção aleatória
desses dados pode ser catastrófica. Nesse caso, é típico utilizar os dados de um certo período de tempo para
treinamento e os dados mais recentes para a fase de teste e/ou validação.
Um outro caso é quando não existem dados suficientes para permitir a criação de um conjunto aleatório
razoável que possa representar bem todos os dados disponíveis. Nesse caso, técnicas estatísticas devem ser
requisitadas que ambos os conjuntos de treinamento e teste contenham dados representativos do universo
disponível.
6.3.5. Quantidade de Dados
Desde que dados são os ingredientes mais importantes em dada mining, assegurar que temos suficiente é
crucial. Na maioria das aplicações, a quantidade de dados é como um prêmio, e muitas técnicas devem ser
utilizadas para extrair o máximo de utilidade deles.
Uma regra para redes neurais é que você precisa de dois itens de dados para cada conexão. Portanto uma
back propagation com 10 entradas, 5 unidades escondidas, e 5 saídas deve ter aproximadamente “2 * (10 * 5) *
(5 * 5) = 150” exemplos de treinamento para ser capaz de treinar com certa precisão. Na prática, muitas redes
neurais tiveram sucesso sem o número de dados sugeridos.
Quando utilizando dados reais para treinar a rede neural, é típico ter 98% dos dados representando bons
clientes ou condições normais, e em apenas uma pequena porcentagem de exemplos para os casos que realmente
- 47 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
desejamos detectar (isto é mau cliente ou condição operacional anormal). Uma técnica para aumentar a
porcentagem é simplesmente duplicar os exemplos do conjunto de treinamento que contém a classe do padrão de
treinamento reduzida. Uma outra técnica é pegar um número pequeno de casos do conjunto de teste e modificálos adicionando um pequeno ruído nos valores de entrada e então usando esse ruído de entrada como exemplos
adicionais de treinamento. Uma outra opção é criar um conjunto de treinamento na mão.
6.3.6. Qualidade dos dados (Entra Lixo, Sai Lixo)
Em adição ao gerenciamento dos dados, o maior concern em redes neurais para data mining é a qualidade
dos dados. A maioria dos banco de dados contêm dados incompletos e sem confiança. Dependendo da
quantidade de dados disponível, você deve ser capaz de ignorar qualquer registro obviamente duvidoso.
Entretanto, em muitos casos você tem uma quantidade de dados limitada, e portanto você tem de tentar melhorar
esse dado. A técnica mais comum é preencher os campo duvidosos com a média ou a mediana casos esses
campos sejam numéricos ou uma variável discreta.
Como na maioria das análises estatísticas, outliers are a concern. Um simples registro com o valor uma
ordem um ou dois valores de magnitude maiores ou menores que o resto dos dados podem severamente impactar
no desempenho da rede neural. Uma análise gráfica ou um pesquisa pode indicar esse tipo de problema.
Uma rede neural para data mining é altamente dependente da qualidade e da quantidade de dados. Se
sempre existisse um sistema onde ELSL fosse a regra (Entra Lixo, Sai Lixo), a rede neural é ele. Eles são
altamente esquecidos de ruído e dados incompletos, mas eles são apenas tão bons quanto os dados que foram
utilizados para treinar.
7.
NEURO FUZZY
7.1. MOTIVAÇÃO
Desde os mais remotos tempos, o ser humano vive envolvido com o problema de lidar com o ambiente
que o cerca. A ciência tem evoluído na busca de entender e predizer o comportamento do universo e dos
sistemas que o compõe. Muito desta arte baseia-se em encontrar modelos adequados que conciliem as
observações feitas sobre os sistemas com os resultados obtidos pelos modelos definidos. Neste aspecto, a
modelagem de sistemas tem sido, uma questão importante, seja na área de engenharia ou fora dela.
A abordagem convencional para a modelagem de sistemas apóia-se fortemente em ferramentas
matemáticas que enfatizam a precisão e a descrição exata de cada quantidade envolvida. O uso de ferramentas
matemáticas (equações diferenciais, equações de diferença, funções de transferência, etc.) é apropriado quando o
sistema é simples ou bem definido. Contudo, à medida que o sistema em foco cresce e torna-se complexo, as
ferramentas matemáticas tornam-se menos efetivas e, em alguns casos, impróprias. Isto ocorre devido ao fato das
expressões matemáticas se tornarem muito complicadas para serem tratadas, ou as relações entre as variáveis do
sistema tornarem-se pouco claras ou apenas conhecidas com incerteza (imprecisão).
Para contornar os problemas encontrados pelos métodos convencionais de modelagem, propostas
alternativas surgiram nas últimas décadas, tais como a modelagem por Lógica Fuzzy (LF) e a modelagem por
redes neurais artificiais (RNA). Essas duas técnicas de modelagem têm sido empregadas com sucesso em várias
áreas onde a abordagem convencional tem falhado em fornecer soluções satisfatórias. Essas duas abordagens
fazem parte do conjunto de técnicas estudadas na área de Inteligência Computacional, juntamente com os
Algoritmos Genéticos e Sistemas Especialistas.
As RNAs e a LF apresentam características comuns, como operação em paralelo e capacidade de
tolerância a falhas, embora suas origens sejam bem distintas. A modelagem por lógica fuzzy é baseada na teoria
de conjuntos fuzzy e em regras fuzzy (do tipo se-então), propostas por Zadeh e Mamdani, e está intimamente
relacionada à lingüística e à ciência da cognição. Por outro lado, as redes neurais artificiais têm por inspiração o
sistema de neurônios biológicos. Por causa de suas origens distintas, suas abordagens na solução de problemas
de modelagem são em geral complementares. Por exemplo, enquanto as redes neurais são apropriadas para a
criação de modelos a partir de um conhecimento implícito (e não óbvio) embutido em um conjunto de dados, os
sistemas fuzzy são adequados para a criação de modelos a partir de um conhecimento explícito (racional e
lingüisticamente tratável), originário de especialistas humanos. Como conseqüência, muitos pesquisadores têm
tentado integrar essas duas técnicas de modelagem para gerar um modelo híbrido que possa associar as
- 48 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
vantagens de cada abordagem e minimizar suas deficiências. Com isto, nasceram os sistemas neurofuzzy
híbridos ou, simplesmente, sistemas neurofuzzy (SNF).
Dentre os pesquisadores desta nova área, podemos destacar Jang (um dos pioneiros), Nauck e Vuorimaa,
que criaram respectivamente os modelos ANFIS, NEFCLASS e FSOM. Todos esses modelos são sistemas
adaptativos, como as redes neurais, e são interpretáveis através de regras da lógicas fuzzy. Um sistema
adaptativo Aw é um sistema com parâmetros internos ajustáveis W, que realiza um mapeamento entre o espaço
de entrada X e o espaço de saída Y=Aw (X). Um sistema adaptativo é caracterizado por sua estrutura, seu
conjunto de parâmetros, e envolve algum paradigma de representação. Os modelos adaptativos são assim
chamados por possuírem um algoritmo de aprendizado capaz de ajustar os seus parâmetros e/ou sua estrutura a
partir dos dados. Entre os vários tipos de sistemas adaptativos, os mais interessantes são aqueles capazes de ter
sua estrutura alterável, isto é, cujo algoritmo de aprendizado é baseado na mudança (crescimento ou decréscimo)
de sua estrutura, além do ajuste de seus parâmetros.
Os modelos neurofuzzy existentes, dentre eles os três citados anteriormente, ajustam apenas os
parâmetros ou têm uma capacidade muito limitada de ajuste em sua estrutura. Além disso, de modo a evitar o
problema da explosão do número de regras, esses modelos têm sérias restrições quanto ao número máximo de
entradas possíveis no sistema. Existe, portanto a necessidade de se criar um SNF que seja capaz de suprir essas
deficiências.
7.2. SISTEMAS HÍBRIDOS
7.2.1. Introdução
Há várias formas de se definir sistemas híbridos. De uma forma simples, sistemas híbridos são aqueles
que utilizam mais de uma técnica de identificação de sistemas para a solução de um problema de modelagem.
Este capítulo apresenta os sistemas híbridos mais estudados atualmente, dando destaque especial para os
sistemas neurofuzzy.
Os modelos híbridos têm vantagens interessantes sobre as técnicas de identificação de sistemas
individuais (por ex., redes neurais, sistemas fuzzy, algoritmos genéticos, técnicas de regressão, sistemas
especialistas, técnicas de agrupamento (“clustering”), etc). O grande interesse que tais sistemas têm despertado
na comunidade científica deve-se ao sinergismo obtido pela combinação de duas ou mais técnicas de
modelagem. Este sinergismo reflete-se na obtenção de um sistema mais poderoso (em termos de poder de
interpretação, de aprendizado, de estimativa de parâmetros, de generalização, etc) e com menos deficiências.
Existem três formas básicas de se associarem duas técnicas de identificação de sistemas para a construção
de sistemas híbridos.
a) Híbrido Seqüencial - Neste modelo, um subsistema com paradigma 1 atua como a entrada de outro
subsistema com paradigma 2, como ilustrado na Figura 25 a seguir.
Entrada
Saída
Subsistema 1
Subsistema 2
(paradigma 1)
(paradigma 2)
Figura 25: Modelo Híbrido Seqüencial
- 49 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Um exemplo dessa combinação seria o caso de se usar um pré-processador fuzzy ou estatístico acionando
uma rede neural. Esta é a forma mais fraca de hibridização, sendo que alguns pesquisadores nem a encaram,
efetivamente, como um sistema híbrido.
b) Híbrido Auxiliar - Neste modelo, um subsistema constituído pela técnica do paradigma 2 é chamado
pelo subsistema implementado pelo paradigma 1, retornando ou realizando alguma tarefa auxiliar. A Figura 26
ilustra este modelo de hibridização.
Entrada
Saída
Subsistema 1
(paradigma 1)
Subsistema 2
(paradigma 2)
Figura 26: Modelo Híbrido Auxiliar
Como exemplo desta combinação de paradigmas pode-se citar um sistema em que uma rede neural invoca
um algoritmo genético para a otimização de seus pesos, ou de sua estrutura. Neste caso, tem-se um maior grau de
hibridização em comparação com o primeiro caso (Híbrido Sequencial).
c) Híbrido Incorporado - Nesta forma de se combinar os dois paradigmas não há uma separação visível
entre os dois subsistemas. Pode-se dizer que o primeiro paradigma contém o segundo e vice-versa. A Figura 27
traz uma representação deste modelo.
Entrada
Figura 27: Modelo
Paradigma 1
+
Paradigma 2
Saída
Híbrido Incorporado
Um exemplo deste modelo é o caso de um sistema neuro-fuzzy híbrido onde um sistema de inferência
fuzzy é implementado segundo a estrutura de uma rede neural. Aqui a hibridização é a maior possível. Há
sistemas em que a hibridização é de um grau tão elevado que não é possível a separação dos dois paradigmas.
A seguir, são descritos os modelos híbridos mais comumente encontrados na área de Inteligência
Computacional.
•Sistema Neuro-Fuzzy
Os sistemas Neuro-Fuzzy estão entre os sistemas híbridos mais pesquisados na atualidade, por associarem
vantagens de duas técnicas de modelagem muito populares como as Redes Neurais e a Lógica Fuzzy. Este tipo
de enquadra-se no tipo híbrido incorporado (tipo (c) na classificação anterior).
- 50 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
•Sistema Neuro-Genético
Constitui-se em uma das hibridizações que ainda carecem de maior atenção dos pesquisadores. Os
métodos de otimização evolucionários podem ser usados para: ajustes dos parâmetros (pesos) da rede; definição
da arquitetura da rede; ou ainda para o ajuste dos parâmetros de treinamento (ex. taxa de aprendizado e
momentum). Entre os trabalhos que empregam esse tipo de hibridização podem ser citados: Bengio que otimiza,
via programação genética, os parâmetros dos algoritmos de aprendizado de redes neurais; Whitley e Fogel que
utilizam algoritmos genéticos e programação evolucionária para ajuste dos pesos de redes neurais; e Angelint,
Maniezzo que estudam o uso de estratégias evolucionárias na busca de melhores topologias para redes neurais.
Todos estes sistemas neuro-genéticos se enquadram no tipo híbrido auxiliar (b).
•Sistema Neural e Estatístico
Este é um dos campos em que ainda há pouco investimento em pesquisa. A análise e a previsão de séries
temporais é uma área de aplicação com forte interseção entre os métodos estatísticos e as redes neurais. Os dois
paradigmas, ao seu modo, realizam previsões de sistemas. Do lado estatístico estão os métodos de
amortecimento exponencial, os modelos lineares auto-regressivos e de médias móveis (ARMA) e suas extensões.
Do lado neural estão as redes do tipo MLP’s (MultiLayer Perceptrons), as redes de funções de bases radiais
(RBF - Radial Basis Function), entre outras. Um modelo híbrido (NLARMA/RN) é apresentado por Velloso e
envolve a associação de um modelo ARMA com Redes Neurais, onde estas substituem os coeficientes dos
polinômios referentes às partes auto-regressivas e de médias móveis, gerando um modelo não-linear. Um outro
trabalho interessante nesta área é o de Tiozzo que envolve a identificação de um modelo ARIMA através do uso
de redes neurais. Estes dois sistemas se enquadram no tipo híbrido incorporado (c) .
•Sistema Fuzzy-Genético
A associação de Técnicas Evolucionárias com Sistemas Fuzzy pode-se dar tanto na criação da estrutura e
base de regras deste sistema como no ajuste dos seus parâmetros (perfil dos antecedentes, consequentes e pesos
das regras). Karr um dos primeiros a associar as técnicas de Sistemas de Inferência Fuzzy (SIF) e Computação
Evolucionária, usou um Algoritmo Genético (AG) para otimizar os consequentes das regras de um SIF usado no
controle de um pêndulo invertido. Os antecedentes eram ajustados manualmente. Evidentemente este sistema
não utilizava toda a potencialidade dos AGs. Lee e Takagi chegaram a um sistema mais complexo em que um
AG desenvolvia uma base de regras para o mesmo problema. Uma descrição detalhada dessas possibilidades é
encontrada em Leitch. Estes dois sistemas híbridos se enquadram no tipo híbrido auxiliar (b).
•Sistema Genético-Estatístico
A associação destas duas áreas também é pouco explorada, mas alguns trabalhos já despontam neste
sentido. Um exemplo dessa associação é o trabalho de Gomes que trata da estimação dos parâmetros de modelos
SARMA ou SARIMA por algoritmos genéticos. Outro exemplo é o trabalho de Medeiros, que trata da
identificação de modelos lineares por partes, através de algoritmos genéticos. Estes dois sistemas também se
enquadram no tipo híbrido auxiliar (b).
A seguir será apresentada uma descrição mais detalhada dos sistemas híbridos neuro-fuzzy, objetivo
principal deste trabalho.
7.2.2. Sistemas Neuro-fuzzy
Os Sistemas Neuro-Fuzzy (SNF), conforme mencionado na seção anterior, combinam a capacidade de
aprendizado das Redes Neurais Artificiais (RNA) com o poder de interpretação linguístico dos Sistemas de
Inferência Fuzzy (SIF). Atualmente, estes sistemas estão sob intensa investigação. Tal fato deve-se
principalmente à confluência dos seguintes fatores: a) aplicabilidade dos algoritmos de aprendizado
desenvolvidos para redes neurais; b) possibilidade de promover a integração de conhecimentos (implícito e
explícito); e c) possibilidade de extração de conhecimento, sob o formato de regras fuzzy, a partir de um
conjunto de dados.
- 51 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
A idéia básica de um Sistema Neuro-Fuzzy é implementar um SIF numa arquitetura paralela distribuída
de tal forma que os paradigmas de aprendizado comuns às RNAs possam ser aproveitados nesta arquitetura
híbrida. A pesquisa na área dos Sistemas Neuro-Fuzzy busca, portanto, a maximização das propriedades
desejáveis das RNA e SIF e a minimização de suas limitações e deficiências. O esforço para vencer essas
limitações tem sido umas das principais motivações na criação desses sistemas híbridos inteligentes.
Na próxima seção é proposta uma taxonomia para os SNF baseada na característica dual (Neural e Fuzzy)
que estes sistemas possuem.
Taxonomia dos Sistemas Neurofuzzy
Diversas arquiteturas de SNF têm sido propostas na literatura. Devido à natureza dual destes sistemas,
propôs-se a divisão da taxonomia desses SNF em duas categorias:
•quanto às características fuzzy do sistema;
•quanto às características de aprendizado.
Conforme pode ser observado, uma categoria contempla o lado fuzzy enquanto a outra contempla o lado
neural (referente às características de aprendizado) dos SNF. Os gráficos da Figura 28 e Figura 29 apresentam a
taxonomia proposta de acordo com as duas categorias definidas, isto é, de acordo com as características fuzzy
dos sistemas e com as características de aprendizado, respectivamente.
S.N.F.
Modelo Fuzzy
- Mamdani
- Takagi-Sugeno
- Tsukamoto
- Classificação
Formato das
funções de
pertinência (FP)
- Triangular
- Trapezoidal
- Gaussiano
- Sino
- Sigmoidal
- Singleton
(Sistemas
Neuro-Fuzzy)
Figura 28: Taxonomia
Particionamento
do espaço de E/S
- Fuzzy Grid
- Adaptive fuzzy Grid
- Fuzzy Boxes
- Fuzzy Clusters
- BSP
- Quad Tree
Método de
Defuzzificação
- Centro de Área
- Média Ponderada
- Centro de Somas
- Caixa Preta (Black Box)
- Outros
quanto às características fuzzy do sistema
- 52 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Apresentação dos
padrões de
treinamento
- Aprendizado On Line
- Aprendizado Off Line
- Com apoio de especialista
- Identificação
Prévia
-Método Auto-Organizado
- Identificação
Automática
- Incremental
Identificação da
estrutura
SNF
-Método da distribuição Uniforme
das FPs
- Decremental
- Antecedentes
Identificação dos
parâmetros
- Antecedentes e Consequentes
- Antecedentes.,Conseqüentes., e Peso das regras
Figura 29: Taxonomia
quanto às características de aprendizado
Taxonomia quanto às características fuzzy
Com relação às características fuzzy dos sistemas Neuro-Fuzzy, dividiu-se a taxonomia em quatro subclasses:
•Modelo Fuzzy
•Formato das funções de pertinência
•Particionamento do espaço de entrada/saída
•Método de defuzzificação
Essas características estão descritas a seguir.
•Quanto ao Modelo Fuzzy implementado
As regras fuzzy formam a parte fundamental da estrutura de conhecimento em um sistema fuzzy de inferência.
Os formatos de regras fuzzy podem ser divididos em quatro grupos principais, conforme mostrado na taxonomia
da Figura 28. Os três primeiros - Mamdani, Takagi-Sugeno e Tsukamoto - correspondem ao modelo de
inferência fuzzy. A diferença básica entre esses três primeiros modelos recai no tipo de consequente e no
procedimento de defuzzificação. O quarto formato foi incluído para contemplar os sistemas fuzzy de
classificação. A seguir são descritos os quatro formatos. Por simplicidade, somente modelos
de regras com duas entradas e uma saída são usados nos exemplos.
- 53 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Mamdani
Regra : If x is A and y is B Then z is C
Este modelo foi proposto, inicialmente, como uma tentativa para controlar um conjunto turbina a
vapor/boiler, usando regras derivadas de um especialista humano. A Figura 30, a seguir, ilustra como a saída ‘z’
de um sistema de inferência do tipo de Mamdani é gerada.
Regra 1 -
Regra 2 -
Figura 30: Modelo
de Mamdani com composição Min/Max
A saída precisa (crisp) ‘z’ é obtida pela defuzzificação do conjunto fuzzy de saída resultante da aplicação
da operação de t-conorm* sobre os conjuntos consequentes que, por sua vez, foram modificados via t-norm*
(implicação) pelo grau de disparo (“firing strength”) do antecedente.
* t-norm e t-conorm são definições genéricas de operações que implementam a interseção (AND) e a união (OR)
entre conjuntos fuzzy.
Takagi-Sugeno
Regra : If x is A and y is B Then z = f ( x , y )
Neste caso, a saída de cada regra é uma função das variáveis de entrada. Geralmente, a função que mapeia
a entrada e saída para cada regra é uma combinação linear das entradas, isto é z = px1 + qx2 + r. No caso em que
p=q=0, temos z = r (fuzzy singleton). A saída do sistema é obtida pela média ponderada (procedimento de
defuzzificação) das saídas de cada regra, usando-se o grau de disparo (firing strength) destas regras como pesos
da ponderação. A Figura 31, a seguir, ilustra este modelo.
- 54 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Figura 31: Modelo
de Takagi-Sugeno
- 55 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Tsukamoto
Regra : If x is A and y is B Then z is C (monotônica)
Neste sistema fuzzy de inferência o consequente de cada regra é representado por um conjunto fuzzy com
uma função de pertinência monotônica. A Figura 32, a seguir, ilustra este modelo e mostra o procedimento para
o cálculo da saída ‘z’.
Regra 1
Regra 2
Figura 32: Modelo
de Tsukamoto
Modelo fuzzy para Classificação
Regra : If x is A and y is B Then pattern (x,y) belongs to class i
Este último formato de regras fuzzy foi acrescentado aos modelos clássicos anteriores pelo fato dos
demais não serem adequados aos sistemas de inferência fuzzy desenvolvidos para tarefas de classificação. Os
modelos clássicos são mais adequados para aplicações em controle, previsão, reconhecimento de padrões,
aproximação de funções, sistemas especialistas , etc. A Figura 33, a seguir, ilustra um exemplo de um sistema
fuzzy para classificação com duas entradas e três classes de saída.
- 56 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
A1
B2
mín
Classe 1
Regra 1
w1 => 0,3
A1
B1
mín
Regra 2
Máx, Z1= 0,3
w2 => 0,15
A2
B2
mín
Regra 3
Classe 2
w3 => 0,9
A2
B3
mín
(Classe vencedora)
Máx, Z2=0,9
Regra 4
w4 => 0,0
A3
Regra 5
mín
B1
Classe 3
w5 => 0,0
B3
A3
Regra 6
mín
Máx, Z3=0,0
w6 => 0,0
xk1
xk2
Figura 33: Sistemas Fuzzy de Classificação com duas entradas e três classes de saída
Neste caso as saídas são calculadas diretamente pelas operações de t-conorm aplicadas sobre o grau de
disparo das regras (t-norms). Neste caso não há procedimento de defuzzificação.
•
Quanto ao formato das Funções de Pertinência (FPs)
Vários perfis de FPs são encontrados na implementação de sistemas fuzzy e neuro-fuzzy. Nesta seção
serão apresentados os 5 tipos mais comuns de funções de pertinência.
Triangular - Esse perfil tem a vantagem de ser computacionalmente simples. É descrito por três variáveis : SL,
C e SR (Spread Left, Center e Spread Right) e é definido pelas expressões abaixo:
µ( x ) =
µ( x ) =
x − SR
C − SR
µ ( x) = 0
x − SL
C − SL
, para SL ≤ x ≤C
, para C ≤ x ≤SR
, caso contrário
A Figura 34, abaixo, ilustra um exemplo de uma FP de perfil triangular, com seus parâmetros
descritores.
µ(x)
- 57 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
1
0
SL
Figura 34: Função
C
SR
x
de pertinência de formato triangular
Trapezoidal - Pode ser descrito por três variáveis: ‘u’, ‘v’ e ‘d’ que regula a inclinação das bordas da FP
trapezoidal (mais crisp ou mais fuzzy). As expressões a seguir definem este perfil.
µ ( x ) = [1 − g ( x − v , d ) − g (u − x , d )]
 1 , se s. d > 1

onde, g ( s, d ) = s. d , se 0 ≤ s. d ≤1

 0 , se s. d < 0
A Figura 35, a seguir, ilustra uma FP de formato trapezoidal como descrito pelas expressões dadas
acima.
µ(x)
1.0
tg θ = d
θ
0.0
u
θ
u+1/d
v-1/d
v
x
Figura 35: Função de pertinência com formato trapezoidal
Outras FP trapezoidais utilizam quatro parâmetros, permitindo que as bordas do trapézio tenham
diferentes inclinações. A Figura 36 ilustra um exemplo de tal FP, descrita pelas expressões seguintes.

0, x ≤ a
1-(b-x)/(b-a) , a < x ≤ b

µ(x) =

1, b < x ≤ c
(d-x)/(d-c), c < x ≤ d
0, x>d
Onde ‘a’, ‘b’, ‘c’e ‘d’, são parâmetros do formato da FP.
- 58 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
µ(x)
1.0
0.0
a
b
c
d
x
Figura 36: Função de pertinência com formato trapezoidal descrita por 4 parâmetros
Gaussiano - Este perfil é descrito pela expressão abaixo, onde m é a média e v é o desvio padrão:
µ( x ) = e
 x − m 2

−
 v 
Este formato de FP é empregado em aplicações de agrupamentos (clusters) que utilizam medidas de
similaridade (por ex. distância euclidiana), ou seja, padrões semelhantes exibem pequenas distância entre si.
Quanto mais próximo da média ‘m’ está o padrão, maior o grau de pertinência do mesmo. A Figura 37, a seguir,
ilustra este formato.
1
µ(x)
1/e
0
x
c-v
m
c+v
Figura 37: Função de pertinência de formato gaussiano
Sino - Este perfil de função de pertinência é definido pela expressão abaixo:
onde a variável ‘c’ define o centro da FP, ‘a’ define a largura e ‘b’ o decaimento da FP. Conforme mostrado na
Figura 38, seu perfil é bem parecido com o perfil do formato anterior. Entretanto, o esforço computacional para o
seu cálculo é menor por não envolver exponenciais.
- 59 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
1
µ(x)
tg θ = -b/2a
θ
1/2
0
x
c-a c
c+a
Figura 38: Função de pertinência com formato sino
Sigmoidal - Este perfil é baseado na função sigmóide tão conhecida no estudo das redes neurais. As FPs deste
tipo são criadas utilizando-se apenas uma (perfil monotônico) ou duas funções sigmóides superpostas (perfil em
formato sino).
Perfil monotônico - Descrito por duas variáveis: ‘a’ que define o grau de nebulosidade (sua inclinação no ponto
de transição) da FP e ‘b’ que define o ponto de transição. A expressão da FP é dada pela equação abaixo e seu
formato é ilustrado na Figura 39, a seguir:
µ( x ) = sig ( x , a , b) =
1
1
1+ e
− a ( x− b)
µ(x)
θ , tg θ ~ a
0
x
x=b
Figura 39: Função de pertinência com formato sigmoida
Perfil em Formato Sino - Descrito por quatro variáveis ‘a1’, ‘a2’, ‘b1’ e ‘b2’ referentes às duas sigmóides
superpostas. A definição da FP é dada pelas expressões a seguir:
com b1 < b2. A Figura 40, a seguir, mostra um exemplo deste perfil de FP.
- 60 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
1
µ(x)
0
x
Figura 40: Função de pertinência com formato sigmoidal/sino
A principal diferença entre as FPs com formato de sino vistas anteriormente e esta FP implementada por
duas sigmóides é o fato de que esta permite a construção de FPs não simétricas, ou seja, o decaimento e a largura
de cada lado do sino podem ser diferentes.
As FPs descritas acima podem ser utilizadas tanto nos termos antecedentes quanto nos termos
consequentes das regras. Entretanto, um tipo de FP muito frequente entre os consequentes dos SNF é o chamado
‘Fuzzy Singleton’. Este formato compreende uma FP que apresenta o grau de pertinência igual a 1 apenas em um
ponto de seu domínio, e o grau 0 (zero) nos demais pontos. Sua principal vantagem é simplificar o processo de
defuzzificação do sistema fuzzy. A Figura 41 ilustra um exemplo de FP ‘Fuzzy Singleton’ ou simplesmente
‘Singleton’. Nela o grau de pertinência da FP assume o valor 1 apenas para x=a.
1
µ(x)
0
Figura 41: Função
x=a
x
de pertinência Fuzzy Singleton
•
Quanto ao Particionamento do espaço de E/S
As variáveis de entrada/saída dos sistemas de inferência fuzzy são divididas em vários termos lingüísticos
(por ex. baixo, médio e alto) que são utilizados pelas regras fuzzy. O particionamento do espaço de entrada
indica a forma como as regras fuzzy estão relacionadas com este espaço. O particionamento do espaço de saída
costuma ser mais simples e está associado aos conseqüentes das regras.
A Figura 42, a seguir, mostra vários tipos de particionamentos possíveis para o espaço de entrada. Os
exemplos ilustrados nesta figura referem-se a sistemas com duas variáveis de entrada, mas podem ser
generalizados. Desta forma, as variáveis do espaço de entrada correspondem à dimensão horizontal e vertical de
cada figura.
- 61 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
(a)Fuzzy Grid
(b) Adaptive Fuzzy Grid
(c)Fuzzy Boxes
(d) Fuzzy Clusters
(e) BSP
(f) Quad Tree
x2
x1,x2 - Variáveis de entrada
x1
Figura 42: Particionamentos
possíveis para o espaço de entrada
O particionamento Fuzzy Grid da Figura 42a é fixo, não permitindo ajustes nas funções de pertinência. Os
sistemas que o utilizam ajustam apenas os parâmetros dos conseqüentes.
Na Figura 42b, o particionamento Adaptive Fuzzy Grid, como o próprio nome diz, é adaptativo, e permite
ajustes nos perfis das funções de pertinência. Os particionamentos Fuzzy Grid são simples e intuitivos, porém, à
medida que o número de variáveis de E/S aumenta, o número de partições cresce combinatoriamente. Em alguns
casos isto pode levar a situações em que o tamanho da memória torna-se impraticavelmente grande.
A Figura 42c e a Figura 42d mostram os particionamentos Fuzzy Box e Fuzzy Cluster, respectivamente.
O primeiro (Figura 42c) aparece em sistemas que utilizam a versão fuzzy das redes neurais ART, como fuzzy
ART de Carpenter et al., ou no SNF chamado Fuzzy Self-Organized Map - FSOM - de Vuorimaa. O segundo
(Figura 42d) é gerado por redes neurais do tipo das Redes de funções de Bases Radiais (Radial Basis Function RBFs), que para alguns pesquisadores da área podem ser encaradas também como um SNF. Tanto o FSOM
quanto as RBFs usam alguma medida de similaridade entre padrões para o cálculo dos centros de suas funções
de pertinência.
- 62 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Os particionamentos das Figura 42e (BSP) e Figura 42f (Quadtree) são flexíveis e minimizam, um pouco,
o problema do crescimento exponencial do número de regras pois só criam novas regras localmente, conforme o
conjunto de treinamento. Sua vantagem principal é permitir a criação de sistemas que constróem sua própria
estrutura de forma automática (proposta deste trabalho).
•
Quanto ao método de defuzzificação
Uma vez feitas as avaliações das proposições (regras) fuzzy, deve-se determinar o valor real da saída do
sistema fuzzy. Este processo chama-se Defuzzificação.
Várias estratégias de defuzzificação têm sido propostas. Neste trabalho procurou-se descrever os métodos
de defuzzificação mais encontrados nos SNF. Estes são descritos a seguir.
COA ( Centro de Área) - É um dos métodos mais utilizados. Supondo-se um universo de discurso discreto, a
saída crisp ‘z’ é produzida pelo cálculo do centro de gravidade do conjunto fuzzy consequente µc obtido pela
composição das regras. A expressão da saída ‘z’é dada por:
m
Z=
∑ µc ( Zi ) * Zi
i =0
m
∑ µc ( Zi )
i =0
onde ‘m’é o número de intervalos de quantização da saída, ‘Zi’ é o valor da variável de saída para o intervalo de
quantização ‘i’e µc(Zi) seu grau de pertinência.
MP (Média Ponderada) - Quando apenas ‘singletons’ são usados como consequentes das regras fuzzy, este é o
método naturalmente indicado, pois combina os consequentes das regras fuzzy com o nível de disparo de cada
uma delas, gerando uma saída ‘z’ de acordo com a expressão:
n
Z=
∑
i =1
µi * Zi
n
∑
i =1
µi
onde ‘n’ é o número de regras fuzzy, µi é o nível de disparo da regra ‘i’, e ‘Zi’ é o valor do ‘singleton’ ‘i’. Este
método também é utilizado na defuzzificação dos modelos fuzzy de Takagi-Sugeno de 1 a ordem (saída é
combinação linear das entradas), conforme ilustrado na figura 2.7, e Tsukamoto que utiliza funções monotônicas
nos conseqüentes das regras, conforme mostrado na figura 2.8.
Centro de Somas - Este método é uma simplificação do método do centro de gravidade. Sua vantagem é o
menor esforço computacional no cálculo da saída quando comparado ao método do COA. A saída ‘z’é dada pela
expressão:
n
Z=
∑ C u ( Bi α
i =1
n
∑
i =1
i
)
Area ( Bi α i )
onde,
•Bi (i =1, ....,n) são os termos linguísticos dos consequentes,
•
‘αi’é o nível de disparo da regra ‘i’,
•Biαi é o conjunto fuzzy obtido através do método de implicação de Mamdani, ou seja, Bi cortado em
‘αi’como na Figura 43 abaixo.
α
α
α
u
• C ( Bi i ) = Centroid ( Bi i ) x Area ( Bi i ).
- 63 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Bi
αi
Biαi
x
Figura 43: Conjunto fuzzy Bi
αi
obtido pelo corte de Bi no patamar dado por αi
Defuzzificação Caixa Preta - Este método faz uso de uma rede neural para implementar a etapa de
defuzzificação de um SNF. Os métodos mais comuns de defuzzificação (por ex. centro de área) podem ser
implementados através de redes neurais. Neste método, os valores dos níveis de disparo de cada regra são
ponderados e somados em neurônios com função de ativação sigmóide, ou seja, são entradas da RNA que realiza
a defuzzificação.
Um estudo sobre as propriedades das redes neurais utilizadas para defuzzificação é encontrado em Song.
Halgamuge utiliza um método de defuzzificação black-box em seu sistema neuro-fuzzy FuNe I.
Taxonomia quanto às características de aprendizado
Dividiu-se em três subclasses a taxonomia quanto às características de aprendizado dos sistemas neurofuzzy:
•quanto à apresentação dos padrões de treinamento;
•quanto ao método de identificação da estrutura;
•quanto ao aprendizado dos parâmetros.
Essas características estão descritas a seguir.
•Quanto à apresentação dos padrões de treinamento
A apresentação dos padrões de treinamento pode ser realizada de duas formas diferentes: o aprendizado
Off-line e o aprendizado On-line.
Aprendizado Off-line
A atualização dos parâmetros/estrutura acontece somente após a apresentação de todo o conjunto de
treinamento, isto é, após uma época ou varredura. Esta forma requer um conjunto de dados de treinamento
disponível antes da identificação da estrutura e dos parâmetros, o que em certas situações pode se constituir em
um problema.
Aprendizado On-line
A atualização dos parâmetros acontece logo após cada par de treinamento ter sido apresentado. Esta
estratégia de aprendizado é indicada para sistemas com características variantes ou quando não se tem à mão,
previamente, um conjunto de dados de treinamento.
- 64 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
•Quanto ao método de identificação da estrutura
A identificação da estrutura está relacionada à determinação de um número adequado de regras fuzzy e de
um particionamento de E/S satisfatório, com o esboço inicial das FPs. Há duas vertentes principais para
promover a identificação da estrutura de um SNF: Identificação Prévia e Identificação Automática.
Identificação Prévia
Este tipo de identificação precede o ajuste dos parâmetros do sistema. Utiliza-se para tal um
conhecimento prévio do sistema a ser desenvolvido. Pode-se destacar três métodos para realizar tal tarefa:
a)Método com apoio do especialista
Neste método, o conhecimento prévio é explícito e proveniente de especialista(s). A criação das regras e o
esboço preliminar das FPs envolve um domínio de conhecimento de interesse específico, o apoio de um ou mais
especialistas neste domínio e um engenheiro do conhecimento capaz de extrair este conhecimento do especialista
e expressá-lo em termos de proposições fuzzy e variáveis linguísticas.
b)Método Auto-Organizado e Aprendizado Competitivo
Aqui o conhecimento prévio é implícito e proveniente de um conjunto de dados de treinamento. Utilizase, inicialmente, um algoritmo neural não-supervisionado e auto-organizado (por ex. SOM de Kohonen) para
determinar os valores iniciais dos centros das FPs, ou algum outro método estatístico de agrupamento
(‘clustering’). Uma vez achados os centros das FPs, seus parâmetros referentes à largura podem ser
determinados heuristicamente por algoritmos como por exemplo‘k-nearest-neighbors’ ou ‘first-nearestneighbors’. Em seguida, criam-se algumas regras, a partir dos primeiros padrões apresentados no treinamento. O
antecedente das regras é criado tomando-se os conjuntos fuzzy que tiverem maior grau de pertinência para o
padrão sob treinamento. Havendo conflito entre as regras, aplica-se um processo baseado em competição entre
estas. Por exemplo aplica-se um padrão na entrada do sistema e verifica-se qual regra exibe maior grau de
disparo. Esta regra será a regra vencedora, daquele padrão, para o algoritmo de aprendizado.
c)Método da Distribuição Uniforme das FPs
Neste método as FPs são criadas através de uma distribuição uniforme sobre o universos de discurso das
características do espaço de E/S (particionamento fuzzy grid). Após esta etapa o aprendizado competitivo é
usado para a criação das regras fuzzy.
Nada impede que se utilize um dos dois métodos acima descritos (b e c) mesclados com o primeiro (a),
promovendo o que se pode chamar de integração do conhecimento.
Identificação Automática
Na identificação/geração automática o aprendizado das regras pode ser feito de forma incremental ou
decremental.
O aprendizado incremental das regras significa partir inicialmente de uma base de regras vazia (camada de
regras vazia) ou de uma regra default (Vuorimaa) e adicionar novas regras segundo uma determinada heurística.
Geralmente isto só é possível com o conhecimento da saída desejada (aprendizado supervisionado).
O aprendizado decremental das regras inicia-se com um conjunto superestimado de regras, o que pode gerar um
sistema inconsistente. Segue-se então um processo de eliminação de regras supérfluas, tornando o sistema
consistente. Tal procedimento é computacionalmente dispendioso, mas pode ser feito quando não há informação
disponível sobre a saída desejada (o “reinforcement learning” é aplicável).
•Quanto ao aprendizado dos parâmetros
Como identificação dos parâmetros entende-se o ajuste dos parâmetros do sistema, tais como os pesos
fuzzy que definem os perfis das FPs dos antecedentes e consequentes das regras fuzzy, e o peso ou importância
relativa destas regras. Nem todos os SNF utilizam ajuste do peso das regras. Neste caso, o peso é fixo e de valor
- 65 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
unitário, o que permite uma boa interpretação semântica das regras fuzzy levantadas pelo processo de
aprendizado.
Após a definição da estrutura (ou durante esta), os pesos fuzzy e, se for o caso, os pesos das regras do
sistema NF, devem ser ajustados por algum critério para minimizar o erro. No que se refere a este item da
taxonomia, pode-se dividir os SNF em três tipos:
Sistemas com identificação apenas dos antecedentes
São encontrados entre os sistemas voltados para tarefas de classificação. Neste caso não há consequentes
a ser ajustados. O perfil das FPs dos antecedentes das regras fuzzy é geralmente ajustado por um algoritmo
supervisionado de retropropagação do erro. Um exemplo típico é o NEFCLASS de Nauck.
Sistemas com identificação dos antecedentes e consequentes
Representam a grande maioria dos SNF. Neste caso o peso de cada regra é fixo e de valor unitário, o que
permite uma fácil interpretação do significado das regras. O aprendizado dos antecedentes e consequentes pode
ser feito simultaneamente, ou em dois passos. Um exemplo inovador desse tipo de SNF é o FSOM (Fuzzy SelfOrganized Map) de Vuorimaa. Este utiliza um algoritmo supervisionado chamado LVQ (Learning Vector
Quantization) no ajuste dos antecedentes e um algoritmo gradiente decrescente no ajuste dos consequentes.
Sistemas com identificação dos antecedentes, consequentes e peso das regras
Nesses sistemas o aprendizado de todos os parâmetros é realizado de uma forma global através de um
algoritmo supervisionado que os ajusta num mesmo passo. Geralmente é utilizado o algoritmo de
retropropagação do erro, em uma versão modificada que visa permitir o treinamento com funções de ativação
não diferenciáveis, como por exemplo a operação de mínimo usado como T-norm. No instante da
retropropagação do erro verifica-se que antecedente gerou o valor mínimo e ajusta-se apenas o conjunto fuzzy
deste antecedente pelo método “Gradient Descent”.
Exemplos de Modelos Neuro-Fuzzy
Nesta seção descrevem-se, de forma sucinta, três dos sistemas Neuro-Fuzzy mais conhecidos: ANFIS,
FSOM e NEFCLASS. Com isto espera-se tornar mais clara a compreensão de um sistema Neuro-Fuzzy
qualquer.
ANFIS
O sistema Neuro-Fuzzy ANFIS foi criado por Jang e sua sigla significa “Adaptive Network-based Fuzzy
Inference System”. Sua popularidade já o levou a ser inserido no MATLAB©. A figura 2.20, abaixo, ilustra um
exemplo de uma arquitetura ANFIS. Esta arquitetura pode ser usada na implementação de sistemas para previsão
e aproximação de funções, embora o autor tenha proposto variantes para outras aplicações.
Funcionalmente esta arquitetura é equivalente a um sistema de inferência fuzzy de Tsukamoto, embora se
possa implementar, também, um sistema de inferência fuzzy de Takagi-Sugeno. Para um melhor entendimento
desta arquitetura as suas camadas são descritas a seguir:
Camada1
Computa o grau de pertinência com que as entradas precisas (“crisp”) x1 , x2 , x3 , satisfazem os termos
linguísticos (Ai = Alto e Bi = Baixo) associados a estes nós. Os parâmetros que definem os perfis de cada termo
são encarados como pesos fuzzy. Assim, se o conjunto fuzzy A1 na Figura 44 for de formato sigmóide, os
parâmetros ‘a’ e ‘b’ corresponderão aos pesos do 1o. processador fuzzy da camada 1. No exemplo da Figura 44,
cada entrada tem apenas dois termos lingüísticos (alto e baixo), porém, nada impede que este número seja maior.
Camada2
- 66 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Cada nó desta camada corresponde a uma regra e computa o nível de disparo (firing strength) da regra, ou
seja, calcula com que grau de pertinência o consequente da regra está sendo atendido. Os neurônios desta
camada simbolizam a operação de t-norm. No exemplo da Figura 44 as saídas dos neurônios da camada 2 são
dadas por:
S1=A1(x1) * A2(x2) * A3(x3)
S2=B1(x1) * B2(x2) * A3(x3)
S3=B1(x1) * B2(x2) * B3(x3)
Onde “*”representa o operador t-norm.
A1
x1
S1
T
N
S1’
C1
B1
h1
A2
S2
T
x2
N
S2’
C2
h2
Z
B2
A3
T
x3
S3
N
S3’
C3
h3
B3
Camada1
Figura 44: Arquitetura
Camada2
Camada3
Camada4
Camada5
Neuro-Fuzzy (ANFIS)
Camada3
Esta camada realiza uma normalização (nem sempre existente em outras arquiteturas) nos níveis de
disparo das regras. Por isso, cada um de seus nós está rotulado pela letra “N”. A normalização neste sistema é
utilizada como um pré-processamento para a defuzzificação. As saídas dos nós desta camada, referentes à Figura
44, são dadas por:
S1’=S1/(S1+S2+S3)
S2’=S2/(S1+S2+S3)
S3’=S3/(S1+S2+S3)
Camada4
Aqui as saídas dos neurônios são calculadas pelo produto entre os níveis de disparo normalizados (Si,
i=1,2 e 3) e o valor do conseqüente da regra em si. Os valores de saída de cada nó desta camada (Figura 44) são
dados por:
h1=S1’. C1
h2=S2’. C2
h3=S3’. C3
- 67 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
onde os valores Ci correspondem aos conseqüentes ‘singletons’ou aos conseqüentes de Sugeno de primeira
ordem (combinações lineares das entradas).
Camada5
O nó desta última camada da arquitetura da Figura 44 calcula a saída do sistema e, juntamente com os nós
das camadas 3 e 4, promove a defuzzificação. Sua saída é dada por:
Z = h1+h2+h3 =
S1. C1 (S1) + S2. C2 (S2) + S3. C3 (S3)
Z=
S1 + S2 + S3
Este sistema utiliza o particionamento Fuzzy-grid Adaptativo. Seu aprendizado (identificação da estrutura
e parâmetros) é feito em duas etapas que se repetem até que o critério de parada seja alcançado:
Etapa 1 - fixam-se os parâmetros das premissas (antecedentes) e os conseqüentes são ajustados pelo método
MQO, estimação por mínimos quadrados ordinários.
Etapa 2 - fixam-se os parâmetros dos conseqüentes e os parâmetros dos antecedentes são ajustados pelo
algoritmo GD.
FSOM
O sistema Neuro-Fuzzy FSOM (Fuzzy Self-Organized Map) foi desenvolvido por Vuorimaa e utiliza o
particionamento fuzzy-box no espaço de entrada. As funções de pertinência utilizadas nos antecedentes das
regras têm perfil triangular e são descritas por três parâmetros: centro (c), largura esquerda (sl) e largura direita
(sr). Os conseqüentes das regras são singletons ou combinações lineares das entradas. O formato de uma regra
fuzzy ‘i’, neste sistema, é como visto abaixo:
if x1 ∈ Ui,1 and x2 ∈ Ui,2 and x3 ∈ Ui,3 and then y = ai
onde cada condição (xj ∈ Ui,j ) é interpretada como o grau de pertinência µ Ui,j(xj) do valor xj no conjunto fuzzy
Ui,j . O nível de disparo (firing strength) de cada regra é calculado de acordo com:
αi = min { µ Ui,1(x1), µ Ui,2(x2), .... µ Ui,n(xn) }
O método de defuzzificação empregado é o método da média ponderada. Desta forma, o valor de saída é
calculado pela equação abaixo.
m
y=
∑ α ⋅s
i=1
i
i
m
∑α
i=1
i
onde,
• Si são os singletons referentes à saída de cada regra;
• αi são os níveis de disparo das regras;
• m é o número de regras.
O método de treinamento deste sistema Neuro-Fuzzy é realizado em três etapas:
- 68 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
1) primeiro os parâmetros dos centros (Ci) dos conjuntos fuzzy são auto-organizados pelo algoritmo SOM de
Kohonen;
2) em seguida, os conjuntos fuzzy são formados em volta destes centros, usando-se para tal uma largura
constante w 0, de forma que: sl = c - w0 e sr = c + w0. Os valores dos conseqüentes singletons da regras são
calculados inicialmente segundo a equação abaixo:
M
si =
∑α
k =1
i, k
⋅y k
M
∑α
k =1
i,k
onde,
yk - é a saída desejada para o padrão k;
M - é o número de padrões no conjunto de treinamento;
αi,k - é o nível de disparo da regra “i” para o padrão k;
Si - é o conseqüente (singleton ou comb. linear) da regra “i” ;
3) por fim, os conjuntos fuzzy dos antecedentes são ajustados por um algoritmo semelhante ao LVQ 2.1 também
criado por Kohonen.
A figura 2.21, a seguir, mostra um sistema FSOM com duas entradas e uma saída. Este modelo usa
como conseqüentes combinações lineares das entradas x1 e x2 (camada 4 da Figura 45). A descrição das camadas
deste SNF é semelhante às do sistema ANFIS, exceto pelo fato deste sistema utilizar o particionamento do tipo
“fuzzy box”.
x1 x2
Entradas
regra 1
x1
mín
regra 2
x2
mín
C1
C2
α1
α2
norm
x1 x2
Σ
C4
C5
Saída
y
norm
C3
Figura 45: Arquitetura de um FSOM com duas entradas e uma saída
Há dois trabalhos relatando a aplicação do FSOM em aproximação de funções e controle.
NEFCLASS
O sistema Neuro-Fuzzy NEFCLASS foi desenvolvido por Nauck e Kruse e sua aplicação básica é em
sistemas de classificação. Nauck desenvolveu também dois outros sistemas Neuro-Fuzzy, um para aplicações em
- 69 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
controle - NEFCON e outro para aplicações em previsão e aproximação de funções - NEFPROX. Todos eles
estão disponíveis (código e artigos) na internet. Um exemplo de arquitetura desse sistema é ilustrado na Figura
46.
As quatro camadas desta arquitetura estão descritas conforme se segue.
Camada de Entrada - Esta camada tem apenas a função de direcionar os valores das entradas x1 e x2 para as
entradas das funções de pertinência dos antecedentes das regras.
Camada de Antecedentes - Esta camada gera os graus de pertinência dos antecedentes das regras. O universo de
discurso de cada variável de entrada está dividido em três conjuntos fuzzy (baixo, médio e alto). O
particionamento do espaço de entrada implementado por esta camada é o “adaptive fuzzy-grid”.
Camada de Regras - Esta camada gera o nível de disparo de cada regra através da operação T-norm realizada
entre os graus de pertinência dos conjuntos fuzzy que antecedem cada elemento desta camada.
Camada de Saída - Esta camada gera cada uma das saídas do classificador. As saídas são obtidas pela operação
de T-conorm entre os níveis de disparo da camada de regras. Os pesos que interligam a camada de regras e a
camada de saída (todos iguais a 1, no caso do NEFCLASS) indicam que cada regra tem um mesmo grau de
importância entre si.
As regras fuzzy que descrevem os dados têm a forma:
if x1 ∈ µ1 and x2 ∈ µ2 and ....and xn ∈ µn then pattern (x1,x2,....xn) belongs to class i
onde µi são conjuntos fuzzy.
O modelo NEFCLASS descobre regras e ajusta o perfil das funções de pertinência dos antecedentes. O
aprendizado deste sistema é realizado em duas etapas separadas. A primeira utiliza um algoritmo para criar a
camada de regras. Esta camada pode ser inicializada a partir de um conhecimento prévio ou ser inicializada com
um conjunto vazio de regras e crescer com aprendizado incremental de regras. A segunda etapa utiliza um
algoritmo supervisionado de “Gradient Descent” para ajustar os perfis das funções de pertinência dos
antecedentes das regras.
- 70 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
c1
1
1
r1
1
r2
µ11
µ21
r3
µ31
x1
Figura 46: Sistema
c2
Camada de
Saída
1
1
r5
r4
µ12
µ22
µ32
Camada de
Regras
Camada de
Antecedentes
Camada de
Entrada
x2
NEFCLASS com duas entradas, cinco regras e duas classes de saída
Taxonomia dos três sistemas estudados
Apresentam-se, a seguir, duas tabelas que resumem a classificação dos três sistemas Neuro-Fuzzy
anteriormente abordados segundo a taxonomia vista na seção neste capítulo.
Tabela 7 apresenta a classificação dos sistemas ANFIS, FSOM e NEFCLASS segundo suas
características fuzzy: modelo fuzzy implementado, formato das funções de pertinência (A - para antecedentes e
C para conseqüentes), método de particionamento e método de defuzzificação.
Tabela 7: Características fuzzy dos três sistemas em estudo. * Método de deffuzificação: Não existe
defuzzificação neste caso
Autor/
Sistema/
Referência
Jang/
ANFIS/
Vuorimaa/
FSOM/
Modelo
Fuzzy
Formato
das
FPs
TakagiSugeno
Formato Sino (A)
TakagiSugeno
Triangular (A)
Singleton (C)
Particionamen
to de E/S
Mét.
de
Defuzz.
Aplicação
Fuzzy Grid
Média
Ponderada
Previsão e
Aprox. de
funções
Fuzzy Box
Média
Ponderada
- 71 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Aprox. de
funções e
controle
Nauck/
NEFCLASS/
Classificação
Triangular (A)
Adptive Fuzzy
Grid
Nenhum *
Classificação
A Tabela 8 apresenta a classificação dos três sistemas segundo as características de aprendizado
(características neurais) : forma de apresentação dos padrões, métodos de identificação da estrutura e de
identificação dos parâmetros.
Tabela 8: Características de aprendizado dos três sistemas em estudo
Autor/
Sistema/
Referência
Apres.
dos
padrões
Identificação
da
estrutura
Identificação dos parâmetros
Antecedentes
Conseqüentes
Peso das
Regras
Passo
backward:
Conseqüent
Geração
prévia,
com
OFF line
e fixo
particionamento fuzzy
ou
gradiente
grid.
ON line
decrescente
ajusta
antecedente
.
Usa o
Centro das FPs achados
algoritmo
por SOM. FPs
LVQ2.1
OFF line
formadas em torno dos
para ajuste
centros. Regras geradas
dos
a partir dos
antecedente
agrupamentos
s.
(clusters).
Jang/
ANFIS/
Vuorimaa/
FSOM/
Nauck/
NEFCLASS/
Particionamento do
espaço de entrada por
ON line
fuzzy grid. Regras são
ou
criadas através da
OFF line
heurística de manter as
‘R’melhores regras.
Passo
forward:
Antecedente
fixo. MQO
ajusta o
consequente
Usa um
método de
ajuste por
gradiente
decrescente
p/ ajuste dos
consequente
s.
Usa
algoritmo
de
retropropag -------------ação do
erro
(modificad
o) para
ajuste dos
antecedente
s
Utiliza
normaliz
ação do
nível de
disparo
das
regras
--------
Pesos
fixos e
iguais a
1.
Observações
Ajuste dos
parâmetros
realizado em
dois passos :
backward e
forward.
Sistema inova
no uso de um
algoritmo
supervisionado
(LVQ) para
ajuste dos
antecedentes.
Não há
consequentes a
ajustar. Pesos
das regras
podem ser
ajustáveis sob
pena de perda
de significado
semântico das
mesmas.
7.2.3. LIMITAÇÕES DOS SNF
De uma forma geral pode-se atribuir aos SNF duas principais limitações:
1) o número reduzido de entradas com que eles trabalham;
2) e a forma limitada (em alguns casos inexistente) de criar sua própria estrutura e regras.
A primeira limitação ocorre em função da chamada de explosão combinatorial das regras devido ao
particionamento em forma de grade (“fuzzy grid”). Por exemplo, suponha que um determinado SNF tenha cinco
variáveis de entrada e cada uma delas tenha seu universo de discurso subdividido em quatro conjuntos fuzzy,
conforme ilustrado na Figura 47.
- 72 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
1,00,01,00,01,00,01,00,01,0-
µ1b
µ1mb
µ1ma
µ1a
x1
µ2b
µ2mb
µ2ma
µ2a
x2
µ3b
µ3mb
µ3ma
µ3a
x3
µ4b
µ4mb
µ4ma
µ4a
Legenda
µib = baixoi
µimb = médio baixoi
µima = médio altoi
µia = altoi
x4
µ5b
µ5mb
µ5ma
µ5a
x5
0,0-
Figura 47: Particionamento “fuzzy grid” em quatro conjuntos fuzzy para cinco variáveis de entrada
Com este sistema de particionamento, pode-se chegar a um total de 1024 (4 5) regras. Suponha agora que
se tenha 20 entradas. Usando-se a mesma divisão nos universos de discurso para cada variável de entrada, chegase a um total impraticável de 1.099.511.627.776 (420) regras. Outras formas de particionamento como “fuzzy
box”, “fuzzy clusters” e formas recursivas podem minimizar este problema. A forma que desponta como mais
promissora para vencer esse problema é o particionamento recursivo.
A segunda limitação está presente nos SNF atuais porque eles exibem (quando tal) uma capacidade
limitada de criar sua própria estrutura. Alguns têm estrutura fixa, arbitrada a priori, e não permitem que ela varie.
Outros SNF, mais flexíveis, têm alguma capacidade de alterar sua estrutura, permitindo que se altere o número
de divisões no universo de discurso de algumas de suas variáveis de entrada e, consequentemente, o número de
regras. Entretanto, esta habilidade é reduzida e ainda o mantém refém do primeiro tipo de limitação. Uma
solução para isto é o uso, novamente, das formas de particionamento recursivas, que permitem a criação de SNF
com uma capacidade ilimitada de crescimento em sua estrutura.
8.
ALGORITMOS GENÉTICOS
8.1. RESUMO
Algoritmos Genéticos são inspirados no princípio Darwiniano da evolução das espécies e na genética
[GOLD89]. São algoritmos probabilísticos que fornecem um mecanismo de busca paralela e adaptativa baseado
no princípio de sobrevivência dos mais aptos e na reprodução. Este capítulo apresenta os princípios básicos dos
Algoritmos Genéticos.
8.2. ALGORITMOS GENÉTICOS: PRINCÍPIOS E APLICAÇÕES
Algoritmos Genéticos constituem uma técnica de busca e otimização, altamente paralela, inspirada no
princípio Darwiniano de seleção natural e reprodução genética [GOLD89].
- 73 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Os princípios da natureza nos quais os GAs se inspiram são simples. De acordo com a teoria de C.
Darwin, o princípio de seleção privilegia os indivíduos mais aptos com maior longevidade e, portanto, com
maior probabilidade de reprodução. Indivíduos com mais descendentes têm mais chance de perpetuarem seus
códigos genéticos nas próximas gerações. Tais códigos genéticos constituem a identidade de cada indivíduo e
estão representados nos cromossomas.
Estes princípios são imitados na construção de algoritmos computacionais que buscam uma melhor
solução para um determinado problema, através da evolução de populações de soluções codificadas através de
cromossomas artificiais.
Em GAs um cromossoma é uma estrutura de dados que representa uma das possíveis soluções do
espaço de busca do problema. Cromossomas são então submetidos a um processo evolucionário que envolve
avaliação, seleção, recombinação sexual (crossover) e mutação. Após vários ciclos de evolução a população
deverá conter indivíduos mais aptos.
A analogia entre Algoritmos Genéticos e o sistema natural é apresentada através da tabela abaixo:
Tabela 9
Natureza
Cromossoma
Gene
Alelo
Loco
Genótipo
Fenótipo
Indivíduo
Geração
Algoritmos Genéticos
Palavra binária, vetor, etc
Característica do problema
Valor da característica
Posição na palavra, vetor
Estrutura
Estrutura submetida ao problema
Solução
Ciclo
Podemos caracterizar os Algoritmos Genéticos através dos seguintes componentes:
1.
2.
3.
4.
5.
6.
7.
Problema a ser otimizado
Representação das Soluções de Problema
Decodificação do Cromossoma
Avaliação
Seleção
Operadores Genéticos
Inicialização da População
Algoritmos Genéticos têm sido bem sucedidos em diversas áreas de aplicações, principalmente em
problemas de otimização [DASG97]. Um problema de otimização caracteriza-se fundamentalmente em
encontrar uma ou uma série de boas soluções entre um número muito grande de possíveis soluções (espaço de
busca). Para alguns problemas, algoritmos de busca baseados em técnicas matemáticas são capazes de encontrar
soluções ótimas. Entretanto, em problemas onde o espaço de busca é intratável ou em problemas complexos de
difícil modelagem matemática, estas técnicas podem falhar [ DHAR97]. Nestes casos, técnicas heurísticas como
Algoritmos Genéticos podem oferecer uma solução ótima ou sub-ótima para o problema. Um Algoritmo
Genético resolve problemas baseando-se no princípio de Darwin para a sobrevivência dos indivíduos mais aptos
(seleção natural), onde indivíduos são soluções que recombinam-se gerando novas soluções que tendem a ser
melhores que as anteriores [DAVI96].
Algoritmos Genéticos tornaram-se particularmente interessantes devido ao fato de não ser necessário se
descrever como encontrar uma boa solução. Tais soluções podem ser encontradas de forma paralela, avaliandose e percebendo-se em que direção devem estar localizadas as melhores soluções, ou soluções potenciais.
O conceito de solução em um Algoritmo Genético na área de mineração de dados pode ser caracterizado
por uma regra de associação [AGRA93]. Esta regra, representada num cromossoma, é da forma SE (A1 e A2 e
A3 e ... An) ENTÃO P, onde os itens ou atributos do banco de dados {A1, A2, ,A3, ..., An} estão representados
simbolicamente como condições para que a conclusão da regra, caracterizada por (P), seja verdadeira.
Representando regras dessa forma, pode-se então procurar obter padrões que caracterizem um banco de dados
através da evolução genética. A busca dessas regras é o ponto crucial desta pesquisa, visto que o espaço de busca
é em geral muito grande e não se conhece, a princípio, métodos não exaustivos de encontrar uma boa solução.
Diante deste cenário, onde tecnologias de banco de dados, mineração de dados e visualização de dados
estão intrinsecamente ligadas, a descoberta de padrões em forma de regras de associação, utilizando Algoritmos
Genéticos, mostra-se como mais um método promissor de extrair conhecimento.
- 74 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
A seguir é apresentada uma breve discussão sobre cada um desses aspectos, exemplificando-se quando
apropriado.
1 – Problema
GAs são particularmente aplicados em problemas complexos de otimização: problemas com diversos
parâmetros ou características que precisam ser combinadas em busca da melhor solução; problemas com muitas
restrições ou condições que não podem ser representadas matematicamente; e problemas com grandes espaços
de busca.
GAs têm sido aplicados a diversos problemas de otimização, tais como: [MICH94] Otimização de
Funções Matemáticas, Otimização Combinatorial, Otimização de Planejamento, Problema do Caixeiro Viajante,
Problema de Otimização de Rota de Veículos, Otimização de Layout de Circuitos, Otimização de Distribuição,
Otimização em Negócios e Síntese de Circuitos Eletrônicos.
2 – Representação
A representação de possíveis soluções do espaço de busca de um problema define a estrutura do
cromossoma a ser manipulado pelo algoritmo. Tipicamente, a representação binária é a mais empregada por ser
simples, fácil de manipular através dos operadores genéticos, fácil de ser transformada em inteiro ou real e,
ainda, por facilitar a prova de teoremas.
Por exemplo, seja o problema de encontrar o valor máximo da função f(x) = x2 , x inteiro [0,63].
Podemos representar as soluções do problema através de um cromossoma de 6 bits.
C1
C2
0 0 1 0 0 1
0 0 0 1 0 0
representa x=9
representa x=4
Um binário também pode representar um número real X R ∈ [Xmin,Xmáx], com precisão de p casas
decimais. Para isso são necessários K bits estimados pela relação:
Equação 20
2k ≤ (Xmáx - Xmin) x 10p
A representação binária, entretanto, nem sempre pode ser empregada; o problema muitas vezes exige
um alfabeto de representações com mais símbolos. Qualquer que seja a representação ela deve ser capaz de
representar todo o espaço de busca que se deseja investigar.
3 – Decodificação
A decodificação do cromossoma consiste basicamente na construção da solução real do problema). O
processo de decodificação constrói a solução para que esta seja avaliada pelo problema. A vantagem da
representação binária é a fácil transformação para inteiro ou real.
Na transformação para número real considera-se o intervalo de valores ou comprimento contínuo do
domínio (C) dos reais de tal forma que
Equação 21
X R = Xb ×
C
− X min
2 − 1
n
Onde XR ∈ [Xmin,Xmáx]; Xb é o inteiro correspondente ao binário; n é o número de bits de do cromossoma; e
C, é o comprimento do domínio da variável X, dado por C = |Xmáx – Xmin|.
4 – Avaliação
A avaliação é o elo entre o GA e o mundo externo. A avaliação é feita através de uma função que melhor
representa o problema e tem por objetivo fornecer uma medida de aptidão de cada indivíduo na população
corrente. A função de avaliação é para um GA o que o meio ambiente é para seres humanos. Funções de
avaliação são específicas de cada problema. No exemplo, a função matemática f(x) = x2 mede aptidão de cada
indivíduo. C1 é um indivíduo mais apto que C2.
- 75 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Tabela 10
Cromossoma
0 0 1 0 0 1
0 0 0 1 0 0
C1
C2
x
9
4
f(x)
81
16
5 – Seleção
O processo de seleção em algoritmos genéticos seleciona indivíduos para a reprodução. A seleção é
baseada na aptidão dos indivíduos: indivíduos mais aptos têm maior probabilidade de serem escolhidos para
reprodução.
Assim, se fi é a avaliação do indivíduo i na população corrente, a probabilidade pi do indivíduo i ser
selecionado é proporcional a
Equação 22
pi =
fi
n
∑
j =1
fi
Onde n é o número de indivíduos na População.
A seleção em GAs é tipicamente implementada por uma roleta onde cada indivíduo é representado por
uma fatia proporcional a sua aptidão relativa.
5 – Operadores Genéticos
Indivíduos selecionados (e reproduzidos na população seguinte) são recombinados sexualmente através
do operador de crossover. O operador de crossover é considerada a característica fundamental dos GAs. Pares de
genitores são escolhidos aleatoriamente e novos indivíduos são criados a partir da troca do material genético. Os
descendentes serão diferentes de seus pais, mas com características genéticas de ambos os genitores. Por
exemplo:
ponto de corte aleatório
G1
1 1 0 0 0 0
G2
0 0 0 1 0 0
D1
D2
1 1 0 1 0 0
0 0 0 0 0 0
Na sua forma mais simples o crossover de um ponto de corte (one-point crossover) corta os dois genitores
em uma posição aleatoriamente escolhida, criando dois possíveis descendentes:
D1 é um cromossoma mais apto que seus genitores, todavia D2 é um indivíduo medíocre (baixa avaliação
em f(x) = x2).
Os cromossomas criados a partir do operador de crossover são então submetidos a operação de mutação.
Mutação é um operador exploratório que tem por objetivo aumentar a diversidade na população.
O operador de mutação altera o conteúdo de uma posição do cromossoma, com uma determinada
probabilidade, em geral baixa (<1%).
C1
C1
1 1 1 1 0 0
1 1 1 1 0 1
antes
depois da mutação
Há ainda um terceiro operador genético denominado inversão, que troca de posição dois genes
aleatoriamente escolhidos. A importância deste operador é, no entanto, restrita a problemas com epistasia (forte
interação entre genes de um cromossoma) [MICH94].
7 – Inicialização da População
A inicialização da população determina o processo de criação dos indivíduos para o primeiro ciclo do
algoritmo. Tipicamente, a população inicial é formada a partir de indivíduos aleatoriamente criados. Populações
- 76 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
iniciais aleatórias podem ser semeadas com bons cromossomas para uma evolução mais rápida, quando se
conhece, a priori, o valor de boas “sementes”.
8 – Parâmetros e Critérios de Parada
Em um algoritmo genético vários parâmetros controlam o processo evolucionário:
•
•
•
•
•
Tamanho da População à número de pontos do espaço de busca sendo considerados em paralelo.
Taxa de Crossover à probabilidade de um indivíduo ser recombinado com outro.
Taxa de Mutação à probabilidade do conteúdo de cada posição/gene do cromossoma ser alterado.
Número de Geraçõesà total de ciclos de evolução de um GA.
Total de Indivíduos à total de tentativas (tamanho da população x número de gerações)
Os dois últimos parâmetros são em geral empregados como critério de parada de um algoritmo genético.
Um algoritmo genético pode ser descrito como um processo contínuo que repete ciclos de evolução controlados
por um critério de parada, conforme apresentado pela figura abaixo:
Representação
F(x)
Problema
População
Inicial/
Corrente
Seleção
Critério de
Término
Operadores
Genéticos
Descendentes
Genitores
Figura 48
8.3. FUNDAMENTOS MATEMÁTICOS DE ALGORITMOS GENÉTICOS
Podemos compreender melhor o princípio de funcionamento de algoritmos genéticos a partir da Teoria de
Schema (padrões) formulada por John Holland em 1975.
John Holland definiu schema como um padrão que descreve um conjunto de cromossomas com
similaridades em algumas posições.
Para representar schemata (plural de schema) utiliza-se um símbolo adicional "S".
Assim, para um espaço de busca representado por KL existem (K+1) L schemata.
K ≡ número de símbolos do alfabeto
L ≡ comprimento do cromossoma
Seja K = 2 e L = 3 definido em espaço de busca de 8 pontos. Seja o schema H = 11S. H descreve o
conjunto de elementos 111 e 110. H refere-se a conjectura que a razão pela qual 111 (ou 110) é um bom (ou mal)
indivíduo são os dois bits mais significativos iguais a 1, não importando (don't care) os demais. Esta conjectura
possui dois possíveis representantes que podem ou não estar presentes em determinada geração do GA.
Para compreendermos melhor porque os GAs funcionam, basta analisarmos o efeito dos processos de
seleção, recombinação e mutação sobre schemata. Utiliza-se nesta análise duas definições:
• O(H): ordem ou especificidade de um schema, como o número de posições fixas diferentes de S; e
• d(H): comprimento do schema, como a distância entre a 1 a e a última posições fixas.
8.3.1. Análise do Efeito da Seleção
- 77 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Seja m(H, t) o número de representações de H em um ciclo t do algoritmo com n indivíduos na
população. Assim, podemos calcular o número provável de representantes de H no próximo ciclo, seguinte
como:
Equação 23
m(H, t + 1 ) = n ×
∑
∈
fi
∑
fj
i H
n
j =1
Define-se f(H) como a aptidão média do schema H, dada por:
Equação 24
∑ fi
∈
f(H) =
m(H,t)
i H
Assim, podemos rescrever m(H, t+1) através da equação abaixo:
Equação 25
m(H, t + 1 ) = m(H, t) × n ×
f(H)
n
∑
j =1
fj
A aptidão média da população, dada pela equação a seguir, nos permite fazer uma última transformação
na fórmula de m(H, t+1).
Equação 26
n
f =
∑
j =1
fj
n
Equação 27
m( H , t + 1) = m( H , t ) ×
f (H )
f
A interpretação desta equação reflete o efeito da seleção em GAs:
1) Schemata (padrões) com aptidão acima da média tendem a proliferar nas gerações seguintes.
2) Schemata com aptidão abaixo da média tendem a desaparecer.
Para estimarmos a eficiência do processo de evolução, suponha um schema H acima (ou abaixo) da
média de um fator C estacionário, a partir de t = 0. Assim temos:
Equação 28
m(H , t ) = m(H , t ) ×
f + Cf
= m(H , t ) ×(1 + C)
f
portanto,
Equação 29
m( H , t ) = m( H ,0) ×(1 + C ) t
- 78 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Isto significa que o número de representantes de H em gerações sucessivas cresce (ou decresce)
exponencialmente durante a evolução.
8.3.2. Análise do Efeito do Crossover
Seja pd a probabilidade de destruição de um schema H pelo crossover de um ponto:
Equação 30
pd ( H ) =
δ( H )
L− 1
Portanto,
Equação 31
ps (H ) = 1 −
δ( H )
L− 1
é a probabilidade de sobrevivência desse padrão.
Sendo pc a taxa de aplicação de crossover e considerando-se que o par genitor de um cromossoma pode
recuperar parte de um padrão destruído pelo crossover, temos a desigualdade:
Equação 32
p s ≥ 1 − pc ×
δ( H )
L− 1
Isto significa que schemata curtos tem maior probabilidade de sobrevivência (se manter intacto) após o
crossover.
8.3.3. Análise do Efeito da Mutação
Seja pm a probabilidade do operador de mutação ser aplicado a uma determinada posição do cromossoma.
Assim a probabilidade de sobrevivência do cromossoma é
Equação 33
p s = (1 − pm ) O ( H )
Para taxas de mutação pm << 1, temos
Equação 34
p s ≅1 − p m ×O( H )
Isto significa que cromossomas de baixa ordem tem maiores chances de não serem destruídos pela
mutação.
Combinando o efeito da seleção, crossover e mutação, temos
Equação 35
f (H) 
δ
(H)
m(H,t + 1) ≥m(H,t)×
×1− pc × ×[1− pm ×O(H)]
L− 1
f 
Teorema fundamental de GAs:
- 79 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
“Schemata curtos e de baixa ordem tendem a se proliferar ou desaparecer nas gerações seguintes, de
acordo com a aptidão média”.
8.4. DESEMPENHO DE ALGORITMO GENÉTICOS
Algoritmos genéticos são sistemas não lineares com comportamento fortemente ecológico. GAs
combinam mudanças aleatórias com processos probabilísticos. GAs são, portanto, estocásticos: dificilmente
repetem um resultado de um experimento para outro.
O desempenho de um algoritmo genético é medido pelo grau de evolução alcançado durante todo o
processo evolucionário (experimento). Devido à natureza estocástica dos GAs é necessário se avaliar o resultado
médio de vários experimentos de um GA, para se ter uma idéia de seu desempenho.
As principais medidas de desempenho são:
1.
2.
3.
Curva da média dos melhores cromossomas a cada ciclo em vários experimentos.
Curva on-line da média da avaliação de todos os indivíduos até um determinado instante t em um
experimento.
Curva off-line da média da avaliação do melhores indivíduos até um instante t em um experimento.
A curva média dos melhores indivíduos em vários experimentos apresenta o desempenho médio de um
GA e serve para ajuste de parâmetros.
A curva on-line mede a velocidade com que o GA consegue produzir boas soluções para o consumo "online" das soluções.
A curva off- line mede o grau de convergência do GA na criação de soluções mais aptas, geradas off- line
em relação ao problema.
8.5. TÉCNICAS, PARÂMETROS E OPERADORES GENÉTICOS
Técnicas, parâmetros e tipos de operadores genéticos afetam significativamente o desempenho de um
algoritmo genético. Em geral, o algoritmo genético é extremamente sensível a introdução ou combinação de
técnicas empregadas. A escolha de técnicas, parâmetros e tipos de operadores é empírica, porém em sintonia
com o problema.
Podemos classificar as técnicas empregadas em GAs nas seguintes classes:
1- Técnica de Reprodução
2- Técnica de Aptidão
3- Técnica de Interpolação de Parâmetros
Quanto aos operadores genéticos, os principais tipos são:
1- Crossover de Um- ponto
2- Crossover de Dois- pontos
3- Crossover Uniforme.
8.5.1. Técnicas de Reprodução:
Essas técnicas determinam o critério de substituição dos indivíduos de uma população para a próxima
geração. Existem basicamente os seguintes métodos:
1- Troca de toda população:
A cada ciclo, N novos indivíduos são criados substituindo a população anterior: N/2 pares são escolhidos
para o acasalamento, gerando N descendentes.
2- Troca de toda a população com elitismo:
Todos os cromossomas são substituídos, sendo o cromossoma mais apto da população corrente copiado
na população seguinte.
3- Troca parcial da população:
- 80 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Gera M indivíduos (M<N), que substituem os piores indivíduos da população corrente. Técnica elitista
que mantém população mais estática, permitindo, portanto, a utilização de operadores menos conservadores
como o crossover uniforme.
4- Troca parcial da população sem duplicados:
Não permite a presença de indivíduos duplicados na população. Garante, assim, o melhor aproveitamento
do paralelismo intrínseco dos GAs (N pontos diferentes do espaço de busca sendo avaliados a cada ciclo), porém
implica em “overhead” para a detecção de duplicados.
8.5.2. Técnicas de Aptidão:
Diz respeito a maneira pela qual as aptidões dos cromossomas em uma população são numericamente
atribuídas.
Intuitivamente, o método mais simples de atribuir uma aptidão a um cromossoma é utilizar o valor
numérico do resultado da avaliação deste cromossoma pela função de avaliação. Há, no entanto, dois problemas
importantes associados a este método:
-
competição próxima: indivíduos cuja a aptidão relativa são numericamente próximas.
super indivíduos: indivíduos com avaliação muitas vezes superior a média, capaz de dominar o processo de
seleção, fazendo com que o GA convirja prematuramente para um ótimo local.
Para contornar esses problemas utilizam-se métodos de transformação da avaliação numérica dos
cromossomas em uma aptidão. Os métodos mais empregados são: “windowing”, "rank- based" e a normalização
linear.[DAVI96]. Dentre estes a normalização linear é a mais simples, eficiente nos dois problemas e, ainda,
parametrizável.
O método de normalização linear consiste em ordenar os cromossomas em ordem crescente de avaliação
(i = 0 corresponde ao indivíduo menos apto) e atribuir valores de aptidões aos cromossomas, linearmente, entre
um valor mínimo e um máximo, distanciados de um valor fixo (taxa de decremento) Equation 17.
Equation 17
Ai ≡ mín +
(máx − mín)
×(i − 1)
n− 1
No exemplo da Tabela 11 o método reduz o domínio exercido por super indivíduos (6) e aumenta a
pressão seletiva entre indivíduos com avaliação próxima (5, 4, 3, 2) em função da taxa de decremento, em
função da taxa de incremento.
Tabela 11
CROMOSSOMA
6
Avaliação
200
Aptidão (taxa=1) 100
Aptidão (taxa=20) 100
5
15
99
80
4
14
98
60
3
13
97
40
2
10
96
20
1
9
95
1
8.5.3. Técnicas de Interpolação de Parâmetros:
A interpolação de parâmetros de um GA tem por objetivo buscar o valor ideal de um determinado
parâmetro para cada ciclo, durante toda a evolução. Durante a evolução de um GA alguns aspectos estão
fortemente relacionados:
- a convergência do algoritmo
- a aptidão dos cromossomas
- as taxas e parâmetros
Por exemplo, é intuitivamente óbvio que a taxa de aplicação do crossover seja maior nas primeiras
gerações quando a população se apresenta dispersar no espaço de busca. Após várias gerações os indivíduos
- 81 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
tendem a apresentar, na sua maioria, características muito similares. Um aumento da taxa de mutação nesta fase
de evolução irá dispersas a população, trazendo novo material genético para a formação de melhores indivíduos.
A interpolação de parâmetros pode ser linear ou adaptativa. Na interpolação linear uma taxa ou um
parâmetro é variado entre um valor inicial e final, através de ajustes fixos, linearmente a cada K gerações.
A interpolação adaptativa, normalmente empregada para ajuste da taxa de aplicação de operadores,
considera o desempenho destes operadores nos ciclos anteriores. Este desempenho é medido em função do
sucesso destes operadores na criação de melhores indivíduos. Este esquema requer um processo de pontuação a
indivíduos e seus descendentes, envolvendo razoável “overhead” computacional. O efeito, no entanto, é atingir
trajetórias quase ótimas para parâmetro, durante toda a evolução.
8.5.4. Operadores Genéticos
-
Operadores genéticos se classificam em:
operadores de recombinação (crossover)
operadores de mutação
operadores de inversão (usados em problemas com epistasia)
operadores específicos ao domínio do problema.
Dentre estes, os operadores de crossover, devido a sua importância fundamental nos GAs, apresentam
variações que merecem destaque.
Crossover de Dois Pontos:
Executa a recombinação de dois indivíduos a partir de dois pontos escolhidos aleatoriamente. Este
operador é capaz de combinar schemata com posições fixas nas extremidades, como no exemplo abaixo.
1 1 S S S S S 0
S S S 1 0 1 S S
H1
H2
Crossover Uniforme:
O crossover de dois pontos também apresenta limitações na recombinação de schemata.
O crossover uniforme, por sua vez, é capaz de recombinar quaisquer posições entre dois genitores. Este
operador utiliza um padrão (palavra binária) escolhida aleatoriamente para designar os bits selecionados em cada
genitor na criação dos descendentes. Por exemplo:
G1
G2
1 1 0 0 1 0 1
0 1 1 1 1 1 0
Padrão
0 1 1 0 1 0 0
D1
D2
0 1 0 1 1 1 0
1 1 1 0 1 0 1
O crossover uniforme apresenta um poder de destruição maior que o crossover de um ponto e dois pontos
que preservam os códigos (schemata curtos) compactos. O crossover uniforme pode prejudicar a formação de
padrões a partir de schemata curtos. Sua utilização deve ser, portanto, em ambientes altamente elitistas como na
reprodução parcial da população, que garantem a permanência dos melhores indivíduos.
8.6. MODELAGEM DE ALGORITMOS GENÉTICOS PARA DATA MINING
8.6.1. CLASSIFICAÇÃO POR EVOLUÇÃO DE REGRAS DE ASSOCIAÇÃO
Uma regra de associação caracteriza um relacionamento de atributos preditivos com um atributo objetivo,
ou atributo meta. Os atributos preditivos compõem a condição de uma regra (parte SE) e o atributo objetivo, a
- 82 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
consequência (parte ENTÃO). O objetivo do algoritmo genético nesta tarefa é evoluir regras de associação, de
modo que uma regra possa representar cada vez melhor as características de um determinado grupo de registros.
Uma regra é considerada melhor que outra sempre que esta gerar soluções com mais qualidade. As medidas de
qualidade são discutidas a seguir.
ACURÁCIA E ABRANGÊNCIA DE UMA REGRA
A acurácia de uma regra mede o quão boa é a sua solução em função do grau de certeza, ou confiança,
obtido através do conjunto de exemplos. Ou seja, é o grau que mede o quão bem a teoria descoberta (neste caso,
uma regra) se aplica aos dados [KLÖS96].
Considere C um conjunto de atributos preditivos (condição da regra) e P, a previsão, ou classe do registro.
Uma regra de associação da forma SE C ENTÃO P tem uma boa acurácia, sempre que a Equação 36 tiver um
valor “aceitável”.
Equação 36
Acurácia = |C ∩ P| / (|C ∩ P| + |C ∩ ~P|)
A interpretação dessa equação pode ser compreendida como o número de registros que satisfazem C e P
dividido pelo total de registros que satisfazem C. Desse modo o melhor resultado (resultado máximo) é 1
(100%), significando que todos os registros que uma determinada regra abrange são da mesma classe, ou seja,
não existem conflitos. Entretanto, na ocorrência de conflitos, representado por |C ∩ ~P|, uma regra abrange
registros que satisfazem C, porém não caracterizam a classe meta/objetivo, P. Nessa situação o valor da acurácia
pode compreender o intervalo [0 a 100] e, o usuário, segundo algum critério, perceberá se esse valor é aceitável,
ou não.
A abrangência de uma regra é definida como sendo o número de registros que satisfazem C e P dividido
pelo total de registros que satisfazem P. A Equação 37 representa essa definição.
Equação 37
Abrangência = |C ∩ P| / (|C ∩ P| + |~C ∩ P|)
A interpretação da abrangência indica quantos registros uma determinada regra cobriu. Semelhante a
acurácia, seu valor máximo é 100%, significando que todos os possíveis registros de uma determinada classe
meta foram cobertos por essa regra. Sempre que a parcela |~C ∩ P| for diferente de zero, o valor da abrangência
estará no intervalo [0, 100], indicando que ainda existem registros da classe meta não capturados por essa regra.
Baseado nessas definições, acurácia e abrangência, percebe-se que a qualidade de uma regra é a
combinação destes dois valores, que quanto maiores melhor. Portanto, a qualidade de uma regra é diretamente
proporcional às estatísticas de acurácia e abrangência.
MODELAGEM DO ALGORITMO GENÉTICO
A modelagem do algoritmo genético envolve principalmente a definição da representação de
cromossomas, operadores, e função de avaliação. Nas próximas seções são apresentados cada um desses
componentes do modelo, e ainda métodos de inicialização da população, técnicas evolucionárias e alguns
parâmetros que buscam ajustar o modelo para a busca de regras com soluções de boa qualidade.
8.6.2. Representação de Cromossomas
Um cromossoma representa uma regra de associação entre os atributos preditivos e o atributo objetivo, ou
classe. Uma regra de associação é da forma SE (A1 e A2 e ... An) ENTÃO P. O conjunto {A1, A2 , ... An}
representa os atributos preditivos e, P o valor da classe meta. Os atributos são representados categoricamente ou
quantitativamente. Atributos categóricos, ou discretos representam um conjunto finito de valores, ou valores
mapeados num conjunto de números inteiros [KLÖS96]. Um atributo categórico numa determinada tupla só
pode assumir um único valor. Por exemplo, supõe-se o atributo SEXO numa tupla que representa dados de uma
pessoa; esse atributo só pode assumir os valores “Masculino” ou “Feminino”. Entretanto, atributos quantitativos,
ou contínuos, representam faixas de valores no domínio do atributo, os quais são coerentes com um subconjunto
de números reais [KLÖS96]. Supõe-se agora o atributo RENDA SALARIAL; uma tupla ou um conjunto de
tuplas podem representar faixas de renda. Por exemplo, 1 a 5 salários mínimos, 6 a 10, 11 a 15, e assim por
- 83 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
diante. Baseado nessas duas definições de atributos, categóricos e quantitativos, que são suficientes para
representar os possíveis domínios do problema, o cromossoma do modelo desenvolvido possui a seguinte
representação:
Atributo 1
mím
Atributo 2
Máx
mím
Máx
Atributo N
mím
Máx
Limite superior
Valor máximo
Limite inferior
Valor mínimo
Figura 49: Representação do cromossoma para a tarefa de classificação
Na Figura 49 um gene representa um atributo preditivo. Cada gene possui dois campos: um valor mínimo
e um valor máximo. Os valores mínimo e máximo representam os limites inferiores e superiores da faixa em que
um atributo preditivo definido como quantitativo está inserido. No caso de atributos categóricos o campo de
valor máximo não tem utilidade.
Com essa representação pode-se formular regras da seguinte forma:
SE [ (Atributo 1 ≥ mím 1) e (Atributo 1 ≤ máx 1)
e (Atributo 2 ≥ mím 2) e (Atributo 2 ≤ máx 2)
e (Atributo 3 = mím 3)
...
e (Atributo N ≥ mím N) e (Atributo N ≤ máx N)
] ENTÃO Atributo Objetivo = P, onde mím X e máx X indicam os valores mínimos e máximos de
cada atributo preditivo definido como quantitativo, e P é o valor do Atributo Objetivo informado como meta no
início do processo. Nesse exemplo o Atributo 3 é considerado categórico e, consequentemente, não aparece um
limite superior.
A escolha dessa representação se deve, principalmente, a sua facilidade de interpretação, visto que é
intuitiva a visualização de um domínio de variáveis na forma de intervalo. Além disso, é uma representação
simples, capaz de aceitar a utilização de operadores genéticos notoriamente conhecidos, facilitando assim, uma
fácil manipulação estrutural do modelo. Outro fator importante é a possibilidade caracterizar os dois tipos de
atributos, categóricos e quantitativos, em um único tipo de gene. Ou seja, o gene se adapta a qualquer uma das
duas definições.
8.6.3. Operadores Genéticos
Os operadores genéticos atuam no processo de reprodução criando e/ou alterando indivíduos.
Operadores genéticos (crossover e mutação) atuam em sintonia com a representação dos cromossomas.
O operador de crossover, proveniente da reprodução de sexuada, foi adaptado aos Algoritmos Genéticos
com o intuito de permitir a recombinação das informações contidas em duas soluções distintas (cromossomas),
fazendo com que novas soluções sejam geradas pela “mistura de material genético dos pais” [COST97].
Os tipos de operadores utilizados neste trabalho foram:
•Crossover de um ponto
•Crossover de dois pontos
•Crossover uniforme
•Crossover de média
O crossover de um ponto recombina duas soluções em um único ponto de corte; no crossover de dois
são dois os pontos escolhidos como referência para a troca de valor dos atributos (genes); enquanto que no
- 84 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
uniforme é utilizada uma máscara determinando em que posições haverá a troca do valor dos genes. Já no
crossover de média, dois genitores recombinam-se gerando “um único filho”. Os genes a partir dos quais é
calculada a média, especificamente nesse trabalho, são genes que representam atributos preditivos quantitativos.
Tabela 12: Exemplo de crossover de média
Pai (1)
Filho (1)
12 26 80 10 4 0
21 18 80 15 4 1
30 10 32 20 0 2
21 18 32 15 0 1
Pai (2)
Filho (2)
Antes
Depois
Nota-se que a Tabela 12 mostra 2 filhos gerados, que são: Filho (1) e Filho (2), entretanto, nesse modelo
foi escolhido apenas um filho. Os valores sublinhados representam valores de atributos quantitativos, que são
passíveis de cálculo de média.
Dois operadores de mutação foram implementados neste trabalho:
•Mutação Simples
•Mutação don’t care
Na mutação simples um gene é alterado, inserindo-se um novo valor pertencente ao seu domínio; o
operador de mutação don’t care seleciona aleatoriamente um gene, e este passa a conter valores que representam
todo seu domínio. Em mineração de dados, isso significa que o gene escolhido é considerado don’t care, isto é,
não contribui para a representatividade de uma regra. Por exemplo, suponha um banco de dados de empregados
com os atributos SEXO e IDADE. Observa-se que na regra “SE SEXO é masculino ou SEXO é feminino e
IDADE é maior que 20 e menor que 30 ENTÃO é funcionário novo” o atributo SEXO pode ser omitido, pois é
um conhecimento sem valor.
Tais operadores foram implementados em função de suas características notoriamente conhecidas.
Entretanto, nesse trabalho de mineração de dados, não se conhecia a priori quais operadores eram mais ou menos
adequados para a tarefa proposta. Deste modo, o modelo permite que a cada reprodução, um único operador seja
selecionado, em função de uma taxa de probabilidade informada pelo usuário. Esta característica fornece ao
modelo a liberdade de poder utilizar todos os operadores disponíveis durante o processo evolutivo.
Outro fator importante na escolha desses operadores genéticos nesse trabalho se deve a sintonia com a
estrutura do modelo, visto que um cromossoma, representa uma regra de maneira explicita e, o fato de um gene
representar um intervalo de números inteiros, todos os operadores implementados se ajustam às características
desejadas como objetivo da tarefa de KDD.
8.6.4. Inicialização da População
Foram implementados diversos métodos de inicialização da população. Tais métodos ajudam a
restringir o espaço de busca do algoritmo genético. A seguir segue os métodos de inicialização implementados.
•Inicialização aleatória sem sementes:
Ø Na faixa de valores do atributo que ocorrem para o atributo objetivo especificado;
Ø Na faixa de valores do atributo que ocorrem para o atributo objetivo especificado, incluindo
o valor médio;
Ø Na faixa de valores do atributo que ocorrem para o atributo objetivo especificado, incluindo
o valor mediano.
•Inicialização aleatória com sementes de evoluções anteriores;
•Sementes de registros aleatórios do Banco de Dados.
Ao especificar o atributo objetivo, que é a parte ENTÃO da regra de associação, pode-se identificar quais
são os valores máximo e mínimo de cada atributo preditivo para registros cujo o atributo objetivo tem valor igual
ao especificado. Os valores máximo e mínimo de todas as tuplas do banco de dados resulta, em geral, numa faixa
de valores mais extensa. Desse modo, ao inicializar-se a população “apenas” com genes na faixa de valores que
- 85 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
ocorrem para o atributo objetivo, evita-se a geração de regras cujos valores dos genes não são representativos. A
Tabela 13 mostra um banco de dados ilustrativo onde o atributo objetivo é representado pelo atributo CLASSE.
Os valores máximo e mínimo calculados para o ATRIBUTO 1 são:
Ø (1, 100) considerando-se “todas” as tuplas, indiferente ao valor de sua respectiva classe;
Ø (17; 33) considerando-se “apenas” as tuplas com valor do atributo objetivo (CLASSE) igual a 1.
Supondo que a parte ENTÃO da regra especifica o valor 1, nota-se que o domínio do ATRIBUTO 1 é
bem menor, diminuindo assim o espaço de busca do AG.
Tabela 13: Banco de dados exemplo para cálculo da inicialização da população
ATRIBUTO 1
20
18
1
25
30
28
33
100
23
17
ATRIBUTO 2
99
3
200
3
800
2
3
1
3
8
CLASSE
1
1
2
1
2
1
1
2
1
1
Na inclusão do valor médio, calcula-se a média encontrada para todos os atributos preditivos apenas
considerando-se as tuplas que possuem o valor do atributo objetivo igual ao valor especificado. A Figura 50
representa esquematicamente a inicialização de um atributo preditivo.
Valor Máximo
Limite Superior Aleatório
Faixa de
Valores do
gene
Valor Médio
Limite Inferior Aleatório
Valor Mínimo
Figura 50: Representação esquemática da inicialização de um atributo preditivo
Uma vez calculado os valores máximo e mínimo e o valor médio de um atributo preditivo, escolhe-se
aleatoriamente um valor na faixa [Valor Máximo; Valor Médio] e um valor na faixa [Valor Médio; Valor
Mínimo]. Esses dois valores são os valores superior e inferior escolhidos para inicializar um determinado
atributo preditivo em um cromossoma (Figura 50). Essa inicialização possui a vantagem de incluir o valor médio
de um determinado atributo preditivo, restringindo o espaço de busca. Referindo-se a Tabela 13, o valor médio
do ATRIBUTO 1 é 23,43. Desse modo, o AG procura valores de inicialização que sempre incorporem esse
valor.
A vantagem dessa inicialização está diretamente relacionada à probabilidade dos valores dos atributos
ocorrerem dentro da faixa de valores dos genes e, particularmente englobando o valor médio. Dessa forma,
torna-se mais provável a escolha de valores afinados com a instância real da base de dados.
A mediana de um conjunto de medidas é um valor x tal que, no máximo metade das medidas são menores
do que x e no máximo metade das medidas são maiores do que x. Para encontrar-se o valor mediano de cada
atributo preditivo, primeiro, ordena-se os valores encontrados em cada tupla do banco de dados que possui o
atributo objetivo igual ao especificado. Segundo, escolhe-se o valor mediano como sendo o valor encontrado na
posição [inteiro(n/2) + 1], onde inteiro representa uma função que retorna a parte inteira do argumento n/2 e, n é
- 86 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
o número de tuplas. Utilizando o ATRIBUTO 2 da Tabela 13 e, a CLASSE como atributo objetivo de valor 1,
tem-se o seguinte procedimento:
Tabela 14: Passos para encontrar o valor mediano de um determinado atributo
ATRIBUTO 2
CLASSE
INSTÂNCIA DO BANCO DE DADOS
99
3
200
3
800
2
3
1
3
8
1
1
2
1
2
1
1
2
1
1
SELECIONAR
Passo 1
99
3
ATRIBUTO 2
ORDENAR
Passo 2
2
3
3
3
2
3
3
3
3
8
8
99
VALOR
MEDIANO
3
O primeiro passo é selecionar apenas os valores dos registros do atributo especificado que possuem o
atributo CLASSE com valor 1. O passo seguinte consiste em ordenar esses números. E, no terceiro e último
passo, escolhe-se o valor da posição [inteiro(7/2) + 1] = valor[4] = 3.
Percebe-se que os valores máximo e mínimo para o ATRIBUTO 2, considerando-se o valor especificado
para o atributo CLASSE = 1 está no intervalo (2; 99), enquanto que os limites considerados para a base completa
está no intervalo (1, 800). Entretanto, o valor com maior frequência é 3. Desse modo, deseja-se que o AG gere
valores para os genes que probabilisticamente estejam com maior proximidade desse valor, sem que o restante
do domínio seja afetado. Esquematicamente, a Figura 50 representa essa inicialização, a única diferença está na
troca do Valor Médio pelo Valor Mediano.
A média mede o centro de gravidade de uma conjunto de dados e é consequentemente influenciada por
valores extremos, ao contrário da mediana que os ignora. A mediana qualifica-se como um método de
inicialização que busca a localização do ponto que divide os dados em dois grupos: os superiores e os inferiores
a x.
O outro tipo de inicialização é através de sementes. Uma semente é um cromossoma evoluído em
execuções anteriores do algoritmo genético. Ao iniciar-se um novo experimento, esse cromossoma é inserido na
população inicial de modo a contribuir com o seu material genético já refinado. Neste procedimento de
inicialização apenas n cromossomas são inseridos, o restante dos cromossomas (Tamanho_pop – n) que
completam uma população são escolhidos aleatoriamente incluindo o valor mediano.
O último método de inicialização é através da escolha aleatória de registros do banco de dados. Um
percentual da população, fornecido pelo usuário, será povoado com os valores dos registros do banco de dados.
Nesse caso, ao preencher um cromossoma, os valores dos campos mínimo e máximo são iguais ao valor do
atributo correspondente no bando de dados. O restante da população é escolhido aleatoriamente incluindo o valor
mediano. A vantagem dessa inicialização está no fato de inicialmente apresentar regras com abrangência
diferente de zero, acelerando o processo de busca do AG.
8.6.5. Técnicas e Parâmetros
Várias técnicas e parâmetros foram utilizados na construção do modelo com o objetivo de melhorar o
desempenho do algoritmo genético.
As principais técnicas e parâmetros empregados são:
•Normalização Linear;
•Multiplicador do Valor Máximo na Normalização Linear;
•Elitismo
•Sementes para próximos experimento;
•Valores inicial e final para interpolação de taxas de probabilidade;
•Parâmetros básicos.
A primeira delas foi a Normalização Linear, que classifica os cromossomas de acordo com a ordem de
avaliação, atribuindo aptidões linearmente distribuídas entre os valores: Valor Mínimo a Valor Máximo, que são
parâmetros da técnica. Desta forma, o cromossoma com pior avaliação tem aptidão igual ao valor mínimo, e o de
melhor avaliação, valor máximo. A probabilidade de um cromossoma ser selecionado aumenta linearmente de
- 87 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
acordo com sua posição no ranking [COST97]. Essa técnica reduz a influência de super indivíduos, que são
cromossomas que possuem uma avaliação muito melhor que a dos demais e que portanto, tendem a dominar
rapidamente a população e ainda reduzem a competição próxima entre cromossomas quando a população tende a
convergir. Um parâmetro, chamado multiplicador, foi criado para multiplicar o Valor Máximo em função do
Tamanho da População de modo a alterar a pressão seletiva sobre os melhores.
Outra técnica conhecida e implementada foi a do elitismo, que força a permanência do melhor
cromossoma de uma geração, ou dos n melhores cromossomas, na geração seguinte. Essa técnica foi estendida,
fazendo-se com que esse, ou esses, melhores cromossomas também permaneçam no próximo experimento,
através de um parâmetro chamado semente.
A interpolação de parâmetros procura enfatizar diferentes aspectos da busca em diferentes momentos da
convergência. Dessa forma, os valores das taxas de probabilidade para escolha de cada operador genético na
reprodução são alterados linearmente no decorrer da execução do AG, a partir de um valor inicial até um valor
final, especificados como parâmetros.
Além dos parâmetros já citados, foi implementado o conjunto de parâmetros básicos citados abaixo e são
pressupostos conhecido pelo leitor. Mais detalhes sobre esses parâmetros podem ser encontrados em [COST97],
[DASG97].
Parâmetros básicos de um Algoritmo Genético
NOME
Tamanho da População
Taxas de Operadores (crossover, mutação, ...)
Total de rodadas/número de experimentos
Total de gerações
FUNÇÃO
Número de indivíduos ou soluções que são produzidas
a cada geração
Taxa de probabilidade de um operador ser escolhido
para reprodução de indivíduos
Número de experimentos ou de evoluções completas
do algoritmo genético
Número de populações avaliadas a cada experimento
Por exemplo, supondo um algoritmo genético parametrizado com 40 rodadas, 80 gerações e 100
indivíduos na população, esse cria 8000 indivíduos durante uma evolução completa e 320000 durante todo o
processo.
Tratando-se de objetivos do modelo, criou-se dois tipos. O primeiro busca a evolução da “melhor
regra”, enquanto que o segundo busca “todas as regras” que caracterizam o conjunto de exemplos especificado.
O primeiro tipo fornece as medidas visuais de performance para avaliar o modelo, tais como: gráficos da média
das aptidões dos melhores indivíduos, de toda a população, e do melhor indivíduo; além da média da acurácia e
abrangência dos melhores indivíduos e, do melhor. No segundo tipo esses dados visuais já não refletem o
desempenho do modelo, pois em função da existência de critérios de parada do AG, através de parâmetros
fornecidos pelo usuário, esses dados não possuem consistência para avaliação.
Os critérios de parada do algoritmo genético são:
•Tolerância da melhor regra – o usuário informa o número de gerações cujo o algoritmo genético deve
monitorar o melhor indivíduo, a fim de perceber se a melhor regra até o momento não sofreu
nenhuma alteração. Caso a melhor regra tenha se mantido constante, ou seja, não evoluiu durante as
n gerações, essa será armazenada em um banco de regras.
•Número máximo de regras armazenadas no banco de regras – O usuário informa o número máximo de
regras que descrevem o conjunto de exemplos especificado. Logo, a medida que a evolução vai
ocorrendo, regras vão sendo armazenadas e, caso no número de regras armazenadas chegue ao valor
máximo, o AG será finalizado.
•A não existência de registros no conjunto de exemplos especificado – Caso todos os registros já tenham
sido cobertos pelas regras no banco de regras, então o processo é finalizado.
Sempre que uma regra é inserida no banco de regras, o modelo retira os registros cobertos por ela e,
inicia uma nova evolução/experimento. Uma regra é inserida no banco de regras sempre que o critério de parada
“Tolerância da melhor regra” for atingido, ou pela finalização de um experimento através dos parâmetros
Tamanho da População, Total de Rodadas e Total de gerações. Um detalhe importante é que são inseridas apenas
regras que possuem abrangência diferente de zero. Em função desses critérios, apenas a visualização textual das
regras refletem a performance do modelo.
8.6.6. Funções de Avaliação
- 88 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
A função de avaliação de um Algoritmo Genético oferece uma medida de aptidão que determina a
adequabilidade de uma solução para um problema particular. Portanto, de modo geral, a performance de um AG
depende da medida da aptidão [SANK96]. As seções a seguir descrevem as funções de avaliação utilizadas no
modelo do algoritmo genético para classificação de registros em mineração de dados.
Número-Atributos
Essa função de avaliação acumula ou subtrai o número de atributos cobertos por uma determinada regra
no banco de dados, dependendo do valor do atributo objetivo. Ou seja, se o valor do atributo objetivo num
determinado registro satisfaz a especificação do lado direito da regra (parte ENTÃO), adiciona-se número de
atributos cobertos pela regra, caso contrário, subtrai. A Tabela 15 mostra um banco de dados exemplo para o
cálculo da aptidão de uma regra, composto por dois atributos preditivos (1 e 2) e um atributo meta, chamado
CLASSE.
Tabela 15: Exemplo fictício de um BD utilizado para cálculo de função de avaliação
ATRIBUTO_1
10
15
20
ATRIBUTO_2
5
38
9
CLASSE
1
2
1
Suponha a regra:
“SE ATRIBUTO_1 ≥ 8 e ATRIBUTO_1 ≤ 18
e ATRIBUTO_2 ≥ 3 e ATRIBUTO_2 ≤ 10
ENTÃO CLASSE = 1”
Suponha A, o valor da aptidão dessa regra, inicialmente com valor zero. Essa regra acerta o primeiro e o
segundo atributo do primeiro registro, além do atributo CLASSE, que satisfaz o atributo objetivo especificado,
logo A é adicionado do valor 2 (A = 2). No segundo registro apenas o segundo atributo é satisfeito, porém o
atributo CLASSE não é o especificado, logo A é subtraído do valor 1 (A = 1). No terceiro registro o segundo
atributo e o valor da classe são satisfeitos, incrementando A de mais 1, resultando como aptidão final para essa
regra o valor dois (A = 2).
Distância-Ótima
A função de avaliação Distância-Ótima considera o número de atributos satisfeitos por uma regra como
um ponto no espaço N-dimensional. N representa o número de atributos envolvidos na evolução genética. No
exemplo da Tabela 15, N possui o valor 2, visto que apenas 2 atributos preditivos são considerados. Nesse
cenário, ao estabelecer o valor do atributo objetivo (parte ENTÃO), conhece-se a priori qual o ponto ótimo, pois
sabe-se exatamente quantos registros do banco de dados satisfazem o valor do atributo objetivo especificado.
Supondo CLASSE igual a 1, a Tabela 15 identifica que 2 registros são satisfeitos. A função Distância-Ótima
calcula a distância da regra corrente em relação ao ponto ótimo.
No. Registros com
ATRIBUTO 2 correto
Ponto Ótimo
2
1
Distância
1
2
No. Registros com
ATRIBUTO 1 correto
- 89 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Figura 51: Diagrama esquemático para a interpretação da função de avaliação Distância-Ótima
A Figura 51 mostra um gráfico que interpreta o cálculo da distância ótima para a função de avaliação.
Considerando o exemplo representado pela regra de associação da seção anterior, “SE ATRIBUTO_1 ≥ 8 e
ATRIBUTO_1 ≤ 18 e ATRIBUTO_2 ≥ 3 e ATRIBUTO_2 ≤ 10 ENTÃO CLASSE = 1”, pode-se calcular o
ponto no espaço 2D, que é (0; 2). A primeira cláusula da regra, que se relaciona com o ATRIBUTO_1, embora
acerte dois registros do banco de dados, “apenas” um refere-se a CLASSE 1. Ou seja, o contador de atributos
corretos referente ao ATRIBUTO_1, foi incrementado de 1 por ter acertado o primeiro registro e por satisfazer a
classe especificada; entretanto foi decrementado de 1 por ter acertado o segundo registro que “não” satisfaz a
classe especificada. Na segunda cláusula, dois registros são cobertos e os dois pertencem a “mesma” classe, que
é a especificada na parte ENTÃO da regra. Uma vez conhecido o ponto da regra corrente no espaço NDimensional, calcula-se a distância Euclidiana desse ponto ao ponto ótimo. A distância Euclidiana é calculada
pela Equação 38.
Equação 38: Distância Euclidiana
D=
N
2
∑ (PÓtimoi − PCorrentei )
i
Recompensa-Atributos
Semelhante a função Número-Atributos, a função Recompensa-Atributos tem o mesmo propósito,
maximizar o número de atributos cobertos por uma regra, entretanto sempre que uma regra acerta “todos” os
atributos de um registro e sua respectiva classe, sua avaliação é recompensada, caso contrário, é penalizada.
Quando uma regra acerta parcialmente os atributos, sua avaliação é incrementada da seguinte parcela: Número
de atributos corretos dividido pelo total de atributos, caso a classe do registro seja a especificada na parte
ENTÃO da regra; caso contrário a avaliação é penalizada por essa mesma parcela.
CBayesianos
Essa função de avaliação é a Equação 6. Nela são consideradas as probabilidades de um determinado
valor de atributo ocorrer dado que um valor especificado como atributo objetivo ocorre.
P(A1 = a1| C = c) * P(A2 = a2| C = c) * ... P(Ak = ak| C = c)
Número-Registros
A função de avaliação Número-Registros contabiliza a quantidade de registros cobertos por uma
determinada regra. Considerando o exemplo “SE ATRIBUTO_1 ≥ 8 e ATRIBUTO_1 ≤ 18 e ATRIBUTO_2 ≥ 3
e ATRIBUTO_2 ≤ 10 ENTÃO CLASSE = 1”, sua avaliação é 1, pois apenas um registro é satisfeito.
FAcurácia
Essa função de avaliação está definida na seção, acurácia = |C ∩ P| / (|C ∩ P| + |C ∩ ~P|). Ela busca por
regras que não gerem situações de conflitos, isto é, situações em que registros satisfazem a mais de uma classe.
Essa função por si só, é de difícil evolução, já que existe uma dificuldade inicial de se encontrar uma regra que já
cubra algum registro, porém é capaz de gerar boas sementes para experimentos futuros.
FAbrangência
Essa função de avaliação também está definida na seção 0, abrangência = |C ∩ P| / (|C ∩ P| + |~C ∩ P|).
Seu objetivo é buscar cada vez mais uma quantidade maior de registros satisfeitos por uma regra. Tanto a função
FAcurácia quanto a função FAbrangência são utilizadas como noções descritivas que são facilmente
compreendidas, entretanto elas não são geralmente interessantes como funções de avaliação em sua forma não
modificada [Erro! Indicador não definido.]. Nesse trabalho, buscou-se experimentar essas funções para
identificar suas qualidades.
- 90 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Rule Interest
Essa função de avaliação foi sugerida por [PIAT91] e é essencialmente representada pela Equação 39.
Equação 39: Rule Interest
RuleIntere st = C ∩ P −
(S ∩ C × S ∩ P )
S
Nela S, C, e P são subconjuntos descritivos que representam especificidade, condição e previsão.
Entenda-se especificidade como sendo o banco de dados. Essa função deriva da seguinte situação. Suponha R
uma população, P um grupo de previsão, e C uma condição. Defini-se p = |C ∩ P| / |C|, p0 = |P| / |R|, g = |C| / |R|.
Assume-se que C, P ⊂ R. Regras que pertencem a um R e P fixos são avaliadas no espaço p-g, onde p é a
tendência (fator de certeza) e g é a generalidade (cobertura) de uma condição C. Baseado nisso Piatersky
[PIAT91] introduziu 3 axiomas que as funções de avaliação devem satisfazer.
•E(p0, g) = 0
•E(p, g0) cresce monotonicamente em p para um g 0 fixo
•E(p, g) decresce monotonicamente em g para p = constante/g
Onde E representa o valor esperado. Mais detalhes podem ser encontrados em [FAYY96].
Chi-Square
Dada uma tabela de contingência 2x2, contendo os contadores n11, n12, n21 e n22 de registros que
pertencem a cada um dos subconjuntos, pode-se calcular as somas da coluna c 1 e c2, a soma das linhas l1 e l2 e, o
número total de registros n respectivamente, como mostrado na Tabela 16.
Tabela 16: Tabela de contingência da função de avaliação Chi-Square
~P
n11
n21
c1 = n11 + n21
S∩
~C
C
P
n12
n22
c2 = n12 + n22
l1 = n11 + n12
l2 = n21 + n22
n = n11 + n12 + n21 + n22
Onde ~ significa negação, S o banco de dados, C a condição e P a previsão. Assumindo a independência
de 2 variáveis C e P, o número esperado de registros em cada subconjunto e11, e12, e21, e e22 respectivamente
pode ser calculado pelo produto de sua respectiva linha e coluna, utilizando a lei da probabilidade multiplicativa.
Uma aritmética simples mostra que o número esperado de registros em cada subconjunto é:
Equação 40:Valor esperado de registros
e ij =
ri × c
n
, i , j = 1,2 .
j
Pode ser mostrado que assumindo a independência de C e P tem-se:
Equação 41: Chi-Square
2
ChiSquare = ∑
2
∑
i =1 j =1
(nij − eij ) 2
eij
8.6.7. Recompesa nas funções de avaliação
Todas as funções de avaliação descritas anteriormente, podem ter suas aptidões acrescidas de uma
recompensa. As recompensas podem ser por:
•Acurácia
- 91 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
•Abrangência
•Acurácia e/ou Abrangência
O primeiro tipo de recompensa multiplica a aptidão da regra pela sua respectiva acurácia, similarmente o
segundo tipo multiplica pela sua abrangência. Enquanto que o terceiro tipo multiplica por ambos. As
recompensas são acrescentadas à avaliação se a acurácia ou abrangência forem diferentes de zero. As
recompensas ajudam o modelo na busca por melhores regras.
- 92 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
9.
APÊNDICE
9.1. SOFTWARES COMERCIAIS E SITES
Segue uma lista de alguns softwares disponíveis na área de mineração de dados:
9.1.1. AC2 (www.isoft.fr)
AC2 é um conjunto de bibliotecas em C/C++ que permite a desenvolvedores e profissionais da área
de TI embutir as funcionalidades de DM em seus próprios softwares. AC2 cobre todos os passos do
processo de data mining, da modelagem (modelo OO) até a validação cruzada.
9.1.2. ALICE d’ISoft (www.isoft.fr)
É uma poderosa ferramenta de data mining e de fácil utilização. Utiliza árvores de decisão para
explorar os dados. Gera relatórios, queries, análise “What if”, etc.
9.1.3. AutoClass C (ic-www.arc.nasa.gov/ic/projects/bayesgroup/group/autoclass/autoclass-c-program.html)
AutoClass C é uma versão de domínio público do AutoClass III, com algumas melhoras do
AutoClass X, implementada na linguagem C. AutoClass é um sistema de classificação bayesiana não
supervisionada que procurar a maior probabilidade de classificação. As entradas consistem de atributos de
um banco de dados, de valor real ou discreto, e um valor para a classe.
9.1.4. Clementine (www.isl.co.uk/clem.html)
Clementine é uma ferramenta para data mining vencedora por duas vezes do UK Government’s
(Department of Trade & Industry) SMART award for innovation. As aplicações do Clementine incluem
segmentação de clientes, deteção de fraudes, análise de crédito, etc.
9.1.5. Data Surveyor (www.ddi.nl)
Data Surveyor é uma ferramenta de DM para usuários especializados. Consiste de vários algoritmos
e provê suporte para todos os passos do processo de KDD. Data Surveyor permite que o usuário descubra
conhecimento interativamente, inspecione os resultados durante a descoberta e guie o processo de
descoberta. As aplicações do Data Surveyor incluem banco de dados de marketing, análise de crédito e
risco.
9.1.6. Data Engine (www.mitgmbh.de)
Data Engine é um software para análise de dados usando tecnologias fuzzy, redes neurais, e
estatística convencional. Tem sido aplicada com sucesso nas áreas de planejamento, banco de dados de
marketing, controle de qualidade, análise de processos, e diagnósticos.
- 93 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
9.1.7. Datasage (www.datasage.com)
Provê módulos em C++ que controlam os dados num BD relacional facilitando o seu
gerenciamento. Datasage usa as rotinas de C++ para ler e processar os dados em modo batch. Como
resultado, esse produto pode manipular BDs muito grande. Datasage inclui transformação dos dados,
modelagem e análises, com tecnologias de redes neurais e análises de fatores.
9.1.8. DataScope (http://www.tiszanet.hu/cygron/datascp.htm)
A chave para o conhecimento é mostrar e gerenciar os seus dados da maneira mais compreensiva. É
difícil utilizar a intuição se estamos perdidos numa montanha de números. Entretanto, desde que o
pensamento e a compreensão humana é baseada em informações análogas, DataScope transforma um
conteúdo orientado a números de um banco de dados em um diagrama. Estes diagramas permitem que se
utilize as habilidades intuitivas mais efetivamente.
9.1.9. Outros softwares e sites
C5.0 / See5 - www.rulequest.com
Commercial tools for data mining - www.cs.bham.ac.uk/~anp/dm_docs/oudshoff.tools.posting
DataDetective – www.smr.nl
dbProphet: neural network data mining tool by Trajecta – www.trajecta.com
Explora - http://orgwis.gmd.de/projects/explora/
IBM Visualization Data Explorer – www.almaden.ibm.com/dx/
LEVEL5 Quest – www.l5r.com
ModelQuest Enterprise – www.abtech.com
ModelQuest Enterprise – www.data-mine.com
PV-WAVE – www.vni.com
SE-Learn - http://www.isp.pitt.edu/~rymon/SE-Learn.html
SPSS Data Mining Software – www.spss.com/datamine/
SuperQuery – www.azmy.com
WizRule for Windows – www.wizsoft.com
XpertRule – www.attar.com
9.2. EMPRESAS DE DATA MINING NO BRASIL
- 94 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
9.2.1. http://www.execplan.com.br/
9.2.2. http://vidaconsultores.com.br/infovida/
9.2.3. http://www.rio.com.br/~extend/
9.2.4. http://www.geocities.com/WallStreet/District/2108/ricvill.htm
9.3. EMPRESAS E PRODUTOS EM DATA MINING
9.3.1. American Heuristics/Profiler – www.heuristics.com
9.3.2. Angoss Software/Knowledge Seeker – www.angoss.com
9.3.3. Business Objects/BusinessMiner – www.businessobjects.com
9.3.4. DataMind/DataMindProfessional – www.datamind.com
9.3.5. HNC Software/DataMarksman – www.hncs.com
9.3.6. HiperParallel/Discovery – www.hiperparallel.com
9.3.7. Information Discovery Inc.(IDI)/Information Discovery System –
www.datamining.com
9.3.8. Lucent Technologies/Interactive Data Visualization – www.lucent.com
9.3.9. Nestor/Prism – www.nestor.com
9.3.10. Pilot Software/pilot Discovery Server – www.pilotsw.com
9.3.11. Seagate Software Systems/Holos 5.0 – www.holossys.com
- 95 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
9.3.12. Thinking Machines/Darwin – www.think.com
REFERÊNCIAS
[PIAT91] G. Piatetsky-Shapiro. Knowledge discovery in real databases: A report on the IJCAI-89
Workshop. AI Magazine, Vol. 11, No. 5, Jan. 1991, Special issue, 68-70.
[KELL95] S. Kelly. Data Warehouse applications in the telecommunications industry. Proc. Conf.
Commercial Parallel Processing. London, IBC, 1995.
[SRIK95] R. Srikant and R. Agrawal. Mining generalized association rules. Proc. 21st Very Large
Databases (VLDB) Conf., Zurich, Switzerland, 1995.
[MICH94] D. Michie, D. J. Spiegelhalter and C. C. Taylor. Machine Learning, Neural and Statistical
Classification. New York: Ellis Horwood, 1994.
[FISH87] D. H. Fisher. Knowledge acquisition via incremental conceptual clustering . Machine Learning,
2, 1987, 139-172.
[FAYY96] Fayyad, U. M., Piatetsky Shapiro, G., Smyth, P. & Uthurusamy, R. – “Advances in Knowledge
Discovery and Data Mining”, AAAIPress, The Mit Press, 1996.
[LANG96] P. Langley. Elements of Machine Learning. Morgan Kaufmann, 1996.
[SHAV90] J. W. Shavlik and T. G. Diettrich. (Eds.) Readings in Machine Learning. San Mateo, CA:
Morgan Kaufmann, 1990.
[ELDE96] J. F. Elder IV and D. Pregibon. A statistical perspective on knowledge discovery in data bases.
In: U. M. Fayyad et al. (Ed.) Advances in Knowledge Discovery and Data Mining, 83-113. AAAI/MIT
Press, 1996.
[LEE 95] H-Y. Lee, H-L. Ong and L-H. Quek. Exploiting visualization in knowledge discovery. Proc. 1st
Int. Conf. Knowledge Discovery and Data Mining (KDD-95), 198-203. AAAI, 1995.
[HAYK94] Haykin, S., Neural Networks: A Comprehensive Foundation, Macmillan College Publishing
Company, New York, NY, 1994.
[RUME86] D. Rumelhart and McClelland. (Eds.) Parallel Distributed Processing: Explorations in the
Microstructure of Cognition. Cambridge, MA: MIT Press, 1986.
[NILS80] N. J. Nilsson. Principles of Artificial Intelligence. Palo Alto, CA: Tioga, 1980.
[GOLD89] D. E. Goldberg. Genetic Algorithms in Search, Optimization, and Machine Learning. Reading,
MA: Addison-Wesley, 1989.
[MARCO] Marco Aurélio Pacheco, Notas de Aula em Computação Evolucionária, (www.ica.ele.pucrio.br).
[ADRI97] Adriaans, P., Zantinge, D., Data Mining. Addison-Wesley, 1996.
[FREI98] Freitas, A. A., and Lavington, S. H., Mining Very Large Databases with Parallel Processing.
Kluwer Academic Publishers. 1998.
- 96 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
[AGRA97] R. Srikant, Q. Vu, R. Agrawal: Mining Association Rules with Item Constraints, Proc. Of 3rd
Int’l Conference on Knowledge Discovery in Databases and Data Mining, Newport Beach, California,
August 1997.
[AGRA94] R. Agrawal, R. Srikant: Fast Algorithms for Mining Association Rules in Large Databases,
VLDB-94, Santiago, Chile, Sept. 1994.
[AGRA95] R. Agrawal, H. Mannila, R. Srikant, H. Toivonen and A. I. Verkamo: Fast Discovery of
Association Rules, In Knowledge Discovery in Databases, Volume II, U. M. Fayyad, G. Piatetsky-Shapiro,
P. Smyth, R. Uthurusamy (Eds.), AAAI/MIT Press, 1995.
[HAN 97] E. –H. Han, G. Karypis, V. Kumar: Scalable Parallel Data Mining for Association Rules,
SIGMOD-97, Tucson, Arizona, May 1997.
[FUKU96] T. Fukuda, Y. Morimoto and S. Morishita. Data mining using two-dimensional optimazed
association rules: scheme, algorithms and visualization. Proc. 1996 ACM SIGMOD Int. Conf. Management
of Data, 13-23. 1996.
[MEHT96] M. Mehta, R. Agrawal, J. Rissanen: SLIQ: A Fast Scalable Classifier for Data Mining, EDBT96, Avignon, France, March 1996.
[SHAF96] J. Shafer, R. Agrawal, M. Mehta: SPRINT: A Scalable Parallel Classifier for Data Mining,
VLDB-96, Bombay, India, September 1996.
[SHOL91] Sholon M. Weiss and Casimir A. Kulikowsky, Computer Systems that Learn: Classificationn
and Prediction Methods from Statistics, Neural Nets, Machine Learning, and Expert Systems, Morgan
Kaufman, 1991.
[JAIN88] A. K. Jain and R. C. Dubes: Algoritms for Clustering Data, Prentice Hall, 1988.
[ARAB96] Phipps Arabie and Lawrence J. Hubert: An overview of combinatorial data analysis, In P.
Arabie, L. J. Hubert, and G. De Soete, editors, Clustering and Classification, pages 5-63. World Scientific
Puc., New Jersey, 1996.
[RAYM94] Raymond T.Ng and Jiawei Han: Efficient and effective clustering methods for spatial data
mining, Proc. Of VLDB Conference, Santiago, Chile, September 1994.
[KING81] J. J. King. QUIST: a system for semantic query optimization in relational databases. Proc. 7th
Int. Conf. Very Large Databases (VLDB-81), 510-517. Cannes, France, Sep. 1981.
[FAGI86] R. Fagin and M. Y. Vardi. The theory of data dependencies – a survey. In: M. Anshel & W.
Gewirtz (Ed.) Mathematics of Information Processing, 19-71. American Mathematical Society, 1986.
[QUIN93] J. R. Quinlan. C4.5: Programs for Machine Learning. San Mateo, CA: Morgan Kaufmann, 1993.
[INMO93] W. H. Inmon. Building the Data Warehousing. John Wiley & Sons, 1993.
[POE 96] V. Poe. Building a Data Warehousing for Decision Suport. Prentice-Hall, 1996.
[BALA95] J. Bala, J. Huang, H. Vafaie, K. Dejong and H. Wechsler. Hybrid learning using genetic
algorithms and decision trees for pattern classification. Proc. 14th Int. Joint Conf. AI (IJCAI-95), 719-724.
1995.
- 97 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
[AHA 95] D. W. Aha and R. L. Bankert. A comparative evaluation of sequential feature selection
algorithms. Proc. 5th Int. Workshop on Artif. Intel. And Statistics, 1-7. Ft. Lauderdale, FL. 1995.
[KIRA92] K. Kira and L. ª Rendell. The feature selection problem: traditional methods and a new
algorithm. Proc 10th Nat. Conf. Artificial Intelligence (AAAI-92), 129-134. Menlo Park, CA: AAAI, 1992.
[KONO94] I. Kononenko. Estimating attributes: analysis and extensions of RELIEF. Proc. 1994. European
Conf. Machine Learning., LNAI 784, 171-182. 1994.
[KOLL96] D. Koller and M. Sahami. Toward optimal feature selection. Proc. 13th Int. Conf. Machine
Learning, 1996.
[MANN88] M. V. Mannino, P. Chu and T. Sager. Statistical profile estimation in database systems. ACM
Computing Surveys, 20(3), Seo./88, 191-221.
[DOUG95] J. Dougherty, R. Kohavi and M. Sahami. Supervised and unsupervised discretization of
continuos features. Proc. 12th Int. Conf. Machine Learning, 194-202. 1995.
[FU 94] L. Fu. Neural Networks in Computer Intelligence. MacGraw-Hill, 1994.
[LU 95] H. Lu, R. Setiono and H. Liu. NeuroRule: a connectionist approach to Data Mining. Proc. 21st
Very Large Databases Conf. (VLDB-95). Zurich, 1995.
[VAUG96] M. L. Vaughn. Interpretation and knowledge discovery from de multilayer perceptron network:
opening the black box. Neural Comput. & Applic. (1996) 4: 72-82.
[BIGU96] Bigus, J. P., Data Mining with Neural Network – Solving Business Problems from Application
Development to Decision Support, McGraw-Hill, 1996.
[PERE96] Perelmuter, G., Redes Neurais Aplicadas ao Reconhecimento de Imagens Bi-dimensionais.
Dissertação de Mestrado, DEE, PUC – Rio, 1996.
[DAYH90] Dayhoff, J., Neural Network Architectures: Na Introduction, Van Nostrand Reinhold, New
York, NY: 1990.
[FREE92] Freeman, J. A., and D. M. Skapura, Neural Networks: Algorithms, Applications, and
Programming Techniques, Addison-Wesley, Reading, MA: 1992.
[TRES97] V. Tresp, J. Hollatz, and S. Ahmad. Representing Probabilistic Rules with Networks of Gaussian
Basis Functions. Machine Learning, 27, Page 173, 1997. Kluwer Academic Publishers, Boston.
[TOWE93] G. G. Towell, and J. W. Shavlik. Extracting Refined Rules from Knowledge-Based Neural
Networks. Machine Learning, 13, Page 71, 1993. Kluwer Academic Publishers, Boston.
[HOLL75] John H. Holland, 1975. Adaptation in Natural and Artificial Systems. University of Michigan
Press (Ann Arbor).
[HOLL86] John H. Holland, 1986. Escaping brittleness: the possibilities of general purpose learning
algorithms applied to parallel rule-based systems. Machine Learning, an artificial intelligence approach, 2.
[HOLL92] Holland, J. H., Adaptation in Natural and Artificial Systems, MIT Press, Cambridge, MA: 1992.
[BELE91] Belew, R. and L. Booker, ed., Genetic Algorithms: Proceedings of the Fourth International
Conference, Morgan Kaufmann, CA: 1991.
- 98 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
[AUGI95] S. Augier, G. Venturini and Y. Kodratoff. Learning first order logic rules with genetic
algorithm. Proc. 1st Int. Conf. Knowlede Discovery & Data Mining, 21-26. AAI Press, 1995.
[NERI95] F. Neri and A. Giordana. A parallel genetic algorithm for concept learning. Proc. ICGA-95, 436443.
[ANGL97] C. Angalno, A. Giordana, G. Lo Bello and L. Saitta. A network genetic algorithm for concept
learning. Proc. 7th Int. Conf. On Genetic Algorithms, 434-441. Morgan Kaufmann, 1997.
[JANI93] C. Z. Janikow. A knowledge-intensive genetic algorithm for supervised learning. Machine
Learning, 13, 1993, 189-228.
[IGLE96] B. de la Iglesia, J. C. W. Debuse and V. J. Rayward-Smith. Discovering knowledge in
commercial databases using modern heuristic techniques. Proc. 2nd Int. Conf. Knowledge Discovery &
Data Mining. AAAI, 1996.
[SMIT80] Stephen F. Smith, 1980. A Learning System Based Based on Genetic Adaptative Algorithms.
Phd Thesis, University of Pittsburgh.
[SMIT84] Stephen F. Smith, 1984. Adaptative learning systems. In Richard Forsyth, editor, Expert
Systems, Principles and case studies. Chapman and Hall Ltd.
[DEJO93] Kenneth A. DeJong, William M. Spears, and Diana F. Gordon, 1993. Using genetic algorithms
for concept learning. Machine Learning, 13: 161-188.
[GREE93] David Perry Greene and Stephen F. Smith, 1993. Competition-Based Induction of Decision
Models from Examples. Machine Learning, 13, Page 229. Kluwer Academic Publishers, Boston.
[GREE94] David Perry Greene and Stephen F. Smith, 1994. Using coverage as a model building constraint
in learning classifier systems. Evolutionary Computation, 2(1).
[GIOR94] A. Giordana, F. Neri, and L. Saiat, 1994. Search-intensive concept induction. Technical report,
Università de Torino, Dipartimento de Informatica, Corso Svizzera 185, 10149 Torino, Italy.
[PEI 95] M. Pei, E. D. Goodman, W. F. Punch III, 1995. Pattern Discovery from data using Genetic
Algorithms. Michigan State University’s Center for Microbial Ecology and Beijing Natural Science
Foundation of China. GARAGe – Genetic Algorithms Research and Applications Group.
[TRUN79] G. V. Trunk, A Problem of Dimensionality: A Simple Example, IEEE Trans. Pattern Anal.
Mach. Intelligence, vol. 1, pp. 306-307, 1979.
[FERR94] J. F. Ferri, P. Pudil, M. Hatef, and J. Kittler. Comparative study of techniques for large-scale
feature selection. In: Pattern Recognition in Practice IV, Multiple Paradigms, Comparative Studies and
Hybrid Systems, eds. . S. Gelsema and L. S. Kanal. Amsterdam: Elsevier, 1994. pp. 403-413.
[SIED89] W. Siedlecki and J. Sklansky, A note on Genetic Algorithms for Large-Scale Selection, Pattern
Recognition Letters, vol. 10, pp. 335-347, 1989.
[PUNC93] W. F. Punch, E. D. Goodman, M. Pei, L. Chia-Shun, P. Hovland, and R. Enbody, Further
Research on Feature Selection and Classification Using Genetic Algorithms, International Conference on
Genetic Algorithms 93, pp. 557-564, 1993.
[KELL91] J. D. Kelly and L. Davis, Hybridizing the Genetic Algorithm and the K Nearest Neighbors
Classification Algorithms, Proc. Fourth Inter. Conf. Genetic Algorithms and their Applications (ICGA), pp.
377-383, 1991.
- 99 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
[MORI97] K. Morik, P. Brockhausen. A Multistrategy Approach to Relational Knowledge Discovery in
Databases. Machine Learning, 27, Page 287. Kluwer Academic Publishers, Boston. 1997.
[MUGG92] Muggleton, S., ed. 1992a. Inductive Logic Programing. London: Academic Press.
[RAED92] DE Raedt, L. 1992. Interative Theory Revision: An Inductive Logic Programing Approach.
London: Academic Press.
[LAVR94] Lavrac, N.; and Dzeroski, S. 1994. Inductive Logic Programing: Techniques and Applications.
Chichester, UK: Ellis Horwood.
[ULLM88] Ullman, J. 1988. Principles of Database and Knowledge Base Systems, Volume I. Rockville,
Mass.: Computer Science Press.
[QUIN90] Quinlan, J. 1990. Learning Logical Definitions from Refations. Machine Learning, 5(3): 239266.
[LAVR91] Lavrac, N.; Dzeroski, S.; and Grobelnik, M. 1991. Learning Nonrecursive Definitions of
Relations with LINUS. In Proceedings of the Fifth European Working Session on Learning, 265-281.
Berlin: Springer-Verlag.
[SULL86] O’Sullivan F., Yandell, B. S., and Raynor, W. J. Jr. 1986. Automatic Smoothing of Regression
Functions in Generalized Linear Models. Journal of the American Stastical Association 81: 96-103.
[FRIED95] Friedman, J. H. 1995. An Overview of Predictive Learning and Function Approximation. In
From Statistics to Neural Networks: Theory and Pattern Recognition Applications, ed. V. Cherkassky, J. H.
Friedman, and H. Wechsler. Berlin: Springer.
[WEIS91] Weiss, S. M.; and Kulikowsky, C. A. 1991. Computer Systems that Learn: Classification and
Prediction Methods from Statistics, Neural Networks, Machine Learning, and Expert Systems. San Mateo,
Calif.: Morgan Kaufmann.
[SHEN 93] Shen W. M. 1993. Bayesian probability theory – A general method for machine learning MCCCarnot-101-93. Microelectronics and Computer Technology Corporation, Austin, TX.
[WEI 98] Wei-Min Shen, Information Sciences Institute, University of Southern California. UCLA Data
Mining Short Course, 1998.
[CHEE96] Cheeseman P, Stutz, J., Bayesian Classification (AutoClass): Theory and Results. Advances in
Knowledge Discovery and Data Mining, U. M. Fayyad, G. Piatetsky-Shapiro, P. Smyth, and R.
Uthurusamy Editors, 6:153-180, 1996.
[HECK96] Heckerman D., Bayesian Networks for Knowledge Discovery. Advances in Knowledge
Discovery and Data Mining, U. M. Fayyad, G. Piatetsky-Shapiro, P. Smyth, and R. Uthurusamy Editors,
11:273-305, 1996.
[ALIF94] Aliferes, C.; and Cooper, G. 1994. An Evaluation of an Algorithm for Indutive Learning of
Bayesian Belief Networks Using Simulated Data Sets. In Proceedings of Tenth Conference on Uncertainty
in Artificial Intelligence, 8-14. San Francisco: Morgan Kaufmann.
[BUNT95] Buntine, W. 1995. A Guide to the Literature on Learning Graphical Models. Technical Report
IC-95-05, NASA, Ames Research Center.
[CHAR91] Charniak, E. 1991. Bayesian Networks Without Tears. AI Magazine, 12: 50-63.
- 100 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
[SPIE93] Spieglhalter, D.; Dawid, A.; Lauritizen, S.; and Cowel, R. 1993. Bayesian Analysis in Expert
Systems. Statistical Science, 8: 219-282.
[AGRA92] R Agrawal, S. Ghosh, T. Imielinsky, B. Yer and A. Swami. An interval classifier for database
mining applications. Proc. 18th Int.. Conf. Very Large Databases, 560-573. Vancouver, 1992.
[ESPO95] F. Esposito, D. Malerba and G. Semeraro. Simplifying decision trees by prunning and grafting:
new results. Proc. 8th European Conf. Machine Learning, ECML-95, 287-290. LNAI-912.
[PEAR85] J. Pearl. Heuristics: Intelligeny Search Strategies for Computer Problem Solving. Reading, MA:
Addison-Wesley, 1985.
[WINS92] P.H. Winston. Artificial Intelligence . 3rd Ed. Reading, MA: Addison-Wesley, 1992
[MICH83] R. W. Michalski. A theory and methodology of inductive learning. Artificial Intelligence, Vol.
20, 1983, 111-161.
[HOLS94] M. Holsheimer and A. Siebes. Data mining: the search for knowledge in databases. Report CSR9406. Amsterdam, the Netherlands: CWI, Jan. 1994.
[LANG95] P. Langlay and H. A. Simon. Applications of Machine Learning and Rule Induction. Comm. of
the ACM 38(11), Nov./95, 55-64
[CLAR91] Clark, P.; and Boswell, R. 1991. Rule Induction with CN2: Some Recent Improvements. In
Proceedings of Fifth European Working Session on Learning, 151-163. Berlin: Springer-Verlag.
[SHEN 92] Shen W. M. 1992. Complementary discrimination learning with decision lists. Proceedings of
Tenth National Conference on Artificial Intelligence. MIT Press.
[KLOE94] W. Klösgen, 1994. Exploration of simulation experiments by discovery. In Proceedings of
KDD-94 Workshop. AAAI.
[ZYTK91] Jam M. Zytkow and John Baker, 1991. Interative mining of regularities in databases. In Gregory
Piatetsky-Shapiro and Willian J. Frawley, editors, Knowledge Discovery in Databases, pages 31-53. MIT
Press.
[ZYTK93] Jam M. Zytkow and Robert Zembowicz, 1993. Database exploration in search of regularities.
Journal of Intelligence Information Systems, 2: 39-81.
[DASG97] D. Dasgupta, Z. Michalewicz, Evolutionary Algoritms in Engineering Applications, (Eds.)
Springer, 1997.
[DHAR97] V. Dhar, R. Stein, Seven Methods for Transforming Corporate Data into Business Intelligence,
Prentice-Hall, 1997.
[DAVI96] L. Davis. (Ed.) Handbook of Genetic Algorithms. Int. Thomson Comp. Press 1996.
[AGRA93] R. Agrawal, T. Imielinski and A. Swami. Mining Association rules between sets of itens in
large databases. Proc. 1993 Int. Conf. Management of Data (SIGMOD-93), 207-216. May/93.
[MICH94] Z. Michalewicz, Genetic Algorithms+Data Structures=Evolution Programs, Springer-Verlag1994.
- 101 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
[KLÖS96] Willi Klösgen and Jan M. Zytkow. Knowledge Discovery in Databases Terminology. Advances
in Knowledge Discovery and Data Mining, Usama. M. Fayyad, Gregory. Piatetsky-Shapiro, Padhraic
Smyth, and Ramasamy Uthurusamy Editors, 573-592, 1996.
[COST97] Rodrigo M. L. de A. Costa. Um Estudo Sobre o Desempenho e a Convergência de Algoritmos
Genéticos. Dissertação de Mestrado. Pontifícia Universidade Católica do Rio de Janeiro, Departamento de
Engenharia Elétrica, 1997.
[SANK96] Sankar K. Pal and Paul P. Wang. Genetic algorithms for pattern recognition. CRC Press, Inc.
1996.
- 102 –
ICA – Lab. Inteligência Computacional Aplicada , DEE, PUC–Rio (Versäo 26/08/99)
Download