lesson 5: classification rules

26
Aprendizagem Computacional Gladys Castillo, UA Capítulo 5 Regras de Classification (Classification Rules )

Upload: gladys-castillo

Post on 26-Jun-2015

1.029 views

Category:

Education


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Lesson 5: Classification Rules

Aprendizagem Computacional Gladys Castillo, UA

Capítulo 5

Regras de Classification(Classification Rules )

Page 2: Lesson 5: Classification Rules

2Aprendizagem Computacional Gladys

Castillo, UA

Classificador baseado em Regras

Classificador = conjunto de regras IF … THEN …

Regra: (Condição) y onde

condição = conjunção de atributos y = a classe

LHS: antecedente da regra ou condição RHS: consequente da regra

Exemplos de regras: (Tipo de sangue = quente) (pôr ovos=sim) Aves (Ingressos < 500) (Solteiro) NoAtribuirCredito

Page 3: Lesson 5: Classification Rules

3

Conjunto de regras do tipo IF… THEN…

Cada Rj , j=1,…,m está constituída por uma condição e pela classe

Rj : IF (Condiçãoj) THEN yj

Classificador baseado em Regras

RuleSet = (R1 R2 … Rm)

Condiçãoj = (A1 op v1) (A2 op v2) … (Ak op vk)

Cada (Ai op vi), i=1,…,k é um literal onde

• Ai é um atributo• vi é um valor dentro dos possíveis que o atributo pode

tomar• op é um operador escolhido do conjunto {=, ≠, <, >, ≤,

≥}

conjunção de literais classe

Disjunção de regras

Page 4: Lesson 5: Classification Rules

4Aprendizagem Computacional Gladys

Castillo, UA

Exemplo de Conjunto de Regras

R1: IF (Give Birth = no) (Can Fly = yes) THEN BirdsR2: IF (Give Birth = no) (Live in Water = yes) THEN

FishesR3: IF (Give Birth = yes) (Blood Type = warm) THEN

MammalsR4: IF (Give Birth = no) (Can Fly = no) THEN

ReptilesR5: IF (Live in Water = sometimes) THEN

Amphibians

Name Blood Type Give Birth Can Fly Live in Water Classhuman warm yes no no mammalspython cold no no no reptilessalmon cold no no yes fisheswhale warm yes no yes mammalsfrog cold no no sometimes amphibianskomodo cold no no no reptilesbat warm yes yes no mammalspigeon warm no yes no birdscat warm yes no no mammalsleopard shark cold yes no yes fishesturtle cold no no sometimes reptilespenguin warm no no sometimes birdsporcupine warm yes no no mammalseel cold no no yes fishessalamander cold no no sometimes amphibiansgila monster cold no no no reptilesplatypus warm no no no mammalsowl warm no yes no birdsdolphin warm yes no yes mammalseagle warm no yes no birds

Page 5: Lesson 5: Classification Rules

5Aprendizagem Computacional Gladys

Castillo, UA

Cobertura de uma Regra

A regra R1 cobre a hawk (falcão) => BirdA regra R3 cobre the grizzly bear (urso pardo) =>

Mammal

Name Blood Type Give Birth Can Fly Live in Water Classhawk warm no yes no ?grizzly bear warm yes no no ?

Uma regra R cobre um exemplo x se os seus atributos satisfazem a condição da

regra

R1: IF (Give Birth = no) (Can Fly = yes) THEN Birds

R2: IF (Give Birth = no) (Live in Water = yes) THEN Fishes

R3: IF (Give Birth = yes) (Blood Type = warm) THEN Mammals

R4: IF (Give Birth = no) (Can Fly = no) THEN Reptiles

R5: IF (Live in Water = sometimes) THEN Amphibians

Page 6: Lesson 5: Classification Rules

6

Conjunto de regras

Mutuamente exclusivas:• regras independentes entre si• cada exemplo é coberto no máximo

por uma regra

Exaustivas: • cada exemplo é coberto por pelo

menos uma regra.

Cada exemplo é coberto por exactamente uma regra!

Conceitos Básicos

Page 7: Lesson 5: Classification Rules

7Aprendizagem Computacional Gladys

Castillo, UA

Problemas na Fase de Classificação

lemur é coberto pela regra R3 e classificado como mamífero turtle é coberto pelas regras R4 e R5 regras não mutuamente

exclusivas Conflito !!! Qual das duas escolher?

As regras devem ser ordenadas numa lista por prioridade (decision list), então atribui-se a classe da regra com mais prioridade Reptil

dogfish shark não é coberto por nenhuma regra regras não exhaustivas Como classificar? Adicionar uma regra por defeito sem qualquer condição: ex: R6: () ClassePorDefeito

Name Blood Type Give Birth Can Fly Live in Water Classlemur warm yes no no ?turtle cold no no sometimes ?dogfish shark cold yes no yes ?

