1 / 61

RIPPER Fast Effective Rule Induction

RIPPER Fast Effective Rule Induction. William W. Cohen. apresentação Felipe Hoppe Levin Guilherme Dal Bianco. 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

micheal
Download Presentation

RIPPER Fast Effective Rule Induction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related