Fundamentação Teórica
AGs: Algoritmos de busca baseados nos mecanismos de seleçãoo natural
e na genética. Implementam estratégias de buscas paralelas e aleatórias
para solucionar problemas de otimização [Goldberg 1989].
Para implementação é necessário:
Representação do problema no formato de um código genético
População inicial que contenha diversidade suficiente
Método para medir a qualidade de uma solução (fitness)
Procedimento de combinação para gerar novos indivíduos
Critério de escolha das soluções que permanecerão na população ou
serão retirados
Procedimento para introduzir novas alterações em algumas soluções
da população.
Problemas Complexos
Meta-heurística Tabu (Kurahashi S.; Terano T.,
2000.)
Evolução Cooperativa (Potter, M.A.; De Jong K.,
2000)
Criação de Nichos (Hiroyasu T.; Miki M.;Watanabe S.,
1999)
Técnicas para Melhorar AGs
AGS são apropriados para problemas complexos, mas
algumas melhorias devem ser feitas, permitindo
trabalhar com problemas multimodal e multiobjetivo.
Sharing ou Compartilhamento de Recursos reduz o valor de aptidão de indivíduos que tem
membros altamente similares dentro da populaçao;
Evolução Cooperativa força a competição entre
espécies
Integração de Algoritmos Genéticos com
Algoritmos de Busca Simulated annealing, Hill
climbing, Busca tabu, entre outros.
Sharing
Limita o crescimento descontrolado de espécies
particulares dentro de uma população;
Força uma maior diversidade populacional
Similaridade pode ser medida tanto no espaço
genotípico como no espaço fenotípico;
Genotípico: atributos iguais entre dois indivíduos
Fenotipico: exemplos de treinamento cobertos pela
regra.
(GOLDBERG; RICHARDSON, 1987)
Meta-heurística Tabu - [Kurahashi e Terano,
2000].
tabu
População (t)
Candidatos (t+1)
muta₤₧o
similar
AG
Renovado
Renovado
passou
tabu
Esp₫cie - 1
indivíduo
EA
Popula₤
₧o
fitness
Modelo do
Domínio
Esp₫cie - 1
EA
Esp₫cie - 2
EA
Esp₫cie - 3
EA
representante
Esp₫cie 1 - Avalia₤₧o
Popula₤₧o
representante
Esp₫cie 2 - Avalia₤₧o
Popula₤
₧o
Esp₫cie - 3
EA
Popula₤₧o
Esp₫cie - 2
EA
Esp₫cie - 1
EA
Popula₤₧o
representante
fitness
Modelo do
Domínio
representante
Esp₫cie - 2
EA
Popula₤₧o
Popula₤₧o
representante
indivíduo
Popula₤₧o
Modelo do
Domínio
representante
Esp₫cie - 3
EA
fitness
indivíduo Popula₤
₧o
Esp₫cie 3 - Avalia₤₧o
Evolução Cooperativa - [Potter e De Jong 2000]
Criação de Nichos [Hiroyasu T.; Miki M.;Watanabe S., 1999]
GADBMS
GADBMS: sistema classificador baseado na indução de
regras.
Utiliza um algoritmo genético restrito por x listas Tabu
para efetuar a busca das regras (x = quantidade classes)
Implementado em C++ com interface DOS
Conjuntos de dados devem estar armazenados em banco
de dados
Arquitetura do GADBMS
Módulo Configura₤₧o
Recebe os parâmetros de entrada:probabilidade de
cruzamento, mutação, probabilidade de criação de
restrições vazias, medida de similaridade (genótipo /
fenótipo), tamanho da lista longa e da lista curta, etc.
Arquivo contendo a seguinte informação:
CLASSES 0,1,2.
v1
continuous.
v2
1,2,3.
v3
0,1.
v4
1,2,3,4,5.
v5
continuous.
v6
0,1.
v7
continuous.
v8
continuous.
Módulo GATABU
População
classes v1 (min) v1(máx)
v2
v3
v4 ...
1
0.85
1.26
1
*
3
0
0.15
*
1
0
1
1
0.85
1.26
1
1
3
1
*
1.02
*
0
5
2
*
*
3
0
4
IF v1 >= 0.85 AND v1 <= 1.26
v2 =
1
v3 =
*
v4 =
3
Then classes = 1
FITNESS = 0.81818182
Módulo GATABU
Função de Aptidão
(VP + 1)/(VP+FP+K)
VP, exemplos positivos corretamente classificados pela
regra
FP, exemplos negativos incorretamente classificados
como positivos
K, ₫ o número de classes no domínio
Módulo GATABU (AG Restrito)
Mutação
x ListasTabu
População
(t)
Seleção
Cruzamento
Mutação
População
(t+1)
Módulo GATABU
Similaridade:
Genótipo - quantidade de atributos similares ou
id₨nticos na regra;
Fenótipo - quantidade de registros corretamente
classificados pela regra.
Cruzamento em dois pontos;
Mutação:
Escolhe aleatoriamente um dos atributos e altera o
valor de acordo com os valores pré-definidos no
módulo de configuração.
Módulo Regras Extraídas
Reúne em um só conjunto as regras armazenadas nas
Listas Longas para verificação da precisão do
classificador;
Ordena de uma maneira apropriada;
Elimina regras que não cobrem nenhum exemplo no
conjunto de treinamento;
Classe padrão será aquela que possuir mais registros não
cobertos pelas regras;
Avalia as regras verdadeiras na base de teste;
Experimentos Realizados
Conjuntos de dados analisados (UCI)
(LIM;LOH;SHIH,1999;LOPES;POZO,2001)
Nome
Tam.
Classes Atributos Atributos
(D)
(C)
BLD
345
2
6
BLD+
345
2
15
PID
532
2
7
PID+
532
2
15
SMO
1855
3
3
5
SMO+
1855
3
10
5
VOT
435
2
16
VOT+
435
2
30
D - atributo discreto, C - atributo continuo, + dados com ruídos
Resultados Obtidos
Similaridade aplicada no conjunto de dados Smoke
Genótipo
Fenótipo
3
10
Taxa de erro
0,3050
0,3050
Popula₤₧o
200
200
4
4
00:01:56
00:16:58
Regras encontradas
Distância
Tempo (hh:mm:ss)
Distância 4
Genótipo: corresponde a quantidade de atributos iguais
Fenótipo: percentual de indivíduos cobertos (4 = 40%)
Resultados Obtidos Precisão
LIM;
Nome
Min
LOH;
SHIH
LOPES;POZO GADBMS
Max.
Mediana
Mediana
Mediana
BLD
0,2790 0,4320
0,3220
0,3775
0,3862
BLD+
0,3130 0,4410
0,3490
0,3475
0,4219
PID
0,2210 0,3100
0,2380
0,2593
0,2576
PID+
0,2210 0,3180
0,2500
0,2778
0,2705
SMO
0,3040 0,4240
0,3050
0,3008
0,3050
SMO+
0,3050 0,4110
0,3050
0,3068
0,3050
VOT
0,0364 0,0580
0,0457
0,0582
0,0503
VOT+
0,0412 0,0662
0,0469
0,0611
0,0455
MEDIA
0,2151 0,3075
0,2327
0,2486
0,2553
Resultados Obtidos
GADBMS obteve taxa de erro de 0,2553.
Comparado à taxa de erro dos 23 algoritmos
apresentados por (LIM; LOH; SHIH, 1999; LOPES;
POZO, 2001),que obtiveram taxa de erro de 0.2151 e
0.2486, GADBMS não é estatisticamente diferente
desses algoritmos ao nível de 10%, pois a diferença
entre eles não é maior que 0,058 (M₫todo Tukey).
De acordo com a análise de rank, GADBMS obteve a
posição 15,2. Segundo HOLLANDER (1999), a
diferença na m₫dia dos ranks maior que 8.7 ₫
estatisticamente significante ao nivel de 10%. Dos 22
algoritmos (LIM;LOH,SHIH,1999) a melhor posição
ficou com o algoritmo QL1 (7,6) e a pior posição ficou
com o algoritmo IB (19,1).
Conclusões
Com o GADBMS as regras podem ser encontradas em
apenas uma execução;
Uso de comandos SQL possibilita a execução do classificador
em bases de dados relacionais;
Mostrou efici₨ncia trabalhando com populações pequenas;
Se encontrada uma função de aptidão adequada ao
problema tratado, a precisão pode ser melhorada;
A medida de similaridade também mostra ser um parâmetro
importante na busca das regras;
A classificação utilizando regras tem a vantagem de ser
facilmente compreendida por humanos.
Trabalhos Futuros
Executar a ferramenta em conjuntos maiores de dados,
analisando tamb₫m o tempo de execução e as regras
encontradas;
Utilizar novos conjuntos de parâmetros e funções de aptidão
que possam vir a aumentar a precissão do classificador;
Encontrar uma medida de distância adequada que possa ser
aplicada indiferente aos tipos de atributos que estão sendo
avaliados;
Utilizar novas heurísticas na busca das regras, como a
utilização da Evolução Cooperativa.
Programação Genética
$
$
$
Programação Genética (PG): método de
indução de programas baseado na
seleção natural das espécies.
Objetivo: evoluir uma população de
programas candidatos à solução de um
dado problema.
Função de aptidão ao ambiente (fitness):
mede a habilidade de um programa para
resolver um problema
Funcionamento da PG
$
É feito iterativamente em quatro etapas:
$ 1. Gera-se população inicial de programas
de forma aleatória
$ 2. Avaliação dos programas (função de
aptidão)
$ 3. Com base nos valores de aptidão,
programas sofrem ação de operadores
genéticos: reprodução, cruzamento,
mutação
$ 4. Aplicação dos operadores genéticos
segue até que uma nova população tenha
sido gerada
F={+, -, *, /}
T = { x, 2 }
Árvore de Sintaxe Abstrata de x*x+2
+
*
X
2
X
Exemplo de criação de programa
Terminais: T={A,B,C}
Fun₤ões:
F={+,*,%,If,Lte}
Come₤e com + e 2arg
Continue com * e 2arg
Complete com terminais
A,B,C
O resultado é um prog.
Executavel, Closed
+
+
*
+
C
*
A
B
Mutuação
2 tipos de mutuções são possiveis
Uma função pode substituir uma função
ou um terminal pode substituir outro;
Um subtree pode ser substituido o novo
subtree é gerado aleatoriamente ao
igual que a população inicial.
Implementação
Lil-gp: ferramenta de PG
Problema da Formiga de Santa Fé
Melhorando a Taxa de Erro na
Tarefa de Classificação
Celso Yoshikazu Ishida, Dra. Aurora T. R. Pozo
[email protected], [email protected]
Departamento de Informática,
Universidade Federal do Paraná,
Centro Politécnico, Jardim das Americas
81531-970 Curitiba - PR, Brazil
Resumo
Introdução
Objetivos do Trabalho
DM, Classificação
GGP
GPSQL Miner
Experimentos
Conclusão
Mineração
A atual “era da informação” é
caracterizada por uma expansão
extraordinária do volume de dados.
Esta situação tem gerado demandas por
novas técnicas e ferramentas que, com
eficiência, transformem os dados
armazenados e processados em
conhecimento útil.
Classificação
Dado um conjunto de instâncias.
A tarefa de classificação encontra uma
descrição lógica (modelo) para um
atributo objetivo a partir de um
conjunto de atributos descritores.
Tabela: Cliente
Alias: C
Cli
1
2
3
4
Estuda
Trabalha
Sim
Não
Sim
Sim
Sim
Sim
Não
Não
Tabela: Venda
Alias: V
Cli
1
1
2
2
2
3
Comp
Preço
Venda R$
C20
C30
C10
C20
C21
C30
1100
400
2000
1100
3100
400
Tabela: TipoComputador
Alias: T
Comp
C10
C20
C21
C30
Tipo
(goal)
Laptop
Desktop
Desktop
HandHeld
Preço
(R$)
2000
1000
3000
500
IF C.Estuda = ‘Não’ and C.Trabalha = ‘Sim’ and V.PrecoVenda = T.Preco THEN T.Tipo = ‘Laptop’
ELSE IF C.Trabalha = ‘Sim’ and T.Preco < V.PrecoVenda THEN T.Tipo = ‘Desktop’
ELSE IF C.Estuda = ‘Sim’ and T.Preco > V.PrecoVenda THEN T.Tipo = ‘Handheld’
GPSQL Miner ?
Classificação em SGBD com GGP
GP - Genetic Programming
SQL - formato do classificador é SQL
Miner - ferramenta para mineração de
dados
GPSQL Miner – GP ?
Porque utilizar GP ?
Manipula dados inválidos e imprecisos. São
dados que podem impossibilitar a um
algoritmo encontrar uma solução adequada
para o problema.
Fácil adaptação a diferentes aplicações
Procura paralela implícita pelo espaço de
busca
GPSQL Miner – GGP ?
Porque GGP ?
Automatizar o processo
Uma vez que o sistema gera automaticamente
a gramática de acordo com a base de dados
Para gerar apenas soluções válidas
(indivíduos)
Orientar operações genéticas
GPSQL Miner
Porque utilizar SGBD ?
R: Para aproveitar as vantagens: [Freitas]
Informações em SGBD (DataWarehouse)
Re-utilização e redundância
Recursos SGBD:
Escalabilidade
Controle de segurança e privacidade
Paralelismo (Parallel SQL Servers)
GPSQL Miner
Porque utilizar SGBD ?
Definição da gramática de acordo com o
problema através da pesquisa de
informações na base de dados
Possibilitando a geração automática de
classificadores
GPSQL-Miner
IF C.Estuda = ‘Não’ and C.Trabalha = ‘Sim’ and V.PrecoVenda = T.Preco THEN T.Tipo =
‘Laptop’
ELSE IF C.Trabalha = ‘Sim’ and T.Preco < V.PrecoVenda THEN T.Tipo = ‘Desktop’
ELSE IF C.Estuda = ‘Sim’ and T.Preco > V.PrecoVenda THEN T.Tipo = ‘Handheld’
S ‘Laptop’ W C.Estuda = ‘Não’ and C.Trabalha = ‘Sim’ and V.PrecoVenda = T.Preco
S ‘Desktop’ W C.Trabalha = ‘Sim’ and T.Preco < V.PrecoVenda
S ‘Handheld’ W C.Estuda = ‘Sim’ and T.Preco > V.PrecoVenda
Programação Genética
Usa um processo de evolução baseado
em Darwin para inducir programas
Inspirados na Teoria da Evolução: os
indivíduos mais adaptados
sobrevivem
Algoritmos Evolucionarios
Uma população de individuos
A noção de fitness
Um ciclo de nascimento e morte
baseados na fitness
A noção de herança
Grammar Based Genetic Programming
Arquivo BNF para base de dados de vendas de computadores.
1 Start ::= <classifier>
2 <classifier> ::= <r> <r> <r>
3 <r> ::= S <goal> W <cond> | S <goal> W <cond> and <cond> | S <goal> W <cond> and
<cond> and <cond>
4 <goal> ::= ‘Laptop’ | ‘Desktop’ | ‘Handheld’
5 <cond> ::= C.Estuda = <boolean> | C.Trabalha = <boolean> | T.Preco <Noperator>
<value_T.P> | V.PrecoVenda <Noperator> <value_V.PV>
6 <value_T.P> ::= V.PrecoVenda | 500 | 1000 | 2000 | 3000 | random( 400, 3100)
7 <value_V.PV> ::= T.Preco | 500 | 1000 | 2000 | 3000 | random( 400, 3100)
8 <boolean> ::= ‘Sim’ | ‘Não’
9 <Noperator> ::= = | != | < | > | <= | >=
Qualidade Classificador
Capacidade de compreensão do
conhecimento descoberto
Tamanho Classificador
Número de Regras
Simplificação do Classificador
Critérios subjetivos
Taxa de Erro
GPSQL Miner
SQL
Parameters
Oracle
BNF File
SQL-BNF
Oracle
Evaluate
Crossover
Statistics File
GP
Config
File
Mutation
Statistics File
SQL Parameter File
//Tables
P -> Pessoa
Com -> Endereco
//Goal
Column -> Compra
Table -> L
//Columns
Column -> L.GENERO
Column -> L.PAIS
Column -> L.IDADE
Experimentos
Comparação com 33 algoritmos
22 algoritmos de árvore de decisão
9 clássicos e modernos algoritmos
estatísticos
2 algoritmos de redes neurais
Databases: 16 databases
8 com ruído ‘+’
Execução
Cada Database foi executado 10 vezes
10 sub-conjuntos distintos (ten-fold crossvalidation)
Train 90% e Test 10%
Calculado o Accuracy do melhor indivíduo de
cada Run
Calculado a média de Accuracy
Comparação
Foi feita a transformação de variáveis
sugerida por [Box & Cox 1964] devido
ao fato que as variâncias não se
mostraram homogêneas.
Detectou-se uma relação positiva entre
as médias da variável resposta e a
variabilidade dadas mesmas.
Box, G.E.P. and Cox, D.R.(1964) An analysis of transformations. JRSS B 26:211-246.
Comparação
A transformação Box-Cox tornou as
variâncias homogêneas de acordo com
os pressupostos das análises.
Para comparação das médias foi
utilizada a análise de variância para o
modelo em blocos ao acaso e o teste de
Tukey para comparação das médias.
Programa R - http://www.r-project.org/
Conclusão
Utilização SGBD ajuda na criação do
arquivo BNF de acordo com cada base
GPSQL Miner:
Boa representação de conhecimento para
problemas de Classificação
É melhor do que XX algoritmos com 95%
de segurança
Arquivos de estatísticas podem ser usados
para melhorar a própria ferramenta
Trabalhos Futuros
Aplicação em outros domínios
Melhorar performance (tempo)
Adaptação automática de parâmetros
Melhorar a Accuracy
Criar outros operadores genéticos (dropping
conditional)
Melhorar os pontos de crossover e mutação
Descoberta automática do número de regras