26
CMP259 1 Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

Embed Size (px)

Citation preview

Page 1: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

CMP259 1

Fast Effective Rule Induction(Willian W. Cohen)

Leandro Zulian GallinaSílvia Regina Vargas Gomes

CMP259 – Descoberta de Conhecimento em Bancos de Dados

Page 2: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sí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

Page 3: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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)

Page 4: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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

Page 5: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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

Page 6: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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

Page 7: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

CMP259 7

Overfitting

Page 8: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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

Page 9: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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

Page 10: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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)

Page 11: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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

Page 12: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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

Page 13: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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.

Page 14: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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

Page 15: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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)

Page 16: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

CMP259 16

Cobertura Sequencial

Page 17: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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

Page 18: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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”

Page 19: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

CMP259 19

Como aprender uma regra?

geral ao específico

Page 20: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

CMP259 20

Como aprender uma regra?

específico ao geral

Page 21: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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)))

Page 22: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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.

Page 23: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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.

Page 24: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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

Page 25: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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

Page 26: Fast Effective Rule Induction (Willian W. Cohen) Leandro Zulian Gallina Sílvia Regina Vargas Gomes CMP259 – Descoberta de Conhecimento em Bancos de Dados

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