Introdução a Algoritmos de Computação Natural para Mineração de Dados Gisele L. Pappa Universidade Federal de Minas Gerais [email protected] Parte 3: Algoritmos de Computação Natural Mineração de Dados Sumário • Algoritmos Genéticos para Seleção de Atributos • Programação Genética para Criação de Algoritmos de Indução de Regras • AntMiner • PSO para classificação • Pesquisa em andamento • Ferramentas para Mineração – Weka • Links úteis Algoritmo Genético para Seleção de Atributos Seleção de Atributos • 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 – 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ção representa a presença ou ausência de um atributo • Fitness – Utiliza a abordagem wrapper (a cada geração o algoritmo de classificação é executado e avaliado) – Utiliza abordagem multi-objetiva de Pareto • Operadores genéticos padrão 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? • Taxas de acerto em muitos domínios importantes está longe dos 100%, e não se sabe se elas podem ou quanto elas podem ser melhoradas. • Existem centenas de algoritmos de indução de regras, e a maioria deles segue uma estrutura básica, modificando apenas alguns elementos dessa estrutura. PG seria uma maneira automática de realizar essas modificações. Por que evoluir automaticamente AIR para classificação? • 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 Conjunto de Treinamento A1,A2,A3,C 0, 0, 1, 1 1, 1, 0, 1 …. 0, 1, 0, 0 Programação Algoritmo Genética de IR Programação Genética Conjunto Conjuntodede Regras Regras Programação Genética Terminais Não Terminais População Inicial Fitness Crossover Não Critério de Parada satisfeito? Sim Retorna melhor solução Seleção Nova População Reprodução Mutação pcross preprod pmut PG baseado em Gramática Terminais Não Terminais População Inicial PG Traditional Gramática Terminais Não Terminais Símbolo Inicial Regras de Produção População Inicial PG baseada em Gramá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 In itia liz e P o p u la tio n G ra m m a r In d iv id u a ls E v a lu a tio n In te r fa c e G G P /J a v a GGP In d iv id u a l F itn e s s A c c u ra cy B u ild in g S e t R u le In d u c tio n A lg o rith m V a lid a tio n Set R u le M odel pr R e p r o d u c tio n No T o u rn a m e n t S e le c tio n pm N e w P o p u la tio n C o m p le te ? M u ta tio n Yes pc C ro s s o v e r No S to p p in g C r ite rio n S a tis fie d ? Yes B u ild in g S e t V a lid a tio n Set R e tu r n B e s t In d iv id u a l Test Set R u le M odel 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? Ant-Miner [Parpinelli et al 2002] Ant-Miner • Segue uma abordagem de cobertura sequencial – Formigas trabalham para gerar uma regra de decisão – ACO executado várias vezes, a cada execução um número menor de exemplos é considerado – Cada execução utiliza apenas uma formiga • Cada formiga inicialmente representa uma “regra vazia” • Formigas incrementalmente adicionam uma condição a regra (par atributo+valor) de acordo com uma métrica de entropia e a quantidade de feromônio depositada Ant-Miner • Cada regra deve ter uma cobertura mínima – Serve de critério de parada e controla overfitting • Ao final da iteração, a classe da regra é escolhida de acordo com a classe da maioria dos exemplos cobertos. Ant-Miner WHILE (No. of cases in the Training set > Max-uncoveredcases) i=0; REPEAT i=i+1 Anti incrementally constructs a classification rule Prune the just constructed rule Update the pheromone of the trail followed by Anti UNTIL (i ≥ No-of-Ants) or (Anti constructed the same rule as the previous No_Rules_Converg-1Ants) Select the best rule among all constructed rules Remove the cases correctly covered by the selected rule from training set END WHILE AntMiner • Inicialização do feromônio a é o número de atributos, bi é o número de valores q a pode assumir • Regra de transição – Existe uma constante que define a porcentagem de exploração do algoritmo. De acordo com ela, a abordagem probabilística pode ser substituída por uma determinística Ant-Miner • Avaliação k é o número de classes, W é a classe • Existe também um método para podar as regras Ant-Miner- Resultados PSO para Classificação [Falco et al 2007] PSO para Descoberta de Regras • Um problema de classificação composto por n classes pode ser visto como: – Encontrar n centróides, onde cada centróide corresponde ao protótipo de uma classe • Partícula é representada por um vetor de tamanho 2n PSO para Classificação • Avaliação – Baseada na taxa de erro – Na distância de um exemplo para o centróide – Combinação dos dois PSO para Classificação • Atualização da velocidade • Inércia variável PSO para Classificação • Parâmetros – 50 partículas – 1000 iterações – Velocidade [-0.05,+0.05 – C1 = c2 = 2 – Inércia [0.4,0.9] Resultados Pesquisa em Andamento Pesquisa em Andamento • Programação Genética – Recuperação de imagens por conteúdo (PSO) – Deduplicação de dados (Active GP) – Classificação Hierárquica (GP) – Mineração de dados em redes sociais (ACO) – Credibilidade de dados (GP) 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 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 Credibilidade de Dados • Propomos um algoritmo de PG que vai estimar a credibilidade de um documento • Essa credibilidade pode ser então utilizada por um usuário humano ou um programa de computador • Vários fatores podem ser considerados – Conteúdo – Fonte – Data de Criação Resultados Preliminares Ferramenta para Mineração WEKA http://www.cs.waikato.ac.nz/ml/weka/ Links úteis • UCI – http://archive.ics.uci.edu/ml/ • Livro disponível para download – http://www.liaad.up.pt/~ltorgo/DataMiningWithR/ • Livro de Data Mining disponível para download – http://www.dcc.ufmg.br/miningalgorithms/DokuWiki/doku.php • Livro de GP – http://www.gp-field-guide.org.uk/ Referências • Parpinelli, R.S., Lopes, H.S., Freitas, A.A. "Data mining with an ant colony optimization algorithm". IEEE Trans. on Evolutionary Computation, 6( 4), p. 321-332, 2002. • I. De Falco, A. Della Cioppa, E. Tarantino, Facing classification problems with Particle Swarm OptimizationSourceApplied Soft Computing , 7 (3) , 652-658 , 2007.