Capítulo 5<br />Regras de Classification(ClassificationRules)<br />
Aprendizagem Computacional                                                                                                ...
Classificador baseado em Regras<br />Conjunto de regrasdo tipo IF… THEN…<br />Disjunção de regras<br />RuleSet= (R1R2 … ...
vié um valor dentro dos possíveis que o atributo pode tomar
opé um operador escolhido do conjunto {=, ≠, <, >, ≤, ≥}</li></li></ul><li>Aprendizagem Computacional                     ...
Aprendizagem Computacional                                                                                                ...
Conceitos Básicos<br />Mutuamente exclusivas:<br /><ul><li>regras independentes  entre si
cada exemplo é coberto no máximo por uma regra </li></ul>Conjunto de regras<br />Exaustivas:<br /><ul><li>cada exemplo é c...
Aprendizagem Computacional                                                                                                ...
turtle é coberto pelas regras R4e R5 regras não mutuamente exclusivas</li></ul>     Conflito !!! Qual das duas escolher? ...
SequentialCoveringAlgorithmFamilyCN2, IREP, RIPPER<br />Input:Conjunto de exemplos, classes ordenadas {c1, …, ck}<br />Out...
Sequential CoveringExamples<br />
Algoritmo RIPPER<br />(Repeated Incremental Pruning to ProduceErrorReduction)<br /><ul><li>Autor:  William W. Cohen  (1995)
  Versão melhorada  do:  IREP(Incremental ReducedErrorPruning, Furnkranz, y Widner, 1994)
Estratégia utilizada: Sequentialrulecovering
as regras são induzidas para uma classe de cada vez,
e para cada classe vão sendo produzidas uma de cada vez
segundo uma medida de avaliação</li></li></ul><li>IREP/RIPPER: Fase Inicial<br /><ul><li> SE número de classes = 2:
Classe atribuída mais vezes  classe por defeito
conjuntoRegrasSequentialCovering(para a outra classe)
SE número de classes > 2:
Ordenar as classes  por ordem crescente da sua frequência               {c1, …, ck}
ck classe por defeito
conjuntoRegras ∅
para i desde 1 até k-1:</li></ul>R construir regras que diferenciam exemplos			     positivos dos negativos<br />conjunto...
PrunePos<br />GrowPos<br />Pos<br />Neg<br />IREP/RIPPER: Fase inicialDivisão dos exemplos<br />Dada una classe binária c ...
Upcoming SlideShare
Loading in …5
×

Lesson 5: Classification Rules

1,087
-1

Published on

The objective of this lesson is to introduce the most popular algorithms (IREP and RIPPER) to learn a rule classification set. More information is given in the course site:
https://sites.google.com/site/gladyscjaprendizagem/program/rule-based-learning-algorithms

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,087
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
51
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lesson 5: Classification Rules

  1. 1. Capítulo 5<br />Regras de Classification(ClassificationRules)<br />
  2. 2. Aprendizagem Computacional Gladys Castillo, UA<br />Classificador baseado em Regras<br />Classificador = conjunto de regrasIF … THEN …<br />Regra:(Condição)  y<br />onde <br /> condição = conjunção de atributos <br /> y = a classe<br />LHS: antecedente da regra ou condição<br />RHS: consequente da regra<br />Exemplos de regras:<br />(Tipo de sangue = quente) (pôr ovos=sim)  Aves<br /> (Ingressos < 500)  (Solteiro)  NoAtribuirCredito<br />
  3. 3. Classificador baseado em Regras<br />Conjunto de regrasdo tipo IF… THEN…<br />Disjunção de regras<br />RuleSet= (R1R2 … Rm)<br />Cada Rj, j=1,…,mestá constituída por uma condição e pela classe <br />Rj: IF (Condiçãoj) THENyj<br /> conjunção de literais classe<br />Condiçãoj= (A1opv1)  (A2opv2)  …  (Akopvk)Cada (Aiopvi), i=1,…,k é um literal onde<br /><ul><li>Ai é um atributo
  4. 4. vié um valor dentro dos possíveis que o atributo pode tomar
  5. 5. opé um operador escolhido do conjunto {=, ≠, <, >, ≤, ≥}</li></li></ul><li>Aprendizagem Computacional Gladys Castillo, UA<br />Exemplo de Conjunto de Regras<br />R1: IF (Give Birth = no)  (Can Fly = yes) THEN Birds<br />R2: IF (Give Birth = no)  (Live in Water = yes) THEN Fishes<br />R3: IF (Give Birth = yes)  (Blood Type = warm) THEN Mammals<br />R4: IF (Give Birth = no)  (Can Fly = no) THEN Reptiles<br />R5: IF (Live in Water = sometimes) THEN Amphibians<br />
  6. 6. Aprendizagem Computacional Gladys Castillo, UA<br />Cobertura de umaRegra<br />Uma regra R cobre um exemplox se os seus atributos satisfazem a condição da regra<br />R1: IF (Give Birth = no)  (Can Fly = yes) THEN Birds<br />R2: IF (Give Birth = no)  (Live in Water = yes) THEN Fishes<br />R3: IF (Give Birth = yes)  (Blood Type = warm) THEN Mammals<br />R4: IF (Give Birth = no)  (Can Fly = no) THEN Reptiles<br />R5: IF (Live in Water = sometimes) THEN Amphibians<br />A regra R1cobre a hawk (falcão)=> Bird<br />A regraR3cobre the grizzly bear (ursopardo)=> Mammal<br />
  7. 7. Conceitos Básicos<br />Mutuamente exclusivas:<br /><ul><li>regras independentes entre si
  8. 8. cada exemplo é coberto no máximo por uma regra </li></ul>Conjunto de regras<br />Exaustivas:<br /><ul><li>cada exemplo é coberto por pelo menos uma regra.</li></ul>Cada exemplo é coberto por exactamente uma regra!<br />
  9. 9. Aprendizagem Computacional Gladys Castillo, UA<br />Problemas na Fase de Classificação<br /><ul><li>lemuré coberto pela regra R3 e classificado como mamífero
  10. 10. turtle é coberto pelas regras R4e R5 regras não mutuamente exclusivas</li></ul> Conflito !!! Qual das duas escolher? As regras devem ser ordenadas numa lista por prioridade (decisionlist), então atribui-se a classe da regra com mais prioridade  Reptil<br /><ul><li>dogfishshark não é coberto por nenhuma regra  regras não exhaustivasComo classificar? Adicionar uma regra por defeito sem qualquer condição: ex: R6: () ClassePorDefeito</li></li></ul><li>Aprendizagem Computacional Gladys Castillo, UA<br />Algoritmos de Aprendizagem<br />Métodos Directos <br /> Extraem as regras directamente dos dados:Holte’s 1R, CN2, IREP, RIPPER <br />o mais popular: RIPPER<br />Métodos Indirectos<br />Extraem as regras a partir de outros modelos de classificação (ex: árvores de decisão, redes neuronais, etc.)<br />o mais popular: C4.5rules<br />
  11. 11. SequentialCoveringAlgorithmFamilyCN2, IREP, RIPPER<br />Input:Conjunto de exemplos, classes ordenadas {c1, …, ck}<br />Output:Conjunto de regras<br />conjuntoRegras⟵∅<br />Para cada classe, excepto ck:<br />Enquanto critério de paragem não atingido:<br /> Regra ⟵LearnOneRule(classe, atributos, threshold)<br />conjuntoRegras⟵conjuntoRegras + Regra<br /> exemplos ⟵ exemplos – Covered(exemplos, Regra) <br /> Inserir regra por defeito ( ) ⟶ck a conjuntoRegras<br />returnconjuntoRegras<br />
  12. 12. Sequential CoveringExamples<br />
  13. 13. Algoritmo RIPPER<br />(Repeated Incremental Pruning to ProduceErrorReduction)<br /><ul><li>Autor: William W. Cohen (1995)
  14. 14. Versão melhorada do: IREP(Incremental ReducedErrorPruning, Furnkranz, y Widner, 1994)
  15. 15. Estratégia utilizada: Sequentialrulecovering
  16. 16. as regras são induzidas para uma classe de cada vez,
  17. 17. e para cada classe vão sendo produzidas uma de cada vez
  18. 18. segundo uma medida de avaliação</li></li></ul><li>IREP/RIPPER: Fase Inicial<br /><ul><li> SE número de classes = 2:
  19. 19. Classe atribuída mais vezes  classe por defeito
  20. 20. conjuntoRegrasSequentialCovering(para a outra classe)
  21. 21. SE número de classes > 2:
  22. 22. Ordenar as classes por ordem crescente da sua frequência {c1, …, ck}
  23. 23. ck classe por defeito
  24. 24. conjuntoRegras ∅
  25. 25. para i desde 1 até k-1:</li></ul>R construir regras que diferenciam exemplos positivos dos negativos<br />conjuntoRegrasconjuntoRegras⋃ R<br />
  26. 26. PrunePos<br />GrowPos<br />Pos<br />Neg<br />IREP/RIPPER: Fase inicialDivisão dos exemplos<br />Dada una classe binária c podemos particionar o conjunto de dados em dois: Pos - com os exemplos positivos e Neg– com os exemplos negativos<br />c<br />.<br />.<br />.<br />c<br />c<br />c<br />.<br />.<br />.<br />c<br />c<br />c<br />.<br />.<br />.<br />c<br />Dados<br />GrowNeg<br />.<br />.<br />.<br />2/3<br />c<br />.<br />.<br />.<br />c<br />.<br />.<br />.<br />2/3<br />PruneNeg<br />.<br />.<br />.<br />1/3<br />1/3<br />
  27. 27. IREP/RIPPERGeração de regras para uma classe<br />conjuntoRegras ∅ <br />EnquantoPos ≠ ∅<br />Dividir exemplos em GrowPos, GrowNeg, PrunePos, PruneNeg<br />Regra CrescerRegra(GrowPos, GrowNeg)<br />Regra PodarRegra(Regra, PrunePos, PruneNeg)<br />Se verifica critério de paragem<br />returnconjuntoRegras<br />Senão<br />conjuntoRegras⟵conjuntoRegras+ Regra<br />exemplos ⟵ exemplos – Covered(exemplos, Regra)<br />returnconjuntoRegras<br />
  28. 28. IREP/RIPPERCrescimento de uma regra<br />RuleGrowing(GrowPos, GrowNeg)<br />Estratégia utilizada: heurística greedy, general-to-specific<br />Regra Inicial: r: ( ) c<br />Adicionar literais sucessivamente que garantem um maior valor de uma medida de avaliação dada:<br /> r: (A1opv1)c <br /> r: ((A1opv1)  (A2opv2))c<br /> . . .<br />Medida de avaliação: FOIL’sinformationgain<br />Critério de Paragem: Nenhuma adição de literal melhora o valor da medida de avaliação<br />
  29. 29. FOIL’sInformationGain<br />Thismeasureis similar to informationgainandisusedby FOIL (algorithm for top-down induction of Horn clauses)<br />where: <br /><ul><li>R0 denotes a rule before adding a new literal.
  30. 30. R1 is an specification (extension) of R0.
  31. 31. p0 and p1 are the number of positive examples covered by R0andR1, respectively.
  32. 32. n0and n1 are the number of negative examples covered by R0andR1, respectively.
  33. 33. t is the number of positive examples, covered by R0 and R1</li></li></ul><li>IREP/RIPPER Eliminação de exemplos<br />Regra ⟵ ∅<br />Enquanto critério de paragem não atingido:<br /> Regra ⟵RuleGrowing(GrowPos, GrowNeg)<br /> exemplos ⟵ exemplos – Covered(exemplos, Regra) <br />R<br />Sempre que uma regra é adicionada ao RuleSet , são logo eliminados todos os exemplos positivos e negativos cobertos: <br />
  34. 34. FOIL’sInformationGainExemplo<br /><ul><li>R0 cobre 90 exemplos: 70 positivos e 20 negativos
  35. 35. R1 é uma extensão má de R0 (cobre menos exemplos positivos) : 50 positivos e 20 negativos
  36. 36. R2 é uma extensão boa de R0(cobre o mesmo número de exemplos positivos):70 positivos e 10 negativos </li></ul>Melhor !!!<br />
  37. 37. IREP/RIPPERPoda de uma regra<br />RulePruning ( Rule, PrunePos, PruneNeg)<br />Começando pelo último literal, sequencialmente eliminar (podar) aqueles que melhorem a medida de desempenho:<br /> r: ((A1opv1)  . . .  (Aj-1opvj-1)  (Ajopvj))c<br />Medida de desempenho v: <br />Critério de paragem: Nenhuma eliminação de literais melhora o valor de v<br />IREP<br /><ul><li>P – total de exemplosemPrunePos
  38. 38. N – total de exemplosemPruneNeg
  39. 39. p – total de exemploscobertospor r emPrunePos
  40. 40. n – total de exemploscobertospor r emPruneNeg</li></ul>RIPPER<br />
  41. 41. Critério de PodaExemplo<br /><ul><li>R1 cobre 2000exemplosde PrunePos e 1000 exemplos de PruneNeg
  42. 42. R2 cobre 1000exemplosde PrunePos e 1 exemplo de PruneNeg</li></ul>Intuitivamente R2 é preferível a R1(apenas 1 exemplo negativo) <br />Enquanto IREP vai preferir R1: <br />RIPPER vai preferir R2: <br />
  43. 43. IREP/RIPPERCritério de Paragem<br />Parar de adicionar regras quando:<br />IREPtaxaErro(Regra, PrunePosUPruneNeg) > 50%<br />RIPPER usa heurística baseada no cálculo do MinimumDescriptionLength (MDL)<br />Ideia:para evitar overfitting penalizar as regras com maior número de literais (OccamRazor: dados dois modelos que descrevem os dados preferir sempre o menor)<br />
  44. 44. Algoritmo RipperPost-Poda<br />Outra diferença relativamente ao IREP<br />Conjunto de Regras Final<br />Post-Poda<br />Ideia: Realizar uma busca local para optimizar o conjunto de regras (ou seja minimizar o erro em PrunePos U PruneNeg : <br />Substituir alguma regra por outra se isto produz uma menor taxa de erro<br />Revisar uma determinada regra adicionando novos literais sempre que se consiga uma menor taxa de erro<br />
  45. 45. Algoritmo RipperConclusões<br />1. Introduz três melhoras fundamentais sobre IREP:<br /><ul><li>Medidaalternativanafase de poda (pruning phase)
  46. 46. Novas heurísticasparacritério de paragem
  47. 47. Post-Poda (non-incremental pruning)</li></ul>2. Robusto para bases de dados:<br /><ul><li>com classes desbalanceadas
  48. 48. com ruído (previne overfitting)</li></li></ul><li>Error Rates<br />RIPPER obviously is competitive<br />
  49. 49. Indução de Regras de Classificação em RapidMiner 5.0<br />Base de Dados GOLF<br /> ( n / p) ifOutlook = overcast thenyes (0 / 4)if Wind = false and Outlook = rain thenyes (0 / 3)if Humidity = range3 [82.500 - ∞] then no (3 / 0)if Outlook = sunny thenyes (0 / 2)else no (2 / 0)correct: 14 out of 14 training examples. <br />Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro<br />
  50. 50. Aprendizagem Computacional , Gladys Castillo<br />References<br />Incremental ReducedErrorPruning (IREP)FürnkfranzandWidnerInternationalConferenceonMachineLearning (1994)<br />FastEffectiveRuleInduction (RIPPER)William W. Cohen, AT&T LaboratoriesAdvancesinInductiveLogicProgramming (1995)<br />Chapter 5: Classification – alternativetechniquesIntroduction to Data Mining  P. Tan, M.Steinbach, V.Kumar<br />ClassificationRulesPierLucaLanzi, PolitêcnicodiMilano<br />Inducciónde regrasSebenta [PDF]AbdelmalikMoujahid, IñakiInza e Pedro LarrañagaUniversidad del País Vasco<br />RIPPER, FastEffectiveRuleInductionMerlinHolzapfel & MarinhSchmidt<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×