População - Departamento de Informatica

Propaganda
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
Download