Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes...
Transcript of Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes...
CMP259 1
Fast Effective Rule Induction(Willian W. Cohen)
Leandro Zulian GallinaSílvia Regina Vargas Gomes
CMP259 – Descoberta de Conhecimento em Bancos de Dados
CMP259 2
Objetivos do artigo
• Trabalhos anteriores– Nomeadamente, IREP
• Experimentos com o IREP– Aqui a gente meio que só cita e ignora
• Melhorias para o IREP– IREP*– RIPPER-k
CMP259 3
Conceitos de Classificação
• Tarefa de aprender um modelo de classificação– Atribui a cada conjunto de atributos um valor de
uma classe pré-definida
• O modelo deve:– Ser adequado aos dados de entrada (training set)– Predizer corretamente as classes de dados não
vistos antes (test set)
CMP259 4
Construindo árvores de decisão
• Número de árvores possíveis: exponencial• Método da força bruta impraticável• Algoritmos para induzir árvore de decisão– Mesmo que não seja a ótima
CMP259 5
Construindo árvores de decisão
• Algoritmos:– Hunt– ID3– C4.5– CART
• Comum: estratégia gulosa– Crescer a árvore de decisão tomando decisões
localmente ótimas
CMP259 6
Pruning (Poda)
• Árvores de decisão muito grandes => OVERFITTING (Super-especialização)
• Caminhos muito específicos são desnecessários
• Poda remove caminhos extras
CMP259 7
Overfitting
CMP259 8
Tipos de Poda
• Pré-poda:– Faz a poda no momento em que as regras são
geradas– Estabelece uma condição de parada quando uma
regra é adicionada sem que haja ganho
• Pós-poda– Faz a poda somente quando toda a árvore de
decisão já foi gerada
CMP259 9
Pruning (Poda)
• Pré-poda– Vantagem: Mais rápida;– Desvantagem: Difícil determinar condição de parada (pode
gerar underfitting/manter overfitting)
• Pós-poda– Vantagem: Mais precisa;– Desvantagem: O conjunto de treinamento precisa ser
dividido em growing set e pruning set– Apenas os dados do growing set são utilizáveis para
aprender as regras
CMP259 10
REP (Reduced Error Pruning)
• Algoritmo que usa pós-poda• São aplicados operadores de poda• Poda termina quando aplicação da poda faz
com que aumente o erro no pruning set• Desvantagem: tempo de processamento de
até O(n4)
CMP259 11
Classificação baseada em regras
• O que são regras de classificação?– São regras no formato IF-THEN– A parte IF forma uma condição sobre o conjunto de
dados– A parte THEN contém a classe a ser atribuída– Condições proposicionais com comparações atributo-
valor e cláusulas de Horn de primeira ordem.• Por que regras?– Porque as hipóteses são melhor entendidas e melhor
lidas por conjuntos de regras IF-THEN
CMP259 12
Classificação baseada em regras
• Exemplo de regra:– (Gives Birth = no) and (Aerial Creature = yes)
Birds• Métricas de avaliação de regras:– Ni: número de regras cobertas pela regra i– ni: número de regras corretamente classificadas
pela regra i.– cobertura: Ni / |total de tuplas no dataset|– acurácia: ni / Ni
CMP259 13
Classificação baseada em regras
• Conflito de resolução:– Uma instância “ativa” mais de uma regra.– Regras ordenadas: maior prioridade à regra com o
requisito mais forte (ex.: a regra possui maior quantidade de atributos)
– Regras desordenadas: a decisão da regra que vai ser atribuída para classificar um registro é feita por votação. A votação geralmente envolve a acurácia da regra.
CMP259 14
Abordagens para classificação
• Métodos diretos– As regras são aprendidas diretamente do dataset• IREP, RIPPER
• Métodos indiretos– A árvore de decisão é construída e, após, as regras
são derivadas• C4.5rules
CMP259 15
Cobertura Sequencial
• Seja E o conjunto de registros de treinamento• Repita:– Aprender uma regra (LearnOneRule) com alta
acurácia e qualquer cobertura– Remover os registros cobertos pela regra (todos!)– Adicionar a regra ao final da lista de regras
• Até que todos os registros sejam cobertos• Inserir a regra padrão ao final da lista de
regras ({} class)
CMP259 16
Cobertura Sequencial
CMP259 17
Cobertura Sequencial
• Eliminação de instâncias– Eliminar instâncias para que a nova regra gerada
não seja igual a anterior– Eliminar instâncias positivas para garantir que a
próxima regra é diferente– Eliminar instâncias negati-vas para prevenir a subesti-mação da próxima regra ge-rada
CMP259 18
Como aprender uma regra? (LearnOneRule)
• Geral ao específico– Começar com a hipótese mais geral e ir refinando
de acordo com um parâmetro (acurácia)
• Específico ao geral– Começar com a regra mais específica e ir
generalizando passo a passo.
• Estratégia “Rule-growing”
CMP259 19
Como aprender uma regra?
geral ao específico
CMP259 20
Como aprender uma regra?
específico ao geral
CMP259 21
Avaliação da regra
• FOIL’s information gain:– usa o suporte da regra (número de positivos
cobertos pela regra – pi)
– prefere regras com alto suporte e alta acurácia– r: A + cobre p0 exemplos positivos e n0
negativos. r’: A and B + cobre p1 exemplos positivos e n1 negativos
– FOIL = p1 x (log2(p1/(p1+n1)) / log2(p0/(p0+n0)))
CMP259 22
RIPPER
• 2 classes: escolher uma classe para ser a positiva. A outra é negativa e padrão.
• k classes: escolher a classe positiva da vez e todas as outras classes são tratadas como negativas– ordenar as classes de acordo com a
predominância das classes dentro do dataset.
CMP259 23
RIPPER
• Aprendendo uma regra:– Começar da regra vazia (geral a específica)– Adicionar condições desde que elas melhorem o
information gain– Parar quando a regra não cobrir mais exemplos negativos– Podar a regra imediatamente usando o reduced error
pruning• medida de poda: v = (p-n)/(p+n)
– Método da poda: deletar os condicionais de forma a melhorar v.
CMP259 24
RIPPER
• Construindo o conjunto de regras– Usar o algoritmo de cobertura sequencial• Achar a melhor regra que cobre um conjunto de
registros positivos• Eliminar as instâncias do conjunto de dados
– A cada nova regra aprendida, verificar se o REP ultrapassa 0.5• Se sim, retornar o conjunto de regras• Caso contrário, adicionar a regra ao conjunto de regras
e remover as instâncias cobertas pela regra do dataset
CMP259 25
RIPPER
• Otimizando o conjunto de regras– Para cada regra r no conjunto de regras R• Considerar duas novas regras:
– r’: aprende uma nova regra do zero usando o pruning set– r*: adiciona condicionais para melhorar a regra r usando
também o pruning set
• Comparar as três regras e escolher a que minimiza o valor de acordo com o MDL
CMP259 26
RIPPERRIPPER(Pos,Neg)begin
Ruleset := {}while Pos {}
split (Pos, Neg) into (GrowPos, GrowNeg) and (PrunePos, PruneNeg)
Rule := GrowRule(GrowPos,GrowNeg)Rule := PruneRule(Rule, PrunePos, PruneNeg)if REP of rule on (PrunePos, PruneNeg) > 0.5
return Rulesetelse
add rule to Rulesetremove examples covered by rule on (Pos, Neg)
endifendwhileOptimizeRuleset(Ruleset, PrunePos, PruneNeg)return Ruleset
end