A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

RIPPER Fast Effective Rule Induction

Apresentações semelhantes


Apresentação em tema: "RIPPER Fast Effective Rule Induction"— Transcrição da apresentação:

1 RIPPER Fast Effective Rule Induction
William W. Cohen apresentação Felipe Hoppe Levin Guilherme Dal Bianco

2 Regras de Classificação - Vantagens
Fáceis de entender Melhores que árvores de decisão em muitos problemas Representáveis em lógica de primeira ordem Fácil de implementar em linguagens como PROLOG

3 Regras de Classificação - Desvantagens
Pouco escaláveis Desempenho ruim em dados com muito ruído Tipicamente em dados reais

4 Objetivo Desenvolver um algoritmo de aprendizado de regras de classificação que seja: Escalável Eficiente com dados ruidosos Competitivo com algoritmos de árvores de decisão como C4.5 / C4.5rules

5 Solução Estudada: IREP
“Poda” das regras Simplificação diminui a interferência de dados ruidosos Divisão e Conquista Conjunto de Treinamento (2/3 dos dados) Conjunto de Validação (1/3 dos dados) Gerados aleatoriamente “Poda” cada regra criada iterativamente Até que a “poda” reduza a acurácia

6 O algoritmo IREP procedure IREP(Pos,Neg) begin Ruleset = Ø
while Pos ≠ Ø do split (Pos,Neg) into (GrowPos,GrowNeg) and (PrunePos,PruneNeg) Rule := GrowRule(GrowPos,GrowNeg) Rule := PruneRule(Rule,PrunePos,PruneNeg) if the error rate of Rule on (PrunePos,PruneNeg) exceeds 50% then return Ruleset else add Rule to Ruleset remove examples covered by Rule from (Pos,Neg) endif endwhile end

7 Exemplo # Tempo Temperatura Umidade Ventoso Joga 1 Ensolarado Quente
Alta Falso Não 2 Verdadeiro 3 Nublado Sim 4 Chuvoso Amena 5 Fria Normal 6 7 8 9 10 11 12 13 14

8 Transações são separadas nos grupos POS e NEG
Exemplo - IREP # Tempo Temperatura Umidade Ventoso Joga 1 Ensolarado Quente Alta Falso Não 2 Verdadeiro 3 Nublado Sim 4 Chuvoso Amena 5 Fria Normal 6 7 8 9 10 11 12 13 14 Transações são separadas nos grupos POS e NEG

9 Exemplo - IREP # Tempo Temperatura Umidade Ventoso Joga 3 Nublado
Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 11 12 13 1 Não 2 6 8 14

10 Exemplo - IREP # Tempo Temperatura Umidade Ventoso Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 11 12 13 1 Não 2 6 8 14 A cada iteração, são formados os grupos GrowPos, GrowNeg, PrunePos e PruneNeg de forma aleatória.

11 Exemplo - IREP GP PP GN PN # Tempo Temperatura Umidade Ventoso Joga 3
Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 11 12 13 1 Não 2 6 8 14 GP PP GN PN

12 O algoritmo IREP procedure IREP(Pos,Neg) begin Ruleset = Ø
while Pos ≠ Ø do split (Pos,Neg) into (GrowPos,GrowNeg) and (PrunePos,PruneNeg) Rule := GrowRule(GrowPos,GrowNeg) Rule := PruneRule(Rule,PrunePos,PruneNeg) if the error rate of Rule on (PrunePos,PruneNeg) exceeds 50% then return Ruleset else add Rule to Ruleset remove examples covered by Rule from (Pos,Neg) endif endwhile end

13 GrowRule Cria uma nova regra
Adiciona condições que maximizam o critério de ganho de informação de FOIL t · [ log2 ( p1 / ( p1+n1 )) - log2 (p0 / (p0 + n0)) ] p: positivos n: negativos t: positivos cobertos pelas duas regras Para de adicionar condições quando a regra não cobrir nenhuma transação negativa

14 Exemplo - GrowRule GP GN Regra: Ventoso = Falso # Tempo Temperatura
Umidade Ventoso Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 1 Não 2 6 GP GN Regra: Ventoso = Falso

15 Exemplo - GrowRule GP GN Regra: Ventoso = Falso
# Tempo Temperatura Umidade Ventoso Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 1 Não 2 6 GP GN Regra: Ventoso = Falso t · [ log2 ( p1 / ( p1+n1 )) - log2 (p0 / (p0 + n0)) ]

16 Exemplo - GrowRule GP GN Regra: Ventoso = Falso
# Tempo Temperatura Umidade Ventoso Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 1 Não 2 6 GP GN Regra: Ventoso = Falso 5· [ log2 ( p1 / ( p1+n1 )) - log2 (p0 / (p0 + n0)) ]