R1: (Give Birth = no) (Can Fly = yes) BirdsR2: (Give Birth = no) (Live in Water = yes) FishesR3: (Give Birth = yes) (Blood Type = warm) MammalsR4: (Give Birth = no) (Can Fly = no) ReptilesR5: (Live in Water = sometimes) Amphibians

Page 8: Lesson 5: Classification Rules

8Aprendizagem Computacional Gladys

Castillo, UA

Algoritmos de Aprendizagem

Métodos Directos Extraem as regras directamente dos dados:

Holte’s 1R, CN2, IREP, RIPPER

o mais popular: RIPPER

Métodos Indirectos Extraem as regras a partir de outros modelos

de classificação (ex: árvores de decisão, redes neuronais, etc.)

o mais popular: C4.5rules

Page 9: Lesson 5: Classification Rules

9

Sequential Covering Algorithm Family CN2, IREP, RIPPER

Input: Conjunto de exemplos, classes ordenadas {c1, …, ck}

Output: Conjunto de regras

conjuntoRegras ⟵ ∅

Para cada classe, excepto ck:

Enquanto critério de paragem não atingido:

Regra ⟵ LearnOneRule(classe, atributos, threshold)

conjuntoRegras ⟵ conjuntoRegras + Regra

exemplos ⟵ exemplos – Covered(exemplos, Regra)

Inserir regra por defeito ( ) ⟶ ck a conjuntoRegras

return conjuntoRegras

Page 10: Lesson 5: Classification Rules

10

Sequential CoveringExamples

(i) Original Data (ii) Step 1

(iii) Step 2

R1

(iv) Step 3

R1

R2

Page 11: Lesson 5: Classification Rules

11

Autor: William W. Cohen (1995)

Versão melhorada do: IREP (Incremental Reduced Error Pruning , Furnkranz, y Widner, 1994)

Estratégia utilizada: Sequential rule covering

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

Algoritmo RIPPER(Repeated Incremental Pruning to Produce Error Reduction)

Page 12: Lesson 5: Classification Rules

12

SE número de classes = 2:

Classe atribuída mais vezes classe por defeito conjuntoRegras Sequential Covering (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: R construir regras que diferenciam exemplos

positivos dos negativos

conjuntoRegras conjuntoRegras ⋃ R

IREP/RIPPER: Fase Inicial

Page 13: Lesson 5: Classification Rules

13

Dados

c

c...

c

Pos

cc...c

Neg ...PruneNeg ...

GrowNeg...

PrunePosc...c

GrowPosc...c

IREP/RIPPER: Fase inicialDivisão dos exemplosDada una classe binária c podemos particionar

o conjunto de dados em dois: Pos - com os exemplos positivos e Neg – com os exemplos

negativos2/3

2/3

1/3

1/3

Page 14: Lesson 5: Classification Rules

14

conjuntoRegras ∅

Enquanto Pos ≠ ∅

Dividir exemplos em GrowPos, GrowNeg, PrunePos, PruneNeg

Regra CrescerRegra(GrowPos, GrowNeg)

Regra PodarRegra(Regra, PrunePos, PruneNeg)

Se verifica critério de paragem

return conjuntoRegras

Senão

conjuntoRegras ⟵ conjuntoRegras + Regra

exemplos ⟵ exemplos – Covered(exemplos, Regra)

return conjuntoRegras

IREP/RIPPERGeração de regras para uma classe

Page 15: Lesson 5: Classification Rules

15

RuleGrowing (GrowPos, GrowNeg)Estratégia utilizada: heurística greedy, general-to-

specific

1. Regra Inicial: r: ( ) c

2. Adicionar literais sucessivamente que garantem um

maior valor de uma medida de avaliação dada:

r: (A1 op v1) c

r: ((A1 op v1) (A2 op v2)) c

. . .

3. Medida de avaliação: FOIL’s information gain

4. Critério de Paragem: Nenhuma adição de literal melhora o valor da medida de avaliação

IREP/RIPPERCrescimento de uma regra

Page 16: Lesson 5: Classification Rules

16

FOIL’s Information Gain This measure is similar to information gain and is used by FOIL (algorithm for top-down induction of

Horn clauses)

R0 denotes a rule before adding a new literal. R1 is an specification (extension) of R0. p0 and p1 are the number of positive examples covered

by R0 and R1, respectively. n0 and n1 are the number of negative examples covered

by R0 and R1, respectively. t is the number of positive examples, covered by R0 and

R1

)log(log),( 00

02

11

1210 np

p

np

ptRRGain

where:

Page 17: Lesson 5: Classification Rules

17

IREP/RIPPER Eliminação de exemplos

Regra ⟵ ∅

Enquanto critério de paragem não atingido:

Regra ⟵ RuleGrowing (GrowPos, GrowNeg)

exemplos ⟵ exemplos – Covered(exemplos, Regra)

Sempre que uma regra é adicionada ao RuleSet , são logo eliminados todos os exemplos positivos e negativos cobertos:

R

Page 18: Lesson 5: Classification Rules

18

FOIL’s Information GainExemplo

• R0 cobre 90 exemplos: 70 positivos e 20 negativos

• R1 é uma extensão má de R0 (cobre menos exemplos positivos) :

50 positivos e 20 negativos

• R2 é uma extensão boa de R0 (cobre o mesmo número de exemplos

positivos):

70 positivos e 10 negativos

0878.0)2070

70log

2050

50(log

70

50),( 2210

RRGain

1699.0)2070

70log

1070

70(log

70

70),( 2220

RRGain Melhor !

!!

Page 19: Lesson 5: Classification Rules

19

1. Começando pelo último literal, sequencialmente eliminar (podar) aqueles que melhorem a medida de desempenho:

r: ((A1 op v1) . . . (Aj-1 op vj-1) (Aj op vj)) c

2. Medida de desempenho v:

3. Critério de paragem: Nenhuma eliminação de literais melhora o valor de v

RIPPER

IREP/RIPPERPoda de uma regra

RulePruning ( Rule, PrunePos, PruneNeg)

IREPNP

nNprv

)(

)(

np

nprv

)(

P – total de exemplos em PrunePos N – total de exemplos em PruneNeg p – total de exemplos cobertos por r em

PrunePos n – total de exemplos cobertos por r em

PruneNeg

Page 20: Lesson 5: Classification Rules

20

Critério de PodaExemplo

• R1 cobre 2000 exemplos de PrunePos e 1000 exemplos de

PruneNeg

• R2 cobre 1000 exemplos de PrunePos e 1 exemplo de

PruneNeg

Intuitivamente R2 é preferível a R1 (apenas 1 exemplo negativo)

Enquanto IREP vai preferir R1:

NP

NRv

NP

NRv

)1(1000)(

)1000(2000)( 21

RIPPER vai preferir R2:

998.01001

999

11000

11000)( 33.0

3000

1000

10002000

10002000)( 21

RvRv

Page 21: Lesson 5: Classification Rules

21

Parar de adicionar regras quando:

IREP taxaErro(Regra, PrunePos U PruneNeg)

> 50%

RIPPER usa heurística baseada no cálculo do

Minimum Description Length (MDL)

Ideia: para evitar overfitting penalizar as regras

com

maior número de literais

(Occam Razor: dados dois modelos que

descrevem os dados

preferir sempre o menor)

IREP/RIPPERCritério de Paragem

Page 22: Lesson 5: Classification Rules

22

Outra diferença relativamente ao IREP

Conjunto de Regras Final

Post-PodaIdeia: Realizar uma busca local para optimizar o conjunto de regras (ou seja minimizar o erro em PrunePos U PruneNeg :

1.Substituir alguma regra por outra se isto produz uma menor taxa de erro

2.Revisar uma determinada regra adicionando novos literais sempre que se consiga uma menor taxa de erro

Algoritmo RipperPost-Poda

Page 23: Lesson 5: Classification Rules

23

1. Introduz três melhoras fundamentais sobre IREP:

Medida alternativa na fase de poda (pruning

phase)

Novas heurísticas para critério de paragem

Post-Poda (non-incremental pruning)

2. Robusto para bases de dados: com classes desbalanceadas com ruído (previne overfitting)

Algoritmo RipperConclusões

Page 24: Lesson 5: Classification Rules

24

Error Rates

RIPPER obviously is competitive

Page 25: Lesson 5: Classification Rules

25

Indução de Regras de Classificação em RapidMiner 5.0

( n / p) if Outlook = overcast then yes (0 / 4)if Wind = false and Outlook = rain then yes (0 / 3)if Humidity = range3 [82.500 - ∞] then no (3 / 0)if Outlook = sunny then yes (0 / 2)else no (2 / 0)

correct: 14 out of 14 training examples.

Base de Dados GOLF

Aprendizagem Computacional Gladys Castillo, Universidade de Aveiro

Page 26: Lesson 5: Classification Rules

26Aprendizagem Computacional , Gladys Castillo

References Incremental Reduced Error Pruning (IREP)

Fürnkfranz and WidnerInternational Conference on Machine Learning (1994)

Fast Effective Rule Induction (RIPPER)William W. Cohen, AT&T LaboratoriesAdvances in Inductive Logic Programming (1995)

Chapter 5: Classification – alternative techniquesIntroduction to Data Mining  P. Tan, M.Steinbach, V.Kumar

Classification RulesPier Luca Lanzi, Politêcnico di Milano

Inducción de regrasSebenta [PDF]Abdelmalik Moujahid, Iñaki Inza e Pedro LarrañagaUniversidad del País Vasco

RIPPER, Fast Effective Rule InductionMerlin Holzapfel & Marinh Schmidt