Algoritmos Bio-inspirados
Conceitos e Aplicaçõesem Aprendizado de Máquina
Gisele L. PappaDepartamento de Ciência da Computação
Universidade Federal de Minas [email protected]
Parte 2 (Continuação): Aprendizado de Máquina e
Mineração de Dados
Mineração de Dados:Foco em Classificação
Classificação
• Conjunto de exemplos cuja classe é conhecida
• Induz um modelo a partir dos exemplos de treinamento
– Modelo define como o conhecimento será representado
• Testa o modelo em um conjunto de teste, diferente do conjunto de treinamento
• 2 fases: treinamento e teste
Dados de
Treinamento
NAME RANK YEARS TENURED
Mike Assistant Prof 3 no
Mary Assistant Prof 7 yes
Bill Professor 2 yes
Jim Associate Prof 7 yes
Dave Assistant Prof 6 no
Anne Associate Prof 3 no
Algoritmos de
Classificação
IF rank = ‘professor’
OR years > 6
THEN tenured = ‘yes’
Classificador
(Modelo)
Fase 1:Treinamento
Classificador
Dados de
Teste
NAME RANK YEARS TENURED
Tom Assistant Prof 2 no
Merlisa Associate Prof 7 no
George Professor 5 yes
Joseph Assistant Prof 7 yes
Dados Novos
(Jeff, Professor, 4)
Tenured?
Fase 2: Teste
Tipos de Modelos de Classificação
• Modelos de conhecimento compreensível– Regras de decisão
– Árvore de decisão
– Redes Bayesianas
• Modelos “caixa preta”– SVMs (Support Vector Machines)
– Redes neurais
– KNN
• Algoritmos evolucionários podem ser usados para gerar os 2 tipos de modelos
Algoritmos de Indução de Regras
• Geram modelos do tipo
SE (deitado na carteira = verdadeiro)
ENTÃO AULA_RUIM
..............
SE (perguntas > 5)
ENTÃO AULA_BOA
Avaliação dos algoritmos de classificação
Avaliação
• Normalmente é feita utilizando a taxa de acerto ou acurácia
– Problemas com classes não-balanceadas
• Outras métricas mais pertinentes
– Sensitividade
– Especificidade
– Precisão
– F1
Acurácia – Taxa de erros
• Acc(M) = porcentagem dos exemplos de teste quesão corretamente classificadas.
• Err(M) = 1 – Acc(M)
• Matriz de Confusão
C1 C2
C1 Positivos
verdadeiros
Falsos
Negativos
C2 Falsos
Positivos
Negativos
verdadeiros
Classes Preditas
Classes Reais
Classes “não-balanceadas”
Exemplo : acc(M) = 90%
C1 = tem-câncer (4 pacientes)
C2 = não-tem-câncer (500 pacientes)
• Classificou corretamente 454 pacientes que não tem câncer
• Não acertou nenhum dos que tem câncer
• Pode ser considerado como “bom classificador”
mesmo com acurácia alta ?
Medidas para classificadores (classes não-balanceadas)
Sensitividade (recall) = true-pos pos
Especificidade = true-negneg
Precisão = true-pos true-pos + falso-pos
% pacientes classificados corretamente
como positivos dentre todos os que foram classificados como positivos
% pacientes classificados corretamente
como positivos dentre todos os que realmente são positivos
Precisão e Recall : medidas originadas em Recuperação de Informação
utilizadas em Classificação, quando se lida com “classes não-balanceadas”
Medida F1 : Média harmônica de Precisão e Recall
• Média harmônica entre dois números x e y tende a ser próxima de min(x,y)
• F1 alto implica que precisão e recall são razoavelmente altos.
r + pF1 =
2 rp
Parte 3:Algoritmos Evolucionários em
Mineração de Dados
AEs e Mineração de Dados
Conjunto de Treinamento
Algoritmo de Classificação
Modelo de Classificação
Conjunto de Teste
AEs para evoluir
algoritmos
AEs para evoluir
modelos
AEs para evoluir
dados
Esquema básico de execução da tarefa de classificação
Sumário
• Algoritmos Genéticos para Seleção de Atributos
• Algoritmos Genéticos e Programação Genética para Classificação
– AGP
– Credibilidade
• Programação Genética para Criação de Algoritmos de Indução de Regras
Algoritmo Genético para Seleção de Atributos
Seleção de Atributos em dados de alta dimensão
• 2 abordagens principais:
– Filtro (independe do classificador)
– Wrapper (dependente do classificador)
Dados de Treinamento
Algoritmo de Seleção
Atributos Selecionados
Dados de Treinamento
Algoritmo de Seleção
Atributos Selecionados
Algoritmo de Classificação
Filtro Wrapper
Seleção de Atributos Wrapper em Imagens Médias
• Objetivo
– Criar modelos de prognóstico de pacientes com linfoma baseado em imagens obtidas em exames PET (tomografia de emissão de positrons)
• Dados de alta dimensão extraídos de imagens
– Pré-processamento• Seleção de atributos com algoritmos genéticos
Antes do Tratamento 2 ciclos de quimio 4 ciclos de quimio
Representação dos indivíduos
• Utilizando um vetor de bits, onde cada posiçãorepresenta a presença ou ausência de um atributo
• Fitness– A cada geração o algoritmo de classificação é
executado e avaliado
• Operadores genéticos padrão
Esquema do algoritmo implementado
PopulaçãoInicial
Seleção
ReproduçãoNova
População
Fitness
Critério de paradasatisfeito?
Não
Sim
Crossover
Mutação
pcross
preprod
pmut
Retorna melhor solução
Fitness
FitnessDados de
treinamento
Seleção dos atributos
ClassificadorDados de
treinamentomodificados
Dados devalidação
Modelo
Métrica deQualidade
Fitness
Vantagens e desvantagens
• Vantagens
– Consideram interações entre os atributos
– Busca global
• Desvantagens
– Tempo computacional (acontece com qualquer método wraper)
Algoritmos Evolucionários em Clasificação
Muita coisa já foi feita…
• Tanto algoritmos genéticos quanto programação genética podem ser utilizadas
• Os tipos de modelos que podem ser representados variam, sendo os mais comuns:
– Árvores de decisão
– Regras de decisão
– Funções matemáticas
Exemplo de representação - GA
• Utilizando um conjunto de regras em GA
• 2 abordagens principais– Pittsburgh
• Indivíduo representa um conjunto de regras
– Michigan• Indivíduo representa uma regra
• Classe normalmente é mantida fixa
• Atributos são representados– De forma binária
– Utilizando uma codificação de alto nível
Exemplo de representação - GA
• Atributos com codificação binária– Atributos categóricos recebem um bit para cada valor
possível que podem assumir• ESTADO CIVIL: casado, solteiro, divorciado, viúvo
– Representados por 4 bits 0000
– 2 bits podem estar ativos simbolizando um OR
– Todos os bits ativos excluem automaticamente a condição da regra
– Atributos contínuos são discretizados (dividido em intervalos) e modelados como categóricos
• Idade dividida em 5 intervalos:
0-18, 19-25, 26-40, 41-70, 70-..., representada por 5 bits
Exemplo de representação - GA
• Atributos com codificação de alto nível– Cada gene representa uma condição da regra, dividida
em 3 partes• Atributo Operador Valor (ex: idade > 18)
• Um bit extra pode ser incluído para tornar o tamanho do genoma variável
– Classe definida pela maioria de exemplos que obedecem a regra
Sexo = Masculino Salário = Alto Idade > 18
Sexo = Masculino 1 Salário = Alto 0 Idade > 18 1
Exemplo de representação - GP
• Utilizando GP
– Regras de decisão
Idade >= 25
Sexo = F
And
Or
Casado= Sim
Se ((idade >= 25) E (sexo = feminino) ) OU (casado = sim) então Classe mais frequente nos dados
Exemplo de representação - GP
• Utilizando GP• Funções matemáticas (para bases apenas com
atributos numéricos e classes binárias)
• Classe determinada aplicando um limiar sobre o resultado retornado pelo indivíduo– Ex: Todos exemplos com valor > 0.5 pertencem a classe 1
valor < 0.5 são classe 2
Tamanho 4
*
+
Largura
Tipos de Representação
• Baseada em aplicação
– Classificação de documentos. Atributos binários
34
Exemplo de Representação
• Vetor binário representando termos quedevem estar presentes ou ausentes nosdocumentos representados por aquela classe
• A classe de um exemplo e é determinanda de acordo com a expressão abaixo:
Inicialização não-aleatória da população
• Para classificação, a inicialização aleatório não faz muito sentido. Por que?
• Gerar indivíduos representando dados que não aparecem na base é um desperdício de memória e tempo de avaliação de fitness
• Inicializa-se indivíduos a partir de exemplos presentes no conjunto de treinamento
Operadores específicos
• Existem 2 operadores específicos para o caso de indução de regras
– Especialização
• Adiciona uma (ou mais) condição a regra ou altera valor de atributo numérico
– Generalização
• Remove uma (ou mais) condição da regra
Sexo = Masculino Salário = Alto Idade > 40
Sexo = Masculino Salário = Alto Idade > 18 Graduado = Sim
Sexo = Masculino Idade > 18
AGP
Active Learning Genetic Programming
CEC 2010
Contexto
• A maioria dos algoritmos seguem umaabordagem supervisionada– Todos os exemplos de treinamento são rotulados
• Em alguns aplicações, obter dados rotulados é uma tarefa muito cara– Deduplicação de dados, análise de sentimentos, etc
• Abordagem alternativa: apredizado semi-supervisionado– Combina dados rotulados e não rotulados
– Pode ser feito através de aprendizado ativo
Aprenzizado Supervisionado
Aprendizado Ativo
Aprendizado Ativo
• Técnica para amostragem de dados– Seleciona os exemplos mais informativos
– Em aprendizado ativo, eles serão rotulados por um oráculo, que pode ser o usuário
• Desafio: como escolher esses exemplos?
• 3 técnica mais utilizadas:– Escolher os exemplos que o classificador tem menos
certeza na classificação
– Escolher os exemplos que causam a maior redução de erro
– Consultar um comitê de classificadores
Aprendizado Ativo e GP
• Já foram utilizados juntos no contexto de aprendizado supervisionado para reduzir o tempo de treinamento -> tempo necessáriopara calcular a fitness
– Seleção utilizando histórico
– Seleção dinâmica
• Proposta: utilizar GP e aprendizado ativo para reduzir o custo de rotulação de dados
Deduplicação de dados
• Identificar registros diferentes em uma base de dados que se referem a mesma entidadedo mundo real
• Motivação:
– Repositórios de dados são enormes
– É difícil até para humanos identificarem réplicas se não tiverem informação suficiente disponível
Deduplicação de dados
• Realizada em 3 etapas:
– Gera os pares de registro
– Calcula a similaridade entre os pares
– Classifica os pares como réplicas ou não, de acordo com sua similaridade ou um modeloaprendido a partir dos dados
GP para Aprendizado Ativo
• Objetivo: programação genética irá explorarcombinações de funções de similaridade entre oscampos do registro, e aprender um modelo
• Exemplo
Nome Idade Cidade Sexo
R1 João Silva 34 Belo Horizonte Masculino
R2 J. Silva 34 BH Masculino
Dist 0.01 0 0.1 0
R1 e R2 se referem a mesma pessoa?
Indivíduo
• Cada indivíduo está associado a um peso wf
• Cada registro está associado a um peso wp
AGP
Avaliação da fitness
• Realizada depois do treinamento
– Na primeira geração, apenas pares rotulados são considerados
– A partir da segunda geração, todos os pares são considerados
• A classificação do comitê ou do usuário (se o comitê não chega a um acordo) é considerada correta
• Comitês e outros indivíduos da população são avaliados em momentos diferentes
Avaliação da fitness
F1 F2
Dado um conjunto de indivíduos que não estão presentes no comitê:
F1 F2
• Se classificado corretamente como réplica, ganha um ponto• Se classificado incorretamente como não-réplica, perde um ponto
Votação do Comitê
Conjunto de rotulados
Aprendizado por reforço
• Boas funções são aquelas que identificam réplicas, e réplicas tendem a ser corretamente identificadas por boas funções
• Wf é atualizado de acordo com o Alg. 2
Experiments
• 3 bases de dados
AGP versus GP
• Avaliação utilizando F-measure e o número de pares necessários para aprender
AGP versus GP
AGP versus Alias
Base Restaurant
• AGP aprende mais rápido• AGP se torna estável mais rápido
Estimando aCredibilidade de Dados
Credibilidade de Dados
• O que faz um usuário confiar mais em um website A ou B?
• Pesquisa na área de credibilidade– Medidas objetivas e subjetivas para determinar o
que faz um usuário acreditar ou não em qualquer tipo de informação
• Vasta gama de aplicação– Sistemas e serviços Web
– Métodos de mineração de dados
Contexto
• Algoritmos de classificação padrão normalmente assumem que todos os dados devem contribuir igualmente para o modelo sendo criado
– Exceção: KNN (k vizinhos mais próximos)
Contexto
• Objetivo: fazer com que a contribuição de um exemplo para o modelo de classificação seja dependente de uma medida que chamamos de credibilidade, que pode ser estimada através de uma função de credibilidade
Credibilidade
• A credibilidade de uma entidade reflete o valor que ela agrega a uma tarefa sendo executada.
• Em classificação de documentos, por exemplo, ela reflete:– Termos
– Autores
– Citações
– Local de publicação, etc
X
Fatores de Credibilidade
• Este trabalho foca em 3 fatores:
– Conteúdo
– Autoria
– Citação
• Efeito:
Credibilidade de Dados
• Propomos um algoritmo de programação genética para criar funções de credibilidade
• Cada indivíduo é uma função, representada por uma árvore
• Avaliação
– De acordo com resultados
obtidos na classificação de
dados
Função de Credibilidade
• Depois de criada, a função é incorporada a algoritmos de mineração de dados
• Algoritmos originais são comparados com versões modificadas
• Mostramos que levar em conta a credibilidade melhora o processo de classificação
Resultados Experimentais
• Base de dados da ACM
Resultados Experimentais
Programação Genética para Criação de Algoritmos de Indução de Regras
Como Algoritmoas de Indução de Regras (AIR) são criados?
• Sequential-covering (separar e conquistar)
• Extraindo regras de árvores de decisão
• Algoritmos evolucionários – AG e PG
Sequential Covering
while existirem elementos no conjunto de treinamento
– Aprenda uma regra que cubra parte dos exemplos de treinamento
– Remova os exemplos cobertos pela regra do conjunto de treinamento
end while
Como um AIR aprende regras?
• Baseado em 4 elementos principais
– Linguagem de representação de regras
– Um mecanismo de busca
– Um método de avaliação das regras encontradas
– Métodos de pruning
Mecanismo de busca
• Estratégia de busca
– Geral para específica/ específica para geral/ híbrida
• Método de busca
– Greedy
– Busca em feixe
– Melhor-primeiro
Avaliação das Regras
• 4 tipos de heurísticas
– Baseada no número de examples positivos/ negativos cobertos pela regra (confiança)
– Baseada na complexidade das regras geradas
– Heurísticas de ganho, que comparam a diferença no valor de uma segunda heurística
– Heurísticas com pesos
Pruning
• Evita over-fitting dos dados
• Pruning
– pre-pruning
– pos-pruning
Por que evoluir automaticamente AIR para classificação?
• Existem centenas de algoritmos de indução de regras, e a maioria deles segue uma estrutura básica, modificando apenas alguns elementos dessaestrutura. Difícil escolher qual utilizar
• Algoritmo estaria livre de bias do programador
• Criar algoritmos voltados para bases de dados específicas.
PG e AIR
• PG e PG baseada em gramática já foram utilizadas para criar conjuntos de regras para bases de dados específicas
A1,A2,A3,C0, 0, 1, 11, 1, 0, 1
…. 0, 1, 0, 0
Conjunto deRegras
Algoritmode IR
Conjunto deTreinamento
A1,A2,A3,C0, 0, 1, 11, 1, 0, 1
…. 0, 1, 0, 0
Conjunto deRegras
Algoritmode IR
Conjunto deTreinamento
ProgramaçãoGenética
A1,A2,A3,C0, 0, 1, 11, 1, 0, 1
…. 0, 1, 0, 0
ProgramaçãoGenética
Conjunto deTreinamento
Conjunto deRegras
NãoTerminais
TerminaisPopulaçãoInicial
Seleção
NovaPopulação
Fitness
Não
Reprodução
Crossover
Mutação
pcross
preprod
pmutSim
Retorna melhorsolução
Programação Genética
Critério de Paradasatisfeito?
PG baseado em Gramática
NãoTerminais
TerminaisPopulação
InicialPG Traditional
Não
Terminais
Terminais
Regras de Produção
Símbolo Inicial
Gramática
PopulaçãoInicial
PG baseada emGramática
Método Proposto
• Gramática
– Conjunto de terminais/ não-terminais da PG
• Representação dos indivíduos
• Função de Avaliação (Fitness)
• Adaptação dos operadores de mutação e crossover de acordo com a gramática e com a representação dos indivíduos.
Definição da Gramática
• Gramática inclui– Implementação de várias técnicas de
• Mecanismo de busca• Heurísticas para avaliação de regras• Heurísticas que definem quando parar de refinar
regras• Heurísticas que definem quando parar de produzir
regras• Pre e Pos Pruning
– Elementos anteriormente não utilizados por algoritmos de indução de regras
Definição da Gramática
• Trabalha com o conceito de building blocks• Exemplo:
RefineRule ::= AddCond|RemoveCond.AddCond ::= Add1 | Add2
EvaluateRule ::= confidence | informationGain .
Building Block Add1()
for i = 0 to i < número de atributos
for j = 0 to j < número de valores que Ai assume
Adicione atributo i /valor j a regra atual
Representação dos Indivíduos
• Indivíduos são representados por uma árvore de derivação criada utilizando-se produções da gramática.
Fragamento da Gramática
<Start>::=(<CreateRuleList>|<CreateRuleSet>)
[<PostProcess>].<CreateRuleList>::=<whileLoop>
<RuleListTest>.<whileLoop>::=while <condWhile>
<FindBestRule>endWhile.
<condWhile>::=uncoveredNotEmpty |…...
SelectCandidateRules>::=1CR| 4CR|8CR.
Função de Fitness
Fitness(Indij) = (Accij-DefAccj) / 1- DefAccj, se Accij > DefAccj
(Accij-DefAccj) / DefAccj, cc
T e s t S e t
R u le
M o d e l
In it ia lizeP o p u la tio n
G ra m m a r
G G P In d iv id u a l
In te rfa ce G G P /Ja va
R u le In d u c tio n
A lg o r ith m
R u le M o d e l
F itn e ss
B u ild in g S e t
V a lid a tio n S e t
A ccu ra cy
In d iv id u a ls E va lu a tio n
T o u rn a m e n tS e le c tio n
R e p ro d u c tio n
M u ta tio n
C ro sso ve r
N e w P o p u la tio n
C o m p le te ?
S to p p in g C rite r io n
S a tis fie d ?
R e tu rn B e s t
In d iv id u a l
Y e s
Y e s
N o
N o
p r
p m
p c
B u ild in g S e t
V a lid a tio n S e t
Experimentos
• 2 Conjuntos de parâmetros:
– Programação Genética• Tamanho da população/número de gerações (100/30)
• Taxas de crossover, mutação e reprodução(0.75,0.25,0.05)
– Dados
• 2 conjuntos de experimentos:
- Usando vários data sets
- Usando apenas um data set
Resultados
• Criação de algoritmos de indução de regras inovadores
• Resultados competitivos com os reportados na literatura
• Existem muitos trabalhos futuros a serem feitos
Evolução de ACs personalizados para um tipo de dados
• Já propomos AC genéricos e personalizados para uma base de dados específica
• ACs personalizados para um tipo de dados
– Agrupar bases de dados de acordo com suas características
– Engenharia reversa: através dos resultados do próprio GP procurar agrupar os dados
Evolução de ACs personalizados para um tipo de dados
Resultados esperados
• Desenvolver uma metodologia para comparação e agrupamento de bases de dados
• Algs. de classificação desenvolvidos especialmente para esses grupos de dados
Evolução de outros tipos de ACs
• Atualmente trabalhamos com algoritmos de indução de regras
• Podemos também evoluir outros tipos de algoritmos de classificação
– Redes bayesianas
• Gramática é a melhor forma de representação?
Algoritmos Evolucionários são uma alternativa interessante para resolver problemas de mineração de dados e aprendizado de
máquina
Disciplina de Computação Natural
2º semestre de 2012
www.dcc.ufmg.br/~glpappa/
Referências
• Livro de Data Mining disponível para download– http://www.dcc.ufmg.br/miningalgorithms/DokuWiki/doku.php
• Gisele L. Pappa e Alex Freitas. Automating the Design of Data Mining Algorithms: An Evolutionary Computation Approach (Natural Computing Series), Springer, 2010
• Freitas, J. ; PAPPA, G. L. ; Gonçalves, Marcos A. ; Veloso, A. ; Moura, EdlenoSilva de ; Silva, Altigran Soares da . Active Learning Genetic Programming for Record Deduplication. In: IEEE Congress on Evolutionary Computation (CEC), 2010
• PALOTTI, J. ; SALLES, T. ; PAPPA, G. L. ; ARCANJO, F. L. ; GONÇALVES, Marcos A. ; MEIRA JR, W. . Estimating the Credibility of Examples in Automatic Document Classification. Journal of Information and Data Management, v. 1, p. 439-454, 2009.