17 Exemplo - GrowRule GP GN Regra: Ventoso = Falso
# Tempo Temperatura Umidade Ventoso Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 1 Não 2 6 GP GN Regra: Ventoso = Falso 5· [ log2 ( 5 / ( )) - log2 (6 / (6 + 3)) ]

18 Exemplo - GrowRule GP GN Regra: Ventoso = Falso
# Tempo Temperatura Umidade Ventoso Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 1 Não 2 6 GP GN Regra: Ventoso = Falso 5· [ -0,26 + 0,58 ] = 5 · 0,32 = 1,6 bits de ganho de informação

19 Exemplo - GrowRule Ventoso = Falso → 1,60 bits
Ventoso = Verdadeiro → -1 bits Umidade = Alta → -0,83 bits Umidade = Normal → 1,05 bits Temper. = Quente → -1 bits Temper. = Amena → 1,17 bits Temper.= Fria → 0,51 bits Tempo = Nublado → 1,17 bits Tempo = Ensolarado → -1 bits Tempo = Chuvoso → 0,51 bits

20 Exemplo - GrowRule Ventoso = Falso → 1,60 bits → Maior ganho
Ventoso = Verdadeiro → -1 bits Umidade = Alta → -0,83 bits Umidade = Normal → 1,05 bits Temper. = Quente → -1 bits Temper. = Amena → 1,17 bits Temper.= Fria → 0,51 bits Tempo = Nublado → 1,17 bits Tempo = Ensolarado → -1 bits Tempo = Chuvoso → 0,51 bits

21 Exemplo - GrowRule GP GN Regra: Ventoso = Falso
# Tempo Temperatura Umidade Ventoso Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 1 Não 2 6 GP GN Regra: Ventoso = Falso Cobre 1 regra negativa → Continua adicionando condições

22 Exemplo - GrowRule Ventoso = Falso and Umidade = Alta → -0,64 bits
Ventoso = Falso and Umidade = Normal → 0,79 bits Ventoso = Falso and Temper. = Quente → -0,74 bits Ventoso = Falso and Temper. = Amena → 0,53 bits Ventoso = Falso and Temper.= Fria → 0,53 bits Ventoso = Falso and Tempo = Nublado → 0,26 bits Ventoso = Falso and Tempo = Ensolar. → -0,74 bits Ventoso = Falso and Tempo = Chuvoso → 0,79 bits

23 Exemplo - GrowRule Ventoso = Falso and Umidade = Alta → -0,64 bits
Ventoso = Falso and Umidade = Normal → 0,79 bits Ventoso = Falso and Temper. = Quente → -0,74 bits Ventoso = Falso and Temper. = Amena → 0,53 bits Ventoso = Falso and Temper.= Fria → 0,53 bits Ventoso = Falso and Tempo = Nublado → 0,26 bits Ventoso = Falso and Tempo = Ensolar. → -0,74 bits Ventoso = Falso and Tempo = Chuvoso → 0,79 bits Ventoso = Falso and Umidade = Normal ou Ventoso = Falso and Tempo = Chuvoso

24 Exemplo - GrowRule GP GN Regra: Ventoso = Falso and Umidade = Normal
# Tempo Temperatura Umidade Ventoso Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 1 Não 2 6 GP GN Regra: Ventoso = Falso and Umidade = Normal Não cobre regras negativas → Para de adicionar condições

25 O algoritmo IREP procedure IREP(Pos,Neg) begin Ruleset = Ø
while Pos ≠ Ø do split (Pos,Neg) into (GrowPos,GrowNeg) and (PrunePos,PruneNeg) Rule := GrowRule(GrowPos,GrowNeg) Rule := PruneRule(Rule,PrunePos,PruneNeg) if the error rate of Rule on (PrunePos,PruneNeg) exceeds 50% then return Ruleset else add Rule to Ruleset remove examples covered by Rule from (Pos,Neg) endif endwhile end

26 PruneRule “Poda” a regra criada
Exclui seqüência final de condições que maximizam a função: v = (p + (N – n)) / (P + N) p: positivos em PrunePos cobertos pela regra n: negativos em PruneNeg cobertos pela regra P: positivos em PrunePos N: negativos em PruneNeg Deixa de excluir quando o valor de v deixa de ser melhorado

27 Exemplo - PruneRule PP PN Regra: Ventoso = Falso and Umidade = Normal
# Tempo Temperatura Umidade Ventoso Joga 11 Ensolarado Amena Normal Verdadeiro Sim 12 Nublado Alta 13 Quente Falso 8 Não 14 Chuvoso PP PN Regra: Ventoso = Falso and Umidade = Normal

