Você está na página 1de 14

Regra

Indução de Regras
‰ A indução de árvores de decisão
‰Uma regra assume a forma if L then R que é
recursivamente divide os exemplos em equivalente a L → R ≡ R ← L ≡ R :- L
subconjuntos menores, tentando separar
cada classe das demais ‰Normalmente, as partes esquerda L e direita R
‰ A indução de regras, por outro lado, o faz são complexos sem atributos comuns entre eles,
diretamente, usando um algoritmo de
cobertura ou seja
‰ Nesse processo, cada regra cobre um ƒ atributos(L) ∩ atributos(R) = Ø
subconjunto de exemplos que pertencem a
uma classe específica ‰A parte esquerda L é denominada condição,
‰ Veremos nesta aula duas formas de premissa, antecedente, cauda ou corpo da
indução de regras: regras ordenadas e não regra
ordenadas
‰A parte direita R é denominada conclusão ou
José Augusto Baranauskas augusto@usp.br
cabeça da regra
Departamento de Física e Matemática – FFCLRP-USP http://dfm.ffclrp.usp.br/~augusto
2

Regra de Classificação Complexo

‰Uma regra de classificação assume a ‰É uma conjunção de disjunções dos atributos de


forma restrita de uma regra teste, na forma:
ƒ if L then classe = Ci Xi op valor
‰ou simplesmente onde Xi é um atributo, op é um operador e valor é
ƒ if L then Ci constante válida para o atributo Xi
‰onde Ci pertence ao conjunto de k valores ‰Exemplos
de classe {C1, C2, ..., Ck} ƒ Sexo = Masculino
ƒ Idade >= 20
‰A parte esquerda L é um complexo
ƒ Sexo = Feminino and Idade < 90

3 4

Induç
Indução de Regras Induç
Indução de Regras
‰ Na indução de regras, o algoritmo ‰ Na indução de regras, o algoritmo
identifica novos testes (condições) identifica novos testes (condições)
a serem adicionados à regra atual X2
a serem adicionados à regra atual X2
(sendo induzida) de forma a + o (sendo induzida) de forma a + o
+ + + o + + + o
melhorar a precisão + + o melhorar a precisão + + o
o o o o
‰ Exemplo + ‰ Exemplo +
+ + + +
ƒ Considere um conjunto com duas + o + ƒ Passo 1: + o +
+ +
classes (+,o) e dois atributos X1 e X2 + + if X1>1.2 then classe=o + +
conforme figura ao lado
X1 X1
1.2

5 6

1
Induç
Indução de Regras Induç
Indução de Regras
‰ Na indução de regras, o algoritmo ‰Algoritmo de Cobertura
identifica novos testes (condições)
a serem adicionados à regra atual X2 Conjunto de
(sendo induzida) de forma a + o
Exemplos
+ + + o
melhorar a precisão + + o
o o
‰ Exemplo 2.6 +
Regra atual
+ +
ƒ Passo 1: + o +
+
if X1>1.2 then classe=o + +
Regra atual
ƒ Passo 2: (especialização)
X1 após inserir um
if X1>1.2 and X2>2.6 then classe=o 1.2 novo teste

7 8

Induç
Indução de Regras Classificação de Regras
‰Especialização ‰Quanto à intersecção:
ƒ Etapa em que testes são incluídos na regra sendo ƒ Regras disjuntas: cada exemplo é coberto somente por
induzida uma única regra
ƒ Objetivo: eliminar exemplos cobertos incorretamente ƒ Regras não-disjuntas: cada exemplo pode ser coberto
‰Generalização (Poda) por mais de uma regra
ƒ Etapa em que testes são excluídos de uma regra X2 X2
* ** * **
™pré-poda: se ocorre durante a indução o o o
o o o * * * o o o
o o o * * *
o o * * * o o * * *
* *
o o
™pós-poda: se ocorre após a indução de todas a regras o o o o
o o + + o o + +
o o o o
ƒ Objetivo: evitar overfitting o
+ +
o
+ +
+ +
o + + + o + + +
o + o +
+ + + + + +
o + o +
+ + + + + + + +
o o
X1 X1
9 10

Classificação de Regras Estratégias para Indução de Regras

‰Quanto à ordem de avaliação: ‰Induzir uma árvore de decisão


ƒ Regras ordenadas: a ordem de aplicação das regras é ƒ Transformar a árvore em um conjunto (disjunto) de
importante
ƒ Regras não-ordenadas: a ordem de aplicação das regras
regras é indiferente ƒ Transformar a árvore em um conjunto de regras,
ƒ Regras semi-ordenadas: não há ordem entre regras de simplificando algumas de suas condições (conjunto
uma mesma classe (i.e. cuja conclusão é de uma não-disjunto) C4.5rules, Part
mesma classe), mas a ordem entre regras de classes
diferentes deve ser respeitada ‰Induzir regras diretamente a partir dos exemplos
‰Quanto ao critério de avaliação: ƒ 0R, 1R (regras simples)
ƒ A primeira regra que dispara para um novo exemplo é ƒ CN2, Ripper (JRip), Prism, etc
usada para classificá-lo
ƒ Todas as regras que disparam para um novo exemplo
são usadas para classificá-lo

11 12

2
0R: Zero Rule 1R: One Rule

‰Método simples, com baixo desempenho ‰Classificador simples mas freqüentemente


‰Útil como benchmark: se qualquer outro efetivo, útil para seleção de atributos
classificador tem desempenho pior do que ‰Corresponde a induzir uma árvore de
0R isto indica provavelmente overfitting decisão de um único nível
‰Algoritmo: ‰Entre atributos equivalentes, escolhe
ƒ Para classificação (rótulo classe discreto): aleatoriamente
utiliza a classe majoritária ‰Usa valor desconhecido (missing) como um
ƒ Para regressão (rótulo classe contínuo): utiliza valor separado de atributo
a média dos valores

13 14

Algoritmo de Indução de Regras Algoritmo de Indução de Regras


