ripper fast effective rule induction william w. cohen apresentação felipe hoppe levin guilherme...
Post on 17-Apr-2015
111 Views
Preview:
TRANSCRIPT
RIPPERRIPPERFast Effective Rule InductionFast Effective Rule Induction
William W. CohenWilliam W. Cohen
apresentaçãoapresentação
Felipe Hoppe LevinFelipe Hoppe LevinGuilherme Dal BiancoGuilherme Dal Bianco
Regras de Classificação - Regras de Classificação - VantagensVantagens
Fáceis de entenderFáceis de entender Melhores que árvores de decisão em Melhores que árvores de decisão em
muitos problemasmuitos problemas Representáveis em lógica de Representáveis em lógica de
primeira ordemprimeira ordem Fácil de implementar em linguagens Fácil de implementar em linguagens
como PROLOGcomo PROLOG
Regras de Classificação - Regras de Classificação - DesvantagensDesvantagens
Pouco escaláveisPouco escaláveis Desempenho ruim em dados com Desempenho ruim em dados com
muito ruídomuito ruído Tipicamente em dados reaisTipicamente em dados reais
ObjetivoObjetivo
Desenvolver um algoritmo de Desenvolver um algoritmo de aprendizado de regras de aprendizado de regras de classificação que seja:classificação que seja: EscalávelEscalável Eficiente com dados ruidososEficiente com dados ruidosos Competitivo com algoritmos de árvores Competitivo com algoritmos de árvores
de decisão como C4.5 / C4.5rulesde decisão como C4.5 / C4.5rules
Solução Estudada: IREPSolução Estudada: IREP
““Poda” das regrasPoda” das regras Simplificação diminui a interferência de Simplificação diminui a interferência de
dados ruidososdados ruidosos Divisão e ConquistaDivisão e Conquista
Conjunto de Treinamento (2/3 dos dados)Conjunto de Treinamento (2/3 dos dados) Conjunto de Validação (1/3 dos dados)Conjunto de Validação (1/3 dos dados) Gerados aleatoriamenteGerados aleatoriamente
““Poda” cada regra criada Poda” cada regra criada iterativamenteiterativamente Até que a “poda” reduza a acuráciaAté que a “poda” reduza a acurácia
O algoritmo IREPO algoritmo IREPprocedure 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% thenreturn Ruleset
elseadd Rule to Rulesetremove examples covered by Rule from
(Pos,Neg)endif
endwhilereturn Ruleset
end
ExemploExemplo
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
Exemplo - IREPExemplo - IREP
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
Transações são separadas nos grupos POS e NEG
Exemplo - IREPExemplo - IREP
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
Exemplo - IREPExemplo - IREP
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
A cada iteração, são formados os grupos GrowPos, GrowNeg,
PrunePos e PruneNeg de forma aleatória.
Exemplo - IREPExemplo - IREP
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
GP
PP
GN
PN
O algoritmo IREPO algoritmo IREPprocedure 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% thenreturn Ruleset
elseadd Rule to Rulesetremove examples covered by Rule from
(Pos,Neg)endif
endwhilereturn Ruleset
end
GrowRuleGrowRule Cria uma nova regraCria uma nova regra Adiciona condições que maximizam o Adiciona condições que maximizam o
critério de ganho de informação de FOILcritério de ganho de informação de FOIL t · [ log2 ( p1 / ( p1+n1 )) - log2 (p0 / (p0 + n0)) ]
p: positivosp: positivos n: negativosn: negativos t: positivos cobertos pelas duas regrast: positivos cobertos pelas duas regras
Para de adicionar condições quando a Para de adicionar condições quando a regra não cobrir nenhuma transação regra não cobrir nenhuma transação negativanegativa
Exemplo - GrowRuleExemplo - GrowRule
## TempoTempo TemperatuTemperaturara UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
GP
GN
Regra: Ventoso = Falso
Exemplo - GrowRuleExemplo - GrowRule
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
GP
GN
Regra: Ventoso = Falso
t · [ log2 ( p1 / ( p1+n1 )) - log2 (p0 / (p0 + n0)) ]
Exemplo - GrowRuleExemplo - GrowRule
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
GP
GN
Regra: Ventoso = Falso
5· [ log2 ( p1 / ( p1+n1 )) - log2 (p0 / (p0 + n0)) ]
Exemplo - GrowRuleExemplo - GrowRule
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
GP
GN
Regra: Ventoso = Falso
5· [ log2 ( 5 / ( 5 + 1 )) - log2 (6 / (6 + 3)) ]
Exemplo - GrowRuleExemplo - GrowRule
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
GP
GN
Regra: Ventoso = Falso
5· [ -0,26 + 0,58 ] = 5 · 0,32 = 1,6 bits de ganho de informação
Exemplo - GrowRuleExemplo - GrowRule Ventoso = Falso Ventoso = Falso → 1,60 bits→ 1,60 bits Ventoso = Verdadeiro Ventoso = Verdadeiro → -1 bits→ -1 bits Umidade = Alta Umidade = Alta → -0,83 bits→ -0,83 bits Umidade = Normal Umidade = Normal → 1,05 bits→ 1,05 bits Temper. = Quente Temper. = Quente → -1 bits→ -1 bits Temper. = Amena Temper. = Amena → 1,17 bits→ 1,17 bits Temper.= Fria Temper.= Fria → 0,51 bits→ 0,51 bits Tempo = Nublado Tempo = Nublado → 1,17 bits→ 1,17 bits Tempo = Ensolarado Tempo = Ensolarado → -1 bits→ -1 bits Tempo = Chuvoso Tempo = Chuvoso → 0,51 bits→ 0,51 bits
Exemplo - GrowRuleExemplo - GrowRule Ventoso = Falso Ventoso = Falso → 1,60 bits → 1,60 bits →→ Maior ganhoMaior ganho Ventoso = Verdadeiro Ventoso = Verdadeiro → -1 bits→ -1 bits Umidade = Alta Umidade = Alta → -0,83 bits→ -0,83 bits Umidade = Normal Umidade = Normal → 1,05 bits→ 1,05 bits Temper. = Quente Temper. = Quente → -1 bits→ -1 bits Temper. = Amena Temper. = Amena → 1,17 bits→ 1,17 bits Temper.= Fria Temper.= Fria → 0,51 bits→ 0,51 bits Tempo = Nublado Tempo = Nublado → 1,17 bits→ 1,17 bits Tempo = Ensolarado Tempo = Ensolarado → -1 bits→ -1 bits Tempo = Chuvoso Tempo = Chuvoso → 0,51 bits→ 0,51 bits
Exemplo - GrowRuleExemplo - GrowRule
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
3 Nublado Quente Alta Falso Sim
4 Chuvoso Amena Alta Falso Sim
5 Chuvoso Fria Normal Falso Sim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
9 Ensolarado Fria Normal Falso Sim
10 Chuvoso Amena Normal Falso Sim
1 Ensolarado Quente Alta Falso Não
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
GP
GN
Regra: Ventoso = Falso
Cobre 1 regra negativa → Continua adicionando condições
Exemplo - GrowRuleExemplo - GrowRule Ventoso = Falso and Umidade = Alta Ventoso = Falso and Umidade = Alta → -0,64 bits→ -0,64 bits Ventoso = Falso and Umidade = Normal Ventoso = Falso and Umidade = Normal → 0,79 → 0,79
bitsbits Ventoso = Falso and Temper. = Quente Ventoso = Falso and Temper. = Quente → -0,74 → -0,74
bitsbits Ventoso = Falso and Temper. = Amena Ventoso = Falso and Temper. = Amena → 0,53 bits→ 0,53 bits Ventoso = Falso and Temper.= Fria Ventoso = Falso and Temper.= Fria → 0,53 bits→ 0,53 bits Ventoso = Falso and Tempo = Nublado Ventoso = Falso and Tempo = Nublado → 0,26 bits→ 0,26 bits Ventoso = Falso and Tempo = Ensolar. Ventoso = Falso and Tempo = Ensolar. → -0,74 bits→ -0,74 bits Ventoso = Falso and Tempo = Chuvoso Ventoso = Falso and Tempo = Chuvoso → 0,79 bits→ 0,79 bits
Exemplo - GrowRuleExemplo - GrowRule Ventoso = Falso and Umidade = Alta Ventoso = Falso and Umidade = Alta → -0,64 bits→ -0,64 bits Ventoso = Falso and Umidade = Normal Ventoso = Falso and Umidade = Normal → 0,79 bits→ 0,79 bits Ventoso = Falso and Temper. = Quente Ventoso = Falso and Temper. = Quente → -0,74 bits→ -0,74 bits Ventoso = Falso and Temper. = Amena Ventoso = Falso and Temper. = Amena → 0,53 bits→ 0,53 bits Ventoso = Falso and Temper.= Fria Ventoso = Falso and Temper.= Fria → 0,53 bits→ 0,53 bits Ventoso = Falso and Tempo = Nublado Ventoso = Falso and Tempo = Nublado → 0,26 bits→ 0,26 bits Ventoso = Falso and Tempo = Ensolar. Ventoso = Falso and Tempo = Ensolar. → -0,74 bits→ -0,74 bits Ventoso = Falso and Tempo = Chuvoso Ventoso = Falso and Tempo = Chuvoso → 0,79 bits→ 0,79 bits
Ventoso = Falso and Umidade = NormalVentoso = Falso and Umidade = Normalouou
Ventoso = Falso and Tempo = ChuvosoVentoso = Falso and Tempo = Chuvoso
Exemplo - GrowRuleExemplo - GrowRule
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
3 Nublado Quente Alta Falso Sim
4 Chuvoso Amena Alta Falso Sim
5 Chuvoso Fria Normal Falso Sim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
9 Ensolarado Fria Normal Falso Sim
10 Chuvoso Amena Normal Falso Sim
1 Ensolarado Quente Alta Falso Não
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
GP
GN
Regra: Ventoso = Falso and Umidade = Normal
Não cobre regras negativas → Para de adicionar condições
O algoritmo IREPO algoritmo IREPprocedure 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% thenreturn Ruleset
elseadd Rule to Rulesetremove examples covered by Rule from
(Pos,Neg)endif
endwhilereturn Ruleset
end
PruneRulePruneRule ““Poda” a regra criadaPoda” a regra criada Exclui seqüência final de condições que Exclui seqüência final de condições que
maximizam a função:maximizam a função: v = (p + (N – n)) / (P + N)v = (p + (N – n)) / (P + N) p: positivos em PrunePos cobertos pela regrap: positivos em PrunePos cobertos pela regra n: negativos em PruneNeg cobertos pela regran: negativos em PruneNeg cobertos pela regra P: positivos em PrunePosP: positivos em PrunePos N: negativos em PruneNegN: negativos em PruneNeg
Deixa de excluir quando o valor de v deixa Deixa de excluir quando o valor de v deixa de ser melhoradode ser melhorado
Exemplo - PruneRuleExemplo - PruneRule
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
PP
PN
Regra: Ventoso = Falso and Umidade = Normal
Exemplo - PruneRuleExemplo - PruneRule
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
PP
PN
Regra: Ventoso = Falso and Umidade = Normalv = (p + (N – n)) / (P + N)v = (p + (N – n)) / (P + N)
Exemplo - PruneRuleExemplo - PruneRule
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
PP
PN
Regra: Ventoso = Falso and Umidade = Normalv = (p + (N – n)) / (P + N)v = (p + (N – n)) / (P + N)v = (1 + (2 – 0)) / (3 + 2)v = (1 + (2 – 0)) / (3 + 2)v = 3 / 5 = 0,6v = 3 / 5 = 0,6
Exemplo - PruneRuleExemplo - PruneRule
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
PP
PN
Regra: Ventoso = Falsov = (p + (N – n)) / (P + N)v = (p + (N – n)) / (P + N)v = (1 + (2 – 1)) / (3 + 2)v = (1 + (2 – 1)) / (3 + 2)v = 2 / 5 = 0,4v = 2 / 5 = 0,4
Exemplo - PruneRuleExemplo - PruneRule
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
PP
PN
Regra: Ventoso = Falsov = (p + (N – n)) / (P + N)v = (p + (N – n)) / (P + N)v = (1 + (2 – 1) )/ (3 + 2)v = (1 + (2 – 1) )/ (3 + 2)v = 2 / 5 = 0,4v = 2 / 5 = 0,4
Como o valor de v para a regra original é Como o valor de v para a regra original é maior (0,6), então não faz a “poda”.maior (0,6), então não faz a “poda”.
O algoritmo IREPO algoritmo IREPprocedure 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% thenreturn Ruleset
elseadd Rule to Rulesetremove examples covered by Rule from
(Pos,Neg)endif
endwhilereturn Ruleset
end
Exemplo – Condição de Exemplo – Condição de ParadaParada
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
PP
PN
Regra: Ventoso = Falso and Umidade = Normal
Exemplo – Condição de Exemplo – Condição de ParadaParada
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
PP
PN
Regra: Ventoso = Falso and Umidade = Normal
Positivos: 1Negativos: 0
Taxa de Erro = 0 → Continua o algoritmo
O algoritmo IREPO algoritmo IREPprocedure 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% thenreturn Ruleset
elseadd Rule to Rulesetremove examples covered by Rule from
(Pos,Neg)endif
endwhilereturn Ruleset
end
Exemplo – Removendo Exemplo – Removendo TransaçõesTransações
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
Exemplo – Removendo Exemplo – Removendo TransaçõesTransações
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
Exemplo – Removendo Exemplo – Removendo TransaçõesTransações
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
O algoritmo IREPO algoritmo IREPprocedure 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% thenreturn Ruleset
elseadd Rule to Rulesetremove examples covered by Rule from
(Pos,Neg)endif
endwhilereturn Ruleset
end
Resultado PossívelResultado Possível
Ventoso = Falso and Umidade = Normal
Tempo = Nublado
Resultado PossívelResultado Possível
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
Resultado PossívelResultado Possível
## TempoTempo TemperatTemperaturaura UmidadeUmidade VentosoVentoso JogaJoga
33 NubladoNublado QuenteQuente AltaAlta FalsoFalso SimSim
44 ChuvosoChuvoso AmenaAmena AltaAlta FalsoFalso SimSim
55 ChuvosoChuvoso FriaFria NormalNormal FalsoFalso SimSim
77 NubladoNublado FriaFria NormalNormal VerdadeirVerdadeiroo
SimSim
99 EnsolaradoEnsolarado FriaFria NormalNormal FalsoFalso SimSim
1010 ChuvosoChuvoso AmenaAmena NormalNormal FalsoFalso SimSim
1111 EnsolaradoEnsolarado AmenaAmena NormalNormal VerdadeirVerdadeiroo
SimSim
1212 NubladoNublado AmenaAmena AltaAlta VerdadeirVerdadeiroo
SimSim
1313 NubladoNublado QuenteQuente NormalNormal FalsoFalso SimSim
11 EnsolaradoEnsolarado QuenteQuente AltaAlta FalsoFalso NãoNão
22 EnsolaradoEnsolarado QuenteQuente AltaAlta VerdadeirVerdadeiroo
NãoNão
66 ChuvosoChuvoso FriaFria NormalNormal VerdadeirVerdadeiroo
NãoNão
88 EnsolaradoEnsolarado AmenaAmena AltaAlta FalsoFalso NãoNão
1414 ChuvosoChuvoso AmenaAmena AltaAlta VerdadeirVerdadeiroo
NãoNão
Verdade\Verdade\Class.Class. SimSim NãoNão
SimSim 77 22
NãoNão 00 55
Resultados obtidos pelo Resultados obtidos pelo IREPIREP
Apresentar os gráficos aquiApresentar os gráficos aqui
IREP: O(m log² m), m = Número de exemplos.
Problemas BProblemas Benchmarks enchmarks utilizados nos exemplosutilizados nos exemplos
Resultados obtidos pelo Resultados obtidos pelo IREPIREP
Ponto positivoPonto positivo
Mais rápido que C4.5Mais rápido que C4.5
Ponto negativoPonto negativo
Capacidade preditiva do IREP pior que Capacidade preditiva do IREP pior que
C4.5.C4.5.
Taxa wTaxa won-lost-tie: 11-23-3on-lost-tie: 11-23-3
Aprimoramentos ao IREPAprimoramentos ao IREP
Três modificaçesTrês modificaçes::
Métrica alternativa para fase de poda;Métrica alternativa para fase de poda;
Nova heurística para determinar quando Nova heurística para determinar quando
parar de adicionar regras ao conjunto;parar de adicionar regras ao conjunto;
Pós-poda para otimizar o conjunto de Pós-poda para otimizar o conjunto de
regras;regras;
Métrica de PodaMétrica de Poda
Um dos problemas de convergência do IREP Um dos problemas de convergência do IREP é sua métrica para determinar se as é sua métrica para determinar se as regras irão ser podadas. Exemplo:regras irão ser podadas. Exemplo:
1) P: 40001) P: 4000 N: 2000 N: 2000
Regra 1Regra 1 p: 2000 p: 2000 Regra 2 p:1000 Regra 2 p:1000 n:1000 n:1000 n:1 n:1
v = (p + (N – n)) / (P + N)v = (p + (N – n)) / (P + N) v=(2000 +(2000-1000))/(4000+2000)v=(2000 +(2000-1000))/(4000+2000) v=(1000+(2000-v=(1000+(2000-
1))/(4000+2000)1))/(4000+2000)v=0.5v=0.5 v=0.4999v=0.4999
Métrica de PodaMétrica de Poda
A métrica prioriza uma regra com A métrica prioriza uma regra com maior número de positivos porém com maior número de positivos porém com uma maior taxa de erro. Como uma maior taxa de erro. Como alternativa, foi proposta uma nova alternativa, foi proposta uma nova métrica:métrica: V=(p-n)/(p+n)V=(p-n)/(p+n)
Amostra 1:Amostra 1: Amostra 2:Amostra 2:
V=(2000-1000)/V=(2000-1000)/ V=(1000-1)/(1000+1)V=(1000-1)/(1000+1)
(2000+1000)=0.333(2000+1000)=0.333 V=0.99V=0.99
Condição de ParadaCondição de Parada
Dependendo dos dados, o IREP pára Dependendo dos dados, o IREP pára cedo demais.cedo demais.
Solução:Solução: Após uma regra ser adicionada, o tamanho Após uma regra ser adicionada, o tamanho
total do do conjuto é computado. total do do conjuto é computado. Caso o tamanho deste novo conjunto de Caso o tamanho deste novo conjunto de
regras seja maior regras seja maior d bits d bits do que a maior do que a maior regra obtida, ou quando não existem mais regra obtida, ou quando não existem mais casos positivos, o algoritmo pára de casos positivos, o algoritmo pára de adicionar regras.adicionar regras.
Condição de ParadaCondição de Parada
Fórmula para o cálculo de tamanho Fórmula para o cálculo de tamanho em bits de uma regraem bits de uma regra 0,5 ∙ (|k| + k log0,5 ∙ (|k| + k log22 n/k + (n-k)log n/k + (n-k)log22 1/(1- 1/(1-
k/n) )k/n) ) k: número de condições da regrak: número de condições da regra n: número de condições possíveisn: número de condições possíveis |k|: número de bits necessários para |k|: número de bits necessários para
representar o inteiro krepresentar o inteiro k
Exemplo - Condição de Exemplo - Condição de ParadaParada
Regra: Ventoso = Falso and Umidade = Normal
k = 2 n = 4 |k| = 2k = 2 n = 4 |k| = 2
0,5 ∙ (|k| + k log0,5 ∙ (|k| + k log22 n/k + (n-k)log n/k + (n-k)log22 1/(1-k/n) ) 1/(1-k/n) )
0,5 ∙ ( 2 + 2 log0,5 ∙ ( 2 + 2 log22 4/2 + (4-2)log 4/2 + (4-2)log22 1/(1-2/4) ) 1/(1-2/4) )
0,5 ∙ ( 2 + 2 log0,5 ∙ ( 2 + 2 log22 2 + 2log 2 + 2log22 2 ) 2 )
0,5 ∙ ( 2 + 2 + 2 ) = 0,5 ∙ 6 = 3 bits0,5 ∙ ( 2 + 2 + 2 ) = 0,5 ∙ 6 = 3 bits
IREP *IREP *
IREP* é o IREP, adicionado da nova IREP* é o IREP, adicionado da nova condição de parada e nova métrica condição de parada e nova métrica de podade poda
28-8-1 em relação ao IREP28-8-1 em relação ao IREP 16-21-0 em relação ao C4.5rules16-21-0 em relação ao C4.5rules
Taxa de erro 1.06 (IREP 1.13)Taxa de erro 1.06 (IREP 1.13)
Otimização das RegrasOtimização das Regras
Pós poda das regras produzidas pelo Pós poda das regras produzidas pelo IREP*IREP* Regras otimizadas uma a umaRegras otimizadas uma a uma Para cada regra R, 2 alternativas são Para cada regra R, 2 alternativas são
construídasconstruídas RRii‘‘ – regra de substituição – regra de substituição
RRii‘‘‘‘ – regra de revisão – regra de revisão
Das três regras, é escolhida aquela com Das três regras, é escolhida aquela com menor tamanho em bits → Princípio de menor tamanho em bits → Princípio de quanto mais simples melhorquanto mais simples melhor
RIPPERRIPPER
1.1. IREP* é usado para obter um conjunto de IREP* é usado para obter um conjunto de regras;regras;
2.2. Regras são otimizadas Regras são otimizadas
3.3. IREP* é utilizado para acrescentar regras IREP* é utilizado para acrescentar regras para cobrir exemplos positivos restantes.para cobrir exemplos positivos restantes.
RRepeated epeated IIncremental ncremental PPruning to runing to PProduce roduce EError rror RReductioneduction
RIPPERk → Aplica os passos 2 e 3 k RIPPERk → Aplica os passos 2 e 3 k vezes.vezes.
Poder Preditivo do Poder Preditivo do RIPPERRIPPER
28-7-2 contra IREP*28-7-2 contra IREP*
Taxa de erroTaxa de erro
Eficiência do RIPPEREficiência do RIPPER
RIPPER2
RIPPER2
Razões da Eficiência do Razões da Eficiência do RIPPERRIPPER
Um modelo inicial é criado com IREP* e Um modelo inicial é criado com IREP* e então simplificado iterativamenteentão simplificado iterativamente Eficiência na geração do modelo inicialEficiência na geração do modelo inicial Simplificação em tempo linearSimplificação em tempo linear
C4.5 tem uma simplificação com um C4.5 tem uma simplificação com um grande custo computacional para grandes grande custo computacional para grandes modelos inicias;modelos inicias;
RIPPER é muito mais eficiente em dados RIPPER é muito mais eficiente em dados ruidosos e com grande volumeruidosos e com grande volume
ConclusãoConclusão
RIPPERk é mais eficiente e tem RIPPERk é mais eficiente e tem performance competitiva com C4.5 performance competitiva com C4.5 (melhor em alguns casos)(melhor em alguns casos)
Ótimo razão custo/benefício Ótimo razão custo/benefício
(tempo de execução/capacidade (tempo de execução/capacidade preditiva)preditiva)
ReferênciasReferências
Fast Effective Rule InductionFast Effective Rule Induction
William W. Cohen [1995]William W. Cohen [1995] Incremental Reduced Error PruningIncremental Reduced Error Pruning
J. Fürnkranz & G. Widmer [1994]J. Fürnkranz & G. Widmer [1994] Efficient Pruning MethodsEfficient Pruning Methods
William W. Cohen [1993]William W. Cohen [1993]
PERGUNTAS?PERGUNTAS?
top related