28 Exemplo - PruneRule PP PN Regra: Ventoso = Falso and Umidade = Normal
# Tempo Temperatura Umidade Ventoso Joga 11 Ensolarado Amena Normal Verdadeiro Sim 12 Nublado Alta 13 Quente Falso 8 Não 14 Chuvoso PP PN Regra: Ventoso = Falso and Umidade = Normal v = (p + (N – n)) / (P + N)

29 Exemplo - PruneRule PP PN Regra: Ventoso = Falso and Umidade = Normal
# Tempo Temperatura Umidade Ventoso Joga 11 Ensolarado Amena Normal Verdadeiro Sim 12 Nublado Alta 13 Quente Falso 8 Não 14 Chuvoso PP PN Regra: Ventoso = Falso and Umidade = Normal v = (p + (N – n)) / (P + N) v = (1 + (2 – 0)) / (3 + 2) v = 3 / 5 = 0,6

30 Exemplo - PruneRule PP PN Regra: Ventoso = Falso
# Tempo Temperatura Umidade Ventoso Joga 11 Ensolarado Amena Normal Verdadeiro Sim 12 Nublado Alta 13 Quente Falso 8 Não 14 Chuvoso PP PN Regra: Ventoso = Falso v = (p + (N – n)) / (P + N) v = (1 + (2 – 1)) / (3 + 2) v = 2 / 5 = 0,4

31 Exemplo - PruneRule PP PN Regra: Ventoso = Falso
# Tempo Temperatura Umidade Ventoso Joga 11 Ensolarado Amena Normal Verdadeiro Sim 12 Nublado Alta 13 Quente Falso 8 Não 14 Chuvoso PP PN Regra: Ventoso = Falso v = (p + (N – n)) / (P + N) v = (1 + (2 – 1) )/ (3 + 2) v = 2 / 5 = 0,4 Como o valor de v para a regra original é maior (0,6), então não faz a “poda”.

32 O algoritmo IREP procedure IREP(Pos,Neg) begin Ruleset = Ø
while Pos ≠ Ø do split (Pos,Neg) into (GrowPos,GrowNeg) and (PrunePos,PruneNeg) Rule := GrowRule(GrowPos,GrowNeg) Rule := PruneRule(Rule,PrunePos,PruneNeg) if the error rate of Rule on (PrunePos,PruneNeg) exceeds 50% then return Ruleset else add Rule to Ruleset remove examples covered by Rule from (Pos,Neg) endif endwhile end

33 Exemplo – Condição de Parada
# Tempo Temperatura Umidade Ventoso Joga 11 Ensolarado Amena Normal Verdadeiro Sim 12 Nublado Alta 13 Quente Falso 8 Não 14 Chuvoso PP PN Regra: Ventoso = Falso and Umidade = Normal

34 Exemplo – Condição de Parada
# Tempo Temperatura Umidade Ventoso Joga 11 Ensolarado Amena Normal Verdadeiro Sim 12 Nublado Alta 13 Quente Falso 8 Não 14 Chuvoso PP PN Regra: Ventoso = Falso and Umidade = Normal Positivos: 1 Negativos: 0 Taxa de Erro = 0 → Continua o algoritmo

35 O algoritmo IREP procedure IREP(Pos,Neg) begin Ruleset = Ø
while Pos ≠ Ø do split (Pos,Neg) into (GrowPos,GrowNeg) and (PrunePos,PruneNeg) Rule := GrowRule(GrowPos,GrowNeg) Rule := PruneRule(Rule,PrunePos,PruneNeg) if the error rate of Rule on (PrunePos,PruneNeg) exceeds 50% then return Ruleset else add Rule to Ruleset remove examples covered by Rule from (Pos,Neg) endif endwhile end

36 Exemplo – Removendo Transações
# Tempo Temperatura Umidade Ventoso Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 11 12 13 1 Não 2 6 8 14

37 Exemplo – Removendo Transações
# Tempo Temperatura Umidade Ventoso Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 11 12 13 1 Não 2 6 8 14

38 Exemplo – Removendo Transações
# Tempo Temperatura Umidade Ventoso Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 7 Fria Normal Verdadeiro 11 Ensolarado 12 1 Não 2 6 8 14

39 O algoritmo IREP procedure IREP(Pos,Neg) begin Ruleset = Ø
while Pos ≠ Ø do split (Pos,Neg) into (GrowPos,GrowNeg) and (PrunePos,PruneNeg) Rule := GrowRule(GrowPos,GrowNeg) Rule := PruneRule(Rule,PrunePos,PruneNeg) if the error rate of Rule on (PrunePos,PruneNeg) exceeds 50% then return Ruleset else add Rule to Ruleset remove examples covered by Rule from (Pos,Neg) endif endwhile end

40 Resultado Possível Ventoso = Falso and Umidade = Normal
Tempo = Nublado

41 Resultado Possível # Tempo Temperatura Umidade Ventoso Joga 3 Nublado
Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 11 12 13 1 Não 2 6 8 14

42 Resultado Possível Sim Não 7 2 5 # Tempo Temperatura Umidade Ventoso
Joga 3 Nublado Quente Alta Falso Sim 4 Chuvoso Amena 5 Fria Normal 7 Verdadeiro 9 Ensolarado 10 11 12 13 1 Não 2 6 8 14 Verdade\Class. Sim Não 7 2 5

43 Resultados obtidos pelo IREP
Apresentar os gráficos aqui IREP: O(m log² m), m = Número de exemplos.

44 Problemas Benchmarks utilizados nos exemplos

45 Resultados obtidos pelo IREP
Ponto positivo Mais rápido que C4.5 Ponto negativo Capacidade preditiva do IREP pior que C4.5. Taxa won-lost-tie:

46 Aprimoramentos ao IREP
Três modificaçes: Métrica alternativa para fase de poda; Nova heurística para determinar quando parar de adicionar regras ao conjunto; Pós-poda para otimizar o conjunto de regras;

47 Métrica de Poda Um dos problemas de convergência do IREP é sua métrica para determinar se as regras irão ser podadas. Exemplo: 1) P: 4000 N: 2000 Regra 1 p: Regra p:1000 n: n:1 v = (p + (N – n)) / (P + N) v=(2000 +( ))/( ) v=(1000+(2000-1))/( ) v= v=0.4999

48 Métrica de Poda A métrica prioriza uma regra com maior número de positivos porém com uma maior taxa de erro. Como alternativa, foi proposta uma nova métrica: V=(p-n)/(p+n) Amostra 1: Amostra 2: V=( )/ V=(1000-1)/(1000+1) ( )=0.333 V=0.99

49 Condição de Parada Dependendo dos dados, o IREP pára cedo demais.
Solução: Após uma regra ser adicionada, o tamanho total do do conjuto é computado. Caso o tamanho deste novo conjunto de regras seja maior d bits do que a maior regra obtida, ou quando não existem mais casos positivos, o algoritmo pára de adicionar regras.

50 Condição de Parada Fórmula para o cálculo de tamanho em bits de uma regra 0,5 ∙ (|k| + k log2 n/k + (n-k)log2 1/(1-k/n) ) k: número de condições da regra n: número de condições possíveis |k|: número de bits necessários para representar o inteiro k

51 Exemplo - Condição de Parada
Regra: Ventoso = Falso and Umidade = Normal k = n = |k| = 2 0,5 ∙ (|k| + k log2 n/k + (n-k)log2 1/(1-k/n) ) 0,5 ∙ ( log2 4/2 + (4-2)log2 1/(1-2/4) ) 0,5 ∙ ( log log2 2 ) 0,5 ∙ ( ) = 0,5 ∙ 6 = 3 bits

52 IREP * IREP* é o IREP, adicionado da nova condição de parada e nova métrica de poda em relação ao IREP em relação ao C4.5rules Taxa de erro 1.06 (IREP 1.13)

53 Otimização das Regras Pós poda das regras produzidas pelo IREP*
Regras otimizadas uma a uma Para cada regra R, 2 alternativas são construídas Ri‘ – regra de substituição Ri‘‘ – regra de revisão Das três regras, é escolhida aquela com menor tamanho em bits → Princípio de quanto mais simples melhor

54 RIPPER IREP* é usado para obter um conjunto de regras;
Regras são otimizadas IREP* é utilizado para acrescentar regras para cobrir exemplos positivos restantes.  Repeated Incremental Pruning to Produce Error Reduction RIPPERk → Aplica os passos 2 e 3 k vezes.

55 Poder Preditivo do RIPPER
contra IREP*

56 Taxa de erro

57 Eficiência do RIPPER RIPPER2 RIPPER2

58 Razões da Eficiência do RIPPER
Um modelo inicial é criado com IREP* e então simplificado iterativamente Eficiência na geração do modelo inicial Simplificação em tempo linear C4.5 tem uma simplificação com um grande custo computacional para grandes modelos inicias; RIPPER é muito mais eficiente em dados ruidosos e com grande volume

59 Conclusão RIPPERk é mais eficiente e tem performance competitiva com C4.5 (melhor em alguns casos) Ótimo razão custo/benefício (tempo de execução/capacidade preditiva)

60 Referências Fast Effective Rule Induction William W. Cohen [1995]
Incremental Reduced Error Pruning J. Fürnkranz & G. Widmer [1994] Efficient Pruning Methods William W. Cohen [1993]

61 PERGUNTAS?


Carregar ppt "RIPPER Fast Effective Rule Induction"

Apresentações semelhantes


Anúncios Google