Upload
gladys-castillo
View
1.029
Download
1
Tags:
Embed Size (px)
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
Citation preview
Aprendizagem Computacional Gladys Castillo, UA
Capítulo 5
Regras de Classification(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
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
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
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
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
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
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
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
10
Sequential CoveringExamples
(i) Original Data (ii) Step 1
(iii) Step 2
R1
(iv) Step 3
R1
R2
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)
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
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
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
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
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:
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
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 !
!!
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
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
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
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
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
24
Error Rates
RIPPER obviously is competitive
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
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