Ordenadas Ordenadas
Algoritmo RegrasOrdenadas(Exemplos) ‰ A indução ocorre de forma iterativa, cada iteração
ListaRegras := {} procurando por um complexo que cobre um grande
repeat número de exemplos da classe Ci e poucos exemplos da
complexo := encontre_melhor_complexo(Exemplos) classe Cj (j≠i)
if complexo ≠ {} then ‰ Ao encontrar um bom complexo, os exemplos cobertos
C := classe_mais_frequente(complexo,Exemplos) (tanto os da classe Ci sendo aprendidos bem como
Regra := if complexo then classe = C poucos outros de classe Cj, j ≠ i, também cobertos pelo
ListaRegras := ListaRegras + {Regra}
complexo) são removidos do conjunto de treinamento
Exemplos := Exemplos – {E : E ∈ Exemplos and ‰ A regra “if complexo then classe=Ci” é adicionada ao final
satisfaz(E,complexo)}
da lista de regras
endif ‰ Este processo prossegue até que nenhum complexo
until Exemplos = {} or complexo = {}
possa ser encontrado ou não restem exemplos no
conjunto de treinamento
return ListaRegras

15 16

Classificando Novos Exemplos Interpretação Geométrica


‰ Para classificar novos exemplos, cada regra é avaliada ‰Regras ordenadas podem ser vistas como
(em ordem) até que uma regra cuja condições sejam
satisfeitas pelo novo exemplo sendo classificado árvores binárias degeneradas, uma vez
‰ A classe predita pela regra encontrada é então associada que para classificar um novo exemplo,
como sendo a classe do novo exemplo cada regra é avaliada em ordem até que
‰ Se nenhuma regra for satisfeita pelo novo exemplo, a uma dispare
regra default atribui a classe mais comum dos exemplos
de treinamento não cobertos por nenhuma regra como ‰Como essa situação corresponde ao
sendo a classe do novo exemplo comando if-then-else, o espaço de
‰ A regra default somente é utilizada na classificação de descrição é particionado em regiões
novos exemplos se nenhuma das regras induzidas
disparar para o novo exemplo sendo classificado disjuntas, como no caso de árvores de
decisão
17 18

3
Exemplo Exemplo
Exemplo Aparência Temperatura Umidade Ventando Viajar R1
Exemplo Aparência Temperatura Umidade Ventando Viajar E1 sol 25 72 sim bom cc
E1 sol 25 72 sim bom E2 sol 28 91 sim ruim
E3 sol 22 70 não bom cc
E2 sol 28 91 sim ruim E4 sol 23 95 não ruim
E3 sol 22 70 não bom E5 sol 30 85 não ruim
E6 nublado 23 90 sim bom
E4 sol 23 95 não ruim E7 nublado 29 78 não bom cc
E5 sol 30 85 não ruim E8 nublado 19 65 sim ruim ci
E9 nublado 26 75 não bom cc
E6 nublado 23 90 sim bom E10 nublado 20 87 sim bom
E7 nublado 29 78 não bom E11 chuva 22 95 não bom
E8 nublado 19 65 sim ruim E12 chuva 19 70 sim ruim ci
E13 chuva 23 80 sim ruim ci
E9 nublado 26 75 não bom E14 chuva 25 81 não bom cc
E10 nublado 20 87 sim bom E15 chuva 21 80 não bom cc

E11 chuva 22 95 não bom


E12 chuva 19 70 sim ruim
E13 chuva 23 80 sim ruim
cplx := umidade<83 [6b,3r]
E14 chuva 25 81 não bom
E15 chuva 21 80 não bom C := classe_mais_frequente(cplx,Exemplos) = bom
R1 := if umidade<83 then classe=bom

19 20

Exemplo Exemplo
‰ Considerando a indução da regra inicial R1, todos os Exemplo Aparência Temperatura Umidade Ventando Viajar R1 R2
E1 sol 25 72 sim bom cc
exemplos que satisfazem suas condições e possuem a E2 sol 28 91 sim ruim cc

mesma classe predita pela conclusão da regra (E1, E3, E7, E3


E4
sol
sol
22
23
70
95
não
não
bom
ruim
cc
cc

E9, E14, E15), ou seja, aqueles cobertos corretamente (cc) E5


E6
sol
nublado
30
23
85
90
não
sim
ruim
bom
cc
ci
pela regra, assim como os exemplos que satisfazem as E7
E8
nublado
nublado
29
19
78
65
não
sim
bom
ruim
cc
ci
condições da regra mas não pertencem à classe predita E9
E10
nublado
nublado
26
20
75
87
não
sim
bom
bom
cc

(E8, E12, E13), ou seja, aqueles cobertos incorretamente E11


E12
chuva
chuva
22
19
95
70
não
sim
bom
ruim ci
(ci) são removidos pelo algoritmo de indução de regras E13
E14
chuva
chuva
23
25
80
81
sim
não
ruim
bom
ci
cc
ordenadas e um else é introduzido na lista de regras E15 chuva 21 80 não bom cc

antes de induzir a próxima regra


‰ Assim, na indução da próxima regra apenas os exemplos cplx := temperatura >= 23 [1b,3r]
E2, E4, E5, E6, E10 e E11 são considerados C := classe_mais_frequente(cplx,Exemplos) = ruim
‰ Esse processo se repete para as demais regras R2 := if temperatura >= 23 then classe=ruim

21 22

Exemplo Exemplo
Exemplo Aparência Temperatura Umidade Ventando Viajar R1 R2 R3 Exemplo Aparência Temperatura Umidade Ventando Viajar R1 R2 R3 R4
E1 sol 25 72 sim bom cc E1 sol 25 72 sim bom cc
E2 sol 28 91 sim ruim cc E2 sol 28 91 sim ruim cc
E3 sol 22 70 não bom cc E3 sol 22 70 não bom cc
E4 sol 23 95 não ruim cc E4 sol 23 95 não ruim cc
E5 sol 30 85 não ruim cc E5 sol 30 85 não ruim cc
E6 nublado 23 90 sim bom ci E6 nublado 23 90 sim bom ci
E7 nublado 29 78 não bom cc E7 nublado 29 78 não bom cc
E8 nublado 19 65 sim ruim ci E8 nublado 19 65 sim ruim ci
E9 nublado 26 75 não bom cc E9 nublado 26 75 não bom cc
E10 nublado 20 87 sim bom E10 nublado 20 87 sim bom cc
E11 chuva 22 95 não bom cc E11 chuva 22 95 não bom cc
E12 chuva 19 70 sim ruim ci E12 chuva 19 70 sim ruim ci
E13 chuva 23 80 sim ruim ci E13 chuva 23 80 sim ruim ci
E14 chuva 25 81 não bom cc E14 chuva 25 81 não bom cc
E15 chuva 21 80 não bom cc E15 chuva 21 80 não bom cc

Quando todos os exemplos remanescentes são de uma mesma classe,


cplx := aparência=chuva [1b,0r]
ao invés de procurar por mais regras, o algoritmo pode criar
C := classe_mais_frequente(cplx,Exemplos) = bom
a regra default que rotula os exemplos remanescentes não classificados
R3 := if aparência=chuva then classe=bom
R4 := classe=bom

23 24

4
Exemplo Indução de Regras Não Ordenadas
‰ O algoritmo de regras ordenadas pode ser alterado para
induzir regras não ordenadas
‰ A alteração principal consiste em iterar para cada classe
Lista Final de Regras Ordenadas Ci removendo apenas os exemplos cobertos e que são da
classe Ci (cobertos corretamente) quando uma regra é
R1 if umidade<83 then classe=bom encontrada
‰ Assim, diferentemente de regras ordenadas, os exemplos
R2 else if temperatura >= 23 then classe=ruim das classes Cj , j ≠ i cobertos incorretamente pelo
complexo encontrado devem permanecer porque agora
R3 else if aparência=chuva then classe=bom cada nova regra deve ser comparada com todos os
exemplos cobertos incorretamente
R4 else classe=bom (regra default)
‰ Exemplos cobertos (corretamente) que possuem a classe
Ci sendo aprendida devem ser removidos para evitar que
o algoritmo encontre a mesma regra novamente

25 26

Algoritmo de Indução de Regras


Classificando Novos Exemplos
Não Ordenadas
Algoritmo RegrasNãoOrdenadas(Exemplos)
ConjuntoRegras := {}
‰ Para classificar um novo exemplo, todas as regras são
TodosExemplos := Exemplos
testadas e aquelas que disparam são coletadas
for cada classe C ∈ TodosExemplos do ‰ Se mais de uma classe é prevista pelas regras
Exemplos := TodosExemplos disparadas, o método usual de resolver qual classe deve
RegrasParaUmaClasse := {}
repeat
ser associada ao novo exemplo consiste em associar a
complexo := encontre_melhor_complexo(Exemplos,C) cada regra com a distribuição de exemplos cobertos entre
if complexo ≠ {} then classes e então somar essas distribuições para encontrar
Regra := if complexo then classe = C a classe mais provável
RegrasParaUmaClasse := RegrasParaUmaClasse + Regra
Exemplos := Exemplos – {E : E ∈ Exemplos and
‰ Se nenhuma regra for satisfeita pelo novo exemplo, a
satisfaz(E,complexo and classe = C)} regra default atribui a classe mais comum dos exemplos
endif de treinamento não cobertos por nenhuma regra como
until Exemplos = {} or complexo = {} sendo a classe do novo exemplo
ConjuntoRegras := ConjuntoRegras + RegrasParaUmaClasse
endfor ‰ A regra default somente é utilizada na classificação de
return ConjuntoRegras novos exemplos se nenhuma das regras induzidas
disparar para o novo exemplo sendo classificado

27 28

Classificando Novos Exemplos Interpretação Geométrica


‰ Por exemplo, considere as três regras sobre um conjunto ‰ A indução de regras não ordenadas divide o espaço de descrição em
de exemplos de duas classes de robôs: [inimigo, amigo]: regiões que podem se sobrepor, uma vez que cada exemplo pode ser
ƒ if cabeça=quadrada and segura=arma then classe=inimigo cobre coberto por mais de uma regra
[15i,1a]
X2 o
ƒ if tamanho=alto and voa=não then classe=amigo cobre [1i,10a] o o o o
o
ƒ if aparência=bravo then classe=inimigo cobre [20i,0a] o o + +
o o o
‰ Dado um novo exemplo com os seguinte atributos cabeça o o
quadrada, segura uma arma, alto, não voador e bravo, o o + +
todas as três regras disparam o o + o
‰ Somando os exemplos cobertos [36i,11a], a classe + +
o + + +
majoritária é então utilizada para prever a classe do novo o +
exemplo — inimigo + + +
o + + +
+ +
o +

29 X1 30

5
Exemplo Exemplo
Exemplo Aparência Temperatura Umidade Ventando Viajar R1
Exemplo Aparência Temperatura Umidade Ventando Viajar E1 sol 25 72 sim bom
E1 sol 25 72 sim bom E2 sol 28 91 sim ruim
E3 sol 22 70 não bom
E2 sol 28 91 sim ruim E4 sol 23 95 não ruim
E3 sol 22 70 não bom E5 sol 30 85 não ruim
E6 nublado 23 90 sim bom
E4 sol 23 95 não ruim E7 nublado 29 78 não bom cc
E5 sol 30 85 não ruim E8 nublado 19 65 sim ruim
E9 nublado 26 75 não bom cc
E6 nublado 23 90 sim bom E10 nublado 20 87 sim bom
E7 nublado 29 78 não bom E11 chuva 22 95 não bom
E12 chuva 19 70 sim ruim
E8 nublado 19 65 sim ruim E13 chuva 23 80 sim ruim
E9 nublado 26 75 não bom E14 chuva 25 81 não bom
E10 nublado 20 87 sim bom E15 chuva 21 80 não bom

E11 chuva 22 95 não bom


E12 chuva 19 70 sim ruim
E13 chuva 23 80 sim ruim
C := bom
E14 chuva 25 81 não bom
E15 chuva 21 80 não bom cplx := aparência = nublado and ventando = não [2b,0r]
R1 := if aparência = nublado and ventando = não then classe=bom

31 32

