RIPPER Fast Effective Rule Induction - PowerPoint PPT Presentation

micheal
ripper fast effective rule induction n.
Skip this Video
Loading SlideShow in 5 Seconds..
RIPPER Fast Effective Rule Induction PowerPoint Presentation
Download Presentation
RIPPER Fast Effective Rule Induction

play fullscreen
1 / 61
Download Presentation
RIPPER Fast Effective Rule Induction
144 Views
Download Presentation

RIPPER Fast Effective Rule Induction

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. RIPPERFast 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 return Ruleset end

  7. Exemplo

  8. Exemplo - IREP Transações são separadas nos grupos POS e NEG

  9. Exemplo - IREP

  10. Exemplo - IREP 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

  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 return Ruleset 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

  15. Exemplo - GrowRule GP GN Regra: Ventoso = Falso t · [ log2 ( p1/ ( p1+n1 )) - log2 (p0 / (p0+ n0)) ]

  16. Exemplo - GrowRule GP GN Regra: Ventoso = Falso 5· [ log2 ( p1/ ( p1+n1 )) - log2 (p0 / (p0+ n0)) ]

  17. Exemplo - GrowRule GP GN Regra: Ventoso = Falso 5· [ log2 ( 5/ ( 5+ 1 )) - log2 (6 / (6 + 3)) ]

  18. Exemplo - GrowRule 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 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 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 return Ruleset 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

  28. Exemplo - PruneRule 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 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 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 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 return Ruleset end

  33. Exemplo – Condição de Parada PP PN Regra: Ventoso = Falso and Umidade = Normal

  34. Exemplo – Condição de Parada 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 return Ruleset end

  36. Exemplo – Removendo Transações

  37. Exemplo – Removendo Transações

  38. Exemplo – Removendo Transações

  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 return Ruleset end

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

  41. Resultado Possível

  42. Resultado Possível

  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: 11-23-3

  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: 2000 Regra 2 p:1000 n:1000 n:1 v = (p + (N – n)) / (P + N) • v=(2000 +(2000-1000))/(4000+2000) v=(1000+(2000-1))/(4000+2000) v=0.5 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=(2000-1000)/ V=(1000-1)/(1000+1) (2000+1000)=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