Exemplo Exemplo
Exemplo Aparência Temperatura Umidade Ventando Viajar R1 R2 Exemplo Aparência Temperatura Umidade Ventando Viajar R1 R2 R3
E1 sol 25 72 sim bom E1 sol 25 72 sim bom
E2 sol 28 91 sim ruim E2 sol 28 91 sim ruim
E3 sol 22 70 não bom E3 sol 22 70 não bom
E4 sol 23 95 não ruim E4 sol 23 95 não ruim
E5 sol 30 85 não ruim E5 sol 30 85 não ruim
E6 nublado 23 90 sim bom E6 nublado 23 90 sim bom cc
E7 nublado 29 78 não bom cc E7 nublado 29 78 não bom cc (cc)
E8 nublado 19 65 sim ruim E8 nublado 19 65 sim ruim ci
E9 nublado 26 75 não bom cc E9 nublado 26 75 não bom cc (cc)
E10 nublado 20 87 sim bom E10 nublado 20 87 sim bom cc
E11 chuva 22 95 não bom cc E11 chuva 22 95 não bom cc
E12 chuva 19 70 sim ruim E12 chuva 19 70 sim ruim
E13 chuva 23 80 sim ruim E13 chuva 23 80 sim ruim
E14 chuva 25 81 não bom cc E14 chuva 25 81 não bom cc
E15 chuva 21 80 não bom cc E15 chuva 21 80 não bom cc

C := bom C := bom
cplx := aparência = chuva and ventando = não [3b,0r] cplx := aparencia = nublado [2b,1r]
R2 := if aparência = chuva and ventando = não then classe=bom R3 := if aparencia=nublado then classe=bom

33 34

Exemplo Exemplo
Exemplo Aparência Temperatura Umidade Ventando Viajar R1 R2 R3 R4 Exemplo Aparência Temperatura Umidade Ventando Viajar R1 R2 R3 R4 R5
E1 sol 25 72 sim bom E1 sol 25 72 sim bom
E2 sol 28 91 sim ruim E2 sol 28 91 sim ruim
E3 sol 22 70 não bom ci E3 sol 22 70 não bom ci
E4 sol 23 95 não ruim cc E4 sol 23 95 não ruim cc
E5 sol 30 85 não ruim cc E5 sol 30 85 não ruim cc
E6 nublado 23 90 sim bom cc E6 nublado 23 90 sim bom cc
E7 nublado 29 78 não bom cc (cc) E7 nublado 29 78 não bom cc (cc)
E8 nublado 19 65 sim ruim ci E8 nublado 19 65 sim ruim ci
E9 nublado 26 75 não bom cc (cc) E9 nublado 26 75 não bom cc (cc)
E10 nublado 20 87 sim bom cc E10 nublado 20 87 sim bom cc
E11 chuva 22 95 não bom cc E11 chuva 22 95 não bom cc
E12 chuva 19 70 sim ruim E12 chuva 19 70 sim ruim cc
E13 chuva 23 80 sim ruim E13 chuva 23 80 sim ruim cc
E14 chuva 25 81 não bom cc E14 chuva 25 81 não bom cc
E15 chuva 21 80 não bom cc E15 chuva 21 80 não bom cc

C := ruim C := ruim
cplx := aparencia = sol and ventando = não [1b,2r] cplx := aparencia = chuva and ventando = sim [0b,2r]
R4 := if aparencia = sol and ventando = não then classe=ruim R5 := if aparencia = chuva and ventando = sim then classe=ruim

35 36

6
Exemplo Exemplo
Exemplo Aparência Temperatura Umidade Ventando Viajar R1 R2 R3 R4 R5 R6 Exemplo Aparência Temperatura Umidade Ventando Viajar R1 R2 R3 R4 R5 R6
E1 sol 25 72 sim bom ci E1 sol 25 72 sim bom ci
E2 sol 28 91 sim ruim cc E2 sol 28 91 sim ruim cc
E3 sol 22 70 não bom ci E3 sol 22 70 não bom ci
E4 sol 23 95 não ruim cc E4 sol 23 95 não ruim cc
E5 sol 30 85 não ruim cc E5 sol 30 85 não ruim cc
E6 nublado 23 90 sim bom cc E6 nublado 23 90 sim bom cc
E7 nublado 29 78 não bom cc (cc) E7 nublado 29 78 não bom cc (cc)
E8 nublado 19 65 sim ruim ci E8 nublado 19 65 sim ruim ci
E9 nublado 26 75 não bom cc (cc) E9 nublado 26 75 não bom cc (cc)
E10 nublado 20 87 sim bom cc E10 nublado 20 87 sim bom cc
E11 chuva 22 95 não bom cc E11 chuva 22 95 não bom cc
E12 chuva 19 70 sim ruim cc E12 chuva 19 70 sim ruim cc
E13 chuva 23 80 sim ruim cc E13 chuva 23 80 sim ruim cc
E14 chuva 25 81 não bom cc E14 chuva 25 81 não bom cc
E15 chuva 21 80 não bom cc E15 chuva 21 80 não bom cc

C := ruim Como nenhum exemplo de treinamento restou sem ser coberto pelo
cplx := aparencia = sol and ventando = sim [1b,1r] conjunto de regras, a regra default é dada pela classe majoritária
R6 := if aparencia = sol and ventando = sim then classe=ruim do conjunto de treinamento
R7 := classe=bom [9b,6r]
37 38

Critérios para Selecionar


Exemplo
Complexos/Regras
‰ Analisando os algoritmos de indução de regras é possível observar
Lista Final de Regras Não Ordenadas que o fator determinante no resultado final depende do critério de
seleção da melhor regra/complexo
R1 if aparência = nublado and ventando = não then classe=bom [2b,0r] ‰ Na realidade, existem inúmeros critérios que podem ser escolhidos,
cada um, proporcionando um conjunto final de regras bem
R2 if aparência = chuva and ventando = não then classe=bom [3b,0r] diversificado
‰ Um dos possíveis critérios de seleção da melhor regra consiste em
R3 if aparencia=nublado then classe=bom [4b,1r] escolher a regra com o melhor grau de adequação (rule fitness) para
o problema em questão
‰ Denotando-se o grau de adequação de uma regra L→R por rf(L→R),
R4 if aparencia = sol and ventando = não then classe=ruim [1b,2r]
em geral, o critério de seleção escolhe a melhor regra como sendo
aquela que possui o maior valor de rf
R5 if aparencia = chuva and ventando = sim then classe=ruim [0b,2r]
‰ Veremos dois critérios, dentre os possíveis, para estimar o grau de
adequação rf de uma regra
R6 if aparencia = sol and ventando = sim then classe=ruim [1b,1r] ƒ Confiabilidade Positiva (prel)
ƒ Precisão de Laplace (lacc)
R7 classe=bom [9b,6r] (regra default)

39 40

Critérios para Selecionar Critérios para Selecionar


Complexos/Regras Complexos/Regras
‰Uma possível definição para o grau de ‰Entretanto, a confiabilidade positiva possui
adequação rf utiliza a confiabilidade positiva uma propriedade indesejada
(prel), definida como a razão entre o número de
exemplos corretamente cobertos pela regra e o ‰Por exemplo, considere duas regras
número total de exemplos cobertos pela regra, ou ƒ L1→R1, com l1r1=100, l1¬r1=1,
seja, lr/l ƒ L2→R2, com l2r2=5, l2¬r2=0
def
lr ƒ Nesse caso:
rf ( L → R ) = prel ( L → R ) = p ( R | L) =
l ™prel(L1→R1) = l1r1/l1 = 100/101 = 0.99
‰A confiabilidade positiva assume valores no ™prel(L2→R2) = l2r2/l2 = 5/5= 1.00
intervalo 0 <= prel(L→R) <= 1 ƒ indicando que L2→R2 é uma regra melhor do
‰Por definição: 0/0 = 0 que L1→R1, o que não procede neste caso

41 42

7
Critérios para Selecionar Critérios para Selecionar
Complexos/Regras Complexos/Regras
‰Uma solução para o problema apresentado pela ‰Ainda considerando o exemplo anterior em
confiabilidade positiva consiste em substituí-la um problema com k = 2 classes, tem-se
pela precisão de Laplace (lacc): que
ƒ L1→R1, com l1r1=100, l1¬r1=1,
def
lr + 1.0 ƒ L2→R2, com l2r2=5, l2¬r2=0
rf ( L → R) = lacc( L → R) =
l+k ƒ Temos, portanto:
™lacc(L1→R1) = (l1r1+1)/(l1+2)= 101/103 = 0.98
‰onde k é o número de classes do conjunto de
™lacc(L2→R2) = (l2r2+1)/(l2+2)= 6/7= 0.86
exemplos
ƒ indicando que L1→R1 é uma regra melhor do
‰A precisão de Laplace assume valores no que L2→R2
intervalo 0 < lacc(L→R) < 1
43 44

Exemplo Induzindo R1 (classe=sim)


Aparência sim não Total Temperatura sim não Total Umidade sim não Total Ventando sim não Total Jogar
sol 2 3 5 quente 2 2 4 alta 3 4 7 falso 6 2 8 sim 9
‰ Encontrar Melhor Complexo/Regras Não-Ordenadas nublado
chuva
4
3
0
2
4 agradável
5 fria
4
3
2
1
6 normal
4
6 1 7 verdadeiro 3 3 6 não 5

usando a confiabilidade positiva como rf Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 14

Aparência sol 2/5 = 0.40


Exemplo Aparência Temperatura Umidade Ventando Jogar
E1 sol quente alta falso não nublado 4/4 = 1.00
E2 sol quente alta verdadeiro não chuva 3/5 = 0.60
E3 nublado quente alta falso sim
E4 chuva agradável alta falso sim Temperatura quente 2/4 = 0.50
E5 chuva fria normal falso sim
E6 chuva fria normal verdadeiro não agradável 4/6 = 0.67
E7 nublado fria normal verdadeiro sim
E8 sol agradável alta falso não fria 3/4 = 0.75
E9 sol fria normal falso sim Umidade alta 3/7 = 0.43
E10 chuva agradável normal falso sim
E11 sol agradável normal verdadeiro sim normal 6/7 = 0.86
E12 nublado agradável alta verdadeiro sim
E13 nublado quente normal falso sim Ventando falso 6/8 = 0.75
E14 chuva agradável alta verdadeiro não
verdadeiro 3/6 = 0.50
45 46

Induzindo R1 (classe=sim) Exemplos Cobertos pela Regra R1

‰complexo := Aparência=nublado [4s,0n] Exemplo Aparência Temperatura Umidade Ventando Jogar


E1 sol quente alta falso não
‰Como o complexo cria uma partição de E2
E3
sol
nublado
quente
quente
alta
alta
verdadeiro
falso
não
sim
exemplos de uma mesma classe, não é E4 chuva agradável alta falso sim
E5 chuva fria normal falso sim
necessário especializá-lo E6 chuva fria normal verdadeiro não
E7 nublado fria normal verdadeiro sim
‰R1 := if Aparência=nublado then E8 sol agradável alta falso não
E9 sol fria normal falso sim
classe=sim E10 chuva agradável normal falso sim
E11 sol agradável normal verdadeiro sim
‰Os exemplos cobertos corretamente pela E12 nublado agradável alta verdadeiro sim
E13 nublado quente normal falso sim
regra R1 são removidos do conjunto de E14 chuva agradável alta verdadeiro não
treinamento
47 48

8
Induzindo R2 (classe=sim)
Induzindo R2 (classe=sim)
Umidade=normal
Aparência sim não Total Temperatura sim não Total Umidade sim não Total Ventando sim não Total Jogar
sol 2 3 5 quente 0 2 2 alta 1 4 5 falso 4 2 6 sim 5
nublado
chuva
0
3
0
2
0 agradável
5 fria
3
2
2
1
5 normal
3
4 1 5 verdadeiro 1 3 4 não 5
‰complexo := Umidade=normal [4s,1n]
Total 5 5 10 Total 5 5 10 Total 5 5 10 Total 5 5 10 Total 10

‰Como o complexo cria partições contendo


Aparência sol 2/5 = 0.40
nublado 0/0 = 0.00 exemplos de mais de uma classe, ele deve
chuva 3/5 = 0.60 ser especializado
Temperatura quente 0/2 = 0.00
agradável 3/5 = 0.60
fria 2/3 = 0.67
Umidade alta 1/5 = 0.20
normal 4/5 = 0.80
Ventando falso 4/6 = 0.67
verdadeiro 1/4 = 0.25
49 50

Induzindo R2 (classe=sim) Induzindo R2 (classe=sim)


Umidade=normal Umidade=normal and Ventando=falso
Aparência sim não Total Temperatura sim não Total Umidade sim não Total Ventando sim não Total Jogar
sol
nublado
2
0
0
0
2 quente
0 agradável
0
2
0
0
0 alta
2 normal
0
4
0
1
0 falso
5 verdadeiro
3
1
0
1
3 sim
2 não
4
1 ‰complexo := Umidade=normal and
Ventando=falso [3s,0n]
chuva 2 1 3 fria 2 1 3
Total 4 1 5 Total 4 1 5 Total 4 1 5 Total 4 1 5 Total 5

Aparência sol 2/2 = 1.00 ‰Como o complexo cria uma partição de


nublado 0/0 = 0.00 exemplos de uma mesma classe, não é
chuva 2/3 = 0.67 necessário especializá-lo
Temperatura quente 0/0 = 0.00
agradável 2/2 = 1.00
‰R2 := if Umidade=normal and
fria 2/3 = 0.67 Ventando=falso then classe=sim
Ventando falso 3/3 = 1.00 ‰Os exemplos cobertos corretamente pela
verdadeiro 1/2 = 0.50 regra R2 são removidos do conjunto de
No caso de empate em um valor lr/l, escolher o atributo-valor com maior lr
treinamento
51 52

Exemplos Cobertos pelas Regras


Induzindo R3 (classe=sim)
R1 e R2
Aparência sim não Total Temperatura sim não Total Umidade sim não Total Ventando sim não Total Jogar
sol 1 3 4 quente 0 2 2 alta 1 4 5 falso 1 2 3 sim 2
Exemplo Aparência Temperatura Umidade Ventando Jogar nublado 0 0 0 agradável 2 2 4 normal 1 1 2 verdadeiro 1 3 4 não 5
chuva 1 2 3 fria 0 1 1
E1 sol quente alta falso não Total 2 5 7 Total 2 5 7 Total 2 5 7 Total 2 5 7 Total 7
E2 sol quente alta verdadeiro não
E3 nublado quente alta falso sim
E4 chuva agradável alta falso sim
Aparência sol 1/4 = 0.25
E5 chuva fria normal falso sim nublado 0/0 = 0.00
E6 chuva fria normal verdadeiro não
E7 nublado fria normal verdadeiro sim
chuva 1/3 = 0.33
E8 sol agradável alta falso não Temperatura quente 0/2 = 0.00
E9 sol fria normal falso sim
E10 chuva agradável normal falso sim
agradável 2/4 = 0.50
E11 sol agradável normal verdadeiro sim fria 0/1 = 0.00
E12 nublado agradável alta verdadeiro sim
E13 nublado quente normal falso sim Umidade alta 1/5 = 0.20
E14 chuva agradável alta verdadeiro não normal 1/2 = 0.50
Ventando falso 1/3 = 0.33
verdadeiro 1/4 = 0.25
53 54

9
Induzindo R3 (classe=sim) Induzindo R3 (classe=sim)
Temperatura=agradável Temperatura=agradável
Aparência sim não Total Temperatura sim não Total Umidade sim não Total Ventando sim não Total Jogar
sol 1 1 2 quente 0 0 0 alta 1 2 3 falso 1 1 2 sim 2
‰complexo := Temperatura=agradável nublado
chuva
0
1
0
1
0 agradável
2 fria
2
0
2
0
4 normal
0
1 0 1 verdadeiro 1 1 2 não 2

[2s,2n] Total 2 2 4 Total 2 2 4 Total 2 2 4 Total 2 2 4 Total 4

‰Como o complexo cria partições contendo Aparência sol 1/2 = 0.50


exemplos de mais de uma classe, ele deve nublado 0/0 = 0.00
ser especializado chuva 1/2 = 0.50
Umidade alta 1/3 = 0.33
normal 1/1 = 1.00
Ventando falso 1/2 = 0.50
verdadeiro 1/2 = 0.50

55 56

Induzindo R3 (classe=sim) Exemplos Cobertos pelas Regras


Temperatura=agradável and Umidade=normal R1, R2 e R3
‰complexo := Temperatura=agradável and Exemplo Aparência Temperatura Umidade Ventando Jogar
Umidade=normal [1s,0n] E1 sol quente alta falso não
E2 sol quente alta verdadeiro não
‰Como o complexo cria uma partição de exemplos E3 nublado quente alta falso sim
de uma mesma classe, não é necessário E4 chuva agradável alta falso sim
especializá-lo E5 chuva fria normal falso sim
E6 chuva fria normal verdadeiro não
‰R3 := if Temperatura=agradável and E7 nublado fria normal verdadeiro sim
Umidade=normal then classe=sim E8 sol agradável alta falso não
E9 sol fria normal falso sim
‰Os exemplos cobertos corretamente pela regra E10 chuva agradável normal falso sim
R3 são removidos do conjunto de treinamento E11 sol agradável normal verdadeiro sim
‰Note que o algoritmo pode decidir em não criar E12 nublado agradável alta verdadeiro sim
E13 nublado quente normal falso sim
regras cuja cobertura esteja abaixo de uma valor E14 chuva agradável alta verdadeiro não
limite mínimo para evitar overfitting

57 58

Induzindo R4 (classe=sim)
Induzindo R4 (classe=sim)
Aparência=chuva
Aparência sim não Total Temperatura sim não Total Umidade sim não Total Ventando sim não Total Jogar
sol 0 3 3 quente 0 2 2 alta 1 4 5 falso 1 2 3 sim 1
nublado
chuva
0
1
0
2
0 agradável
3 fria
1
0
2
1
3 normal
1
0 1 1 verdadeiro 0 3 3 não 5 ‰complexo := Aparência=chuva [1s,2n]
Total 1 5 6 Total 1 5 6 Total 1 5 6 Total 1 5 6 Total 6
‰Como o complexo cria partições contendo
Aparência sol 0/3 = 0.00
nublado 0/0 = 0.00
exemplos de mais de uma classe, ele deve
chuva 1/3 = 0.33 ser especializado
Temperatura quente 0/2 = 0.00
agradável 1/3 = 0.33
fria 0/1 = 0.00
Umidade alta 1/5 = 0.20
normal 0/1 = 0.00
Ventando falso 1/3 = 0.33
verdadeiro 0/3 = 0.00
59 60

10
Induzindo R4 (classe=sim) Induzindo R4 (classe=sim)
Aparência=chuva Aparência=chuva and Ventando=falso
Aparência sim não Total Temperatura sim não Total Umidade sim não Total Ventando sim não Total Jogar
sol
nublado
0
0
0
0
0 quente
0 agradável
0
1
0
1
0 alta
2 normal
1
0
1
1
2 falso
1 verdadeiro
1
0
0
2
1 sim
2 não
1
2 ‰complexo := Aparência=chuva and
chuva
Total
1
1
2
2
3 fria
3 Total
0
1
1
2
1
3 Total 1 2 3 Total 1 2 3 Total 3 Ventando=falso [1s,0n]
‰Como o complexo cria uma partição de exemplos
Temperatura quente 0/0 = 0.00
de uma mesma classe, não é necessário
especializá-lo
agradável 1/2 = 0.50
fria 0/1 = 0.00
‰R4 := if Aparência=chuva and Ventando=falso
then classe=sim
Umidade alta 1/2 = 0.50
normal 0/1 = 0.00
‰Os exemplos cobertos corretamente pela regra
R4 são removidos do conjunto de treinamento
Ventando falso 1/1 = 1.00
‰Como todos os exemplos da classe sim foram
verdadeiro 0/2 = 0.00
removidos, a indução de regras para classe=sim
termina

61 62

Exemplos Cobertos pelas Regras


Induzindo R5 (classe=não)
R1, R2, R3 e R4
Exemplo Aparência Temperatura Umidade Ventando Jogar ‰Como todos os exemplos da classe=sim
E1 sol quente alta falso não
E2 sol quente alta verdadeiro não foram cobertos pelas regras R1, R2, R3 e
E3
E4
nublado
chuva
quente
agradável
alta
alta
falso
falso
sim
sim R4, o processo agora continua para a
E5
E6
chuva
chuva
fria
fria
normal
normal
falso
verdadeiro
sim
não
classe=não
E7 nublado fria normal verdadeiro sim
E8 sol agradável alta falso não ‰Para isso, todos os exemplos são
E9
E10
sol
chuva
fria
agradável
normal
normal
falso
falso
sim
sim
considerados novamente (conjunto
E11
E12
sol
nublado
agradável
agradável
normal
alta
verdadeiro
verdadeiro
sim
sim
completo de treinamento)
E13 nublado quente normal falso sim
E14 chuva agradável alta verdadeiro não

63 64

Induzindo R5 (classe=não)
Induzindo R5 (classe=não)
Aparência=sol
Aparência sim não Total Temperatura sim não Total Umidade sim não Total Ventando sim não Total Jogar
sol 2 3 5 quente 2 2 4 alta 3 4 7 falso 6 2 8 sim 9
nublado
chuva
4
3
0
2
4 agradável
5 fria
4
3
2
1
6 normal
4
6 1 7 verdadeiro 3 3 6 não 5
‰complexo := Aparência=sol [2s,3n]
Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 9 5 14 Total 14

‰Como o complexo cria partições contendo


Aparência sol 3/5 = 0.60
nublado 0/4 = 0.00 exemplos de mais de uma classe, ele deve
chuva 2/5 = 0.40 ser especializado
Temperatura quente 2/4 = 0.50
agradável 2/6 = 0.33
fria 1/4 = 0.25
Umidade alta 4/7 = 0.57
normal 1/7 = 0.14
Ventando falso 2/8 = 0.25
verdadeiro 3/6 = 0.50
65 66

11
Induzindo R5 (classe=não) Induzindo R5 (classe=não)
Aparência=sol Aparência=sol and Umidade=alta
Aparência sim não Total Temperatura sim não Total Umidade sim não Total Ventando sim não Total Jogar
sol 2 3 5 quente 0 2 2 alta 0 3 3 falso 1 2 3 sim 2
nublado
chuva
0
0
0
0
0 agradável
0 fria
1
1
1
0
2 normal
1
2 0 2 verdadeiro 1 1 2 não 3 ‰complexo := Aparência=sol and
Total 2 3 5 Total 2 3 5 Total 2 3 5 Total 2 3 5 Total 5
Umidade=alta [0s,3n]
Temperatura quente 2/2 = 1.00 ‰R5 := if Aparência=sol and Umidade=alta
agradável 1/2 = 0.50 then classe=não
fria 0/1 = 0.00
Umidade alta 3/3 = 1.00
‰Os exemplos cobertos corretamente pela
normal 0/2 = 0.00 regra R5 são removidos do conjunto de
Ventando falso 2/3 = 0.67 treinamento
verdadeiro 1/2 = 0.50

67 68

Exemplos Cobertos pelas Regra R5 Induzindo R6 (classe=não)


Aparência sim não Total Temperatura sim não Total Umidade sim não Total Ventando sim não Total Jogar
sol 2 0 2 quente 2 0 2 alta 3 1 4 falso 6 0 6 sim 9
Exemplo Aparência Temperatura Umidade Ventando Jogar nublado 4 0 4 agradável 4 1 5 normal 6 1 7 verdadeiro 3 2 5 não 2
E1 sol quente alta falso não chuva 3 2 5 fria 3 1 4
Total 9 2 11 Total 9 2 11 Total 9 2 11 Total 9 2 11 Total 11
E2 sol quente alta verdadeiro não
E3 nublado quente alta falso sim Aparência sol 0/2 = 0.00
E4 chuva agradável alta falso sim
E5 chuva fria normal falso sim nublado 0/4 = 0.00
E6 chuva fria normal verdadeiro não chuva 2/5 = 0.40
E7 nublado fria normal verdadeiro sim
E8 sol agradável alta falso não Temperatura quente 0/2 = 0.00
E9 sol fria normal falso sim agradável 1/5 = 0.20
E10 chuva agradável normal falso sim
E11 sol agradável normal verdadeiro sim fria 1/4 = 0.25
E12 nublado agradável alta verdadeiro sim Umidade alta 1/4 = 0.25
E13 nublado quente normal falso sim
E14 chuva agradável alta verdadeiro não normal 1/7 = 0.14
Ventando falso 0/6 = 0.00
verdadeiro 2/5 = 0.40
69 70

Induzindo R6 (classe=não) Induzindo R6 (classe=não)


Aparência=chuva Aparência=chuva
Aparência sim não Total Temperatura sim não Total Umidade sim não Total Ventando sim não Total Jogar

‰complexo := Aparência=chuva [3s,2n]


sol 0 0 0 quente 0 0 0 alta 1 1 2 falso 3 0 3 sim 3
nublado 0 0 0 agradável 2 1 3 normal 2 1 3 verdadeiro 0 2 2 não 2
chuva 3 2 5 fria 1 1 2
Total 3 2 5 Total 3 2 5 Total 3 2 5 Total 3 2 5 Total 5
‰Como o complexo cria partições contendo
exemplos de mais de uma classe, ele deve Temperatura quente 0/0 = 0.00

ser especializado agradável 1/3 = 0.33


fria 1/2 = 0.50
Umidade alta 1/2 = 0.50
normal 1/3 = 0.33
Ventando falso 0/3 = 0.00
verdadeiro 2/2 = 1.00

71 72

12
Induzindo R6 (classe=não) Exemplos Cobertos pelas Regras
Aparência=chuva and Ventando=verdadeiro R5 e R6
‰complexo := Aparência=chuva and Exemplo Aparência Temperatura Umidade Ventando Jogar
Ventando=verdadeiro [0s,2n] E1 sol quente alta falso não
E2 sol quente alta verdadeiro não
‰R6 := if Aparência=chuva and E3 nublado quente alta falso sim
Ventando=verdadeiro then classe=não E4 chuva agradável alta falso sim
E5 chuva fria normal falso sim
‰Os exemplos cobertos corretamente pela regra E6 chuva fria normal verdadeiro não
E7 nublado fria normal verdadeiro sim
R6 são removidos do conjunto de treinamento E8 sol agradável alta falso não
‰Como não restam mais exemplos, o processo de E9 sol fria normal falso sim
E10 chuva agradável normal falso sim
indução termina E11 sol agradável normal verdadeiro sim
E12 nublado agradável alta verdadeiro sim
‰Como não há exemplos remanescentes não E13 nublado quente normal falso sim
classificados, a regra default pode ser dada pela E14 chuva agradável alta verdadeiro não
classe majoritária
73 74

Conjunto de Regras Induzidas Conjunto de Regras Induzidas


R1 if Aparência=nublado then classe=sim [4s,0n]
R2 if Umidade=normal and Ventando=falso then classe=sim [4s,0n]
Conjunto Final de Regras Não Ordenadas Induzidas R3 if Temperatura=agradável and Umidade=normal then classe=sim [2s,0n]
R4 if Aparência=chuva and Ventando=falso then classe=sim [3s,0n]
R1 if Aparência=nublado then classe=sim [4s,0n]
R5 if Aparência=sol and Umidade=alta then classe=não [0s,3n]
R2 if Umidade=normal and Ventando=falso then classe=sim [4s,0n] R6 if Aparência=chuva and Ventando=verdadeiro then classe=não [0s,2n]
Exemplo Aparência Temperatura Umidade Ventando Jogar R1 R2 R3 R4 R5 R6
R3 if Temperatura=agradável and Umidade=normal then classe=sim [2s,0n] E1 sol quente alta falso não cc
E2 sol quente alta verdadeiro não cc
E3 nublado quente alta falso sim cc
R4 if Aparência=chuva and Ventando=falso then classe=sim [3s,0n] E4 chuva agradável alta falso sim cc
E5 chuva fria normal falso sim cc cc
E6 chuva fria normal verdadeiro não cc
R5 if Aparência=sol and Umidade=alta then classe=não [0s,3n] E7 nublado fria normal verdadeiro sim cc
E8 sol agradável alta falso não cc
E9 sol fria normal falso sim cc
R6 if Aparência=chuva and Ventando=verdadeiro then classe=não [0s,2n] E10 chuva agradável normal falso sim cc cc cc
E11 sol agradável normal verdadeiro sim cc
E12 nublado agradável alta verdadeiro sim cc
R7 classe=sim [9s,5n] (regra default) E13 nublado quente normal falso sim cc cc
E14 chuva agradável alta verdadeiro não cc

75 76

Poda de Regras Poda de Regras


‰ A poda de regras sempre ocorre a partir das condições ‰Assuma que a seguinte regra foi induzida
mais à direita (últimas condições a serem induzidas) para ƒ R: if A and B and C then classe = sim
as condições mais à esquerda (primeiras condições a
serem induzidas), de forma iterativa ‰Assim, a regra R poderia ser podada, gerando a
‰ Por exemplo, assuma que a seguinte regra com 3 regra R’ :
condições foi induzida ƒ R’: if A and B then classe = sim
ƒ if A and B and C then classe = sim ‰Assuma também que:
‰ O processo de poda, inicialmente, tentaria eliminar a ƒ R: 10 exemplos de treinamento satisfazem a condição
última condição C, resultando na regra: “A and B and C”, sendo que 9 deles possuem
ƒ if A and B then classe = sim classe=sim
‰ Após a poda da condição C, o processo se repetiria, ™erro(R) = f = S/N = 1/10 = 0.10
tentando eliminar a condição B, resultando na regra: ƒ R’: 20 exemplos de treinamento satisfazem a condição
ƒ if A then classe = sim “A and B”, sendo que 17 deles possuem classe=sim
™erro(R’ ) = f =S/N = 3/20 = 0.15
77 78

13
Erro Pessimista Poda de Regras
‰ Usaremos o erro pessimista (perr), lembrando que f=S/N ‰As taxas de erro pessimistas para R e R’ com
e que utilizamos o limite superior do intervalo de
nível de confiança de 95% (z=2) são:
confiança dado pela equação
22 0.10 0.10 2 22
0.10 + +2 − +
z2 f f2 z2 perr( R ) = 2 × 10 10 10 4 × 102 = 0.4112
f+ ±z − +
2 N N N 4 N2 22
p= 1+
z2 10
1+
N 22 0.15 0.152 22
Nível de 0.15 + +2 − +
z
Confiança perr ( R' ) = 2 × 20 20 20 4 × 202 = 0.3653
‰ Ou seja, perr é definido como 22
3.00 99.73% 1+
20
z2 f f2 z2 2.00 95.45%
f+ +z − + 1.65 90.11% ‰Como perr(R’ ) < perr(R), a condição C deve ser
perr = 2N N N 4N 2
z2
1.29 80.29%
removida da regra R
1+ 1.00 68.27%
N
79 80

Resumo

‰Vantagens da Indução de Regras


ƒ Compreensibilidade
ƒ Requer pouca memória
‰Limitações
ƒ Processo de aprendizado mais lento do que
árvores
ƒ Geralmente há mais parâmetros para serem
ajustados

81

14