Tema 9: Inducción de Reglas Abdelmalik Moujahid, Iñaki Inza, Pedro Larrañaga Departamento de Ciencias de la Computación e Inteligencia Artificial Universidad del Paı́s Vasco http://www.sc.ehu.es/isg/ Tema 9: Inducción de Reglas– p. 1/15 Contenido • Introducción • El algoritmo IREP (Incremental Reduced Error Pruning) (Fürnkranz y Widner, 1994) • El algoritmo RIPPER (Repeated Incremental Pruning Produce Error Reduction) (Cohen, 1995) Tema 9: Inducción de Reglas– p. 2/15 Introducción Los sistemas de apendizaje de reglas representan un paradigma: • Transparente • Fácilmente comprensible y aplicable • Mas genérico que los árboles de clasificación Tema 9: Inducción de Reglas– p. 3/15 Introducción Muchas de las técnicas utilizadas en los sistemas de aprendizaje de reglas fueron adaptadas del aprendizaje de árboles de decisión, el cual se basa en: • la estrategia de aprendizaje conocida como overfit-and-simplify, • la técnica de poda (o pruning) conocida como REP (reduced error pruning). REP para sistemas de aprendizaje de reglas (Pagallo and Haussler, 1990) Tema 9: Inducción de Reglas– p. 4/15 Introducción Partición del fichero de casos en el algoritmo REP Tema 9: Inducción de Reglas– p. 5/15 IREP (Incremental Reduced Error Pruning) El algoritmo de aprendizaje de reglas IREP integra: • el algoritmo REP (reduced error pruning) • el algoritmo de aprendizaje de reglas separate-and-conquer Tema 9: Inducción de Reglas– p. 6/15 IREP (Incremental Reduced Error Pruning) IREP : Reglas en forma normal disyuntiva • Una regla (rule)es una conjunción de literales Rj ≡ X7 = x17 & X14 = x214 & X24 = x124 Rj constituida por la intersección de los 3 literales siguientes: X7 = • x17 , X14 = x214 y X24 = x124 Un conjunto de reglas (rule set) está formado por una disyunción de reglas R1 or R2 or . . . or Rk • Una regla parcial (partial rule), Rjpar de una determinada regla Rj es la intersección de un subconjunto de los literales a partir de los cuales se forma Rj Rjpar ≡ X7 = x17 & X14 = x214 Tema 9: Inducción de Reglas– p. 7/15 IREP (Incremental Reduced Error Pruning) D conjunto de casos o patrones etiquetados se particiona en dos subconjuntos: • Dpos conjunto de patrones positivos; Dneg conjunto de patrones negativos • Cada uno de los subconjuntos anteriores se subdivide en otros dos subconjuntos: • Dgrow−pos y Dprune−pos subconjuntos relacionados respectivamente con la construcción y el podado de las reglas • Análogamente Dgrow−neg y Dprune−neg • D = Dpos ∪ Dneg = (Dgrow−pos ∪ Dprune−pos ) ∪ (Dgrow−neg ∪ Dprune−neg ) • Dpos ∩ Dneg = Dgrow−pos ∩ Dprune−pos = Dgrow−neg ∩ Dprune−neg = ∅ Tema 9: Inducción de Reglas– p. 8/15 IREP (Incremental Reduced Error Pruning) Partición del fichero de casos etiquetados de partida D Tema 9: Inducción de Reglas– p. 9/15 IREP (Incremental Reduced Error Pruning) • IREP induce –basándose en Dgrow−pos y Dgrow−neg – el conjunto de reglas (rule set) de manera voraz, escogiéndose en cada paso añadir el mejor literal a la regla parcial partial rule en construcción • GrowRule añade de forma repetida a la regla parcial (partial rule) Rpar el literal que da origen a la regla parcial R′par con mayor valor del criterio: v Rpar , R′par , Dgrow−pos , Dgrow−neg = cu −log2 pos pos + neg + log2 pos′ pos′ + neg ′ done cu es el porcentaje de ejemplos en Dgrow−pos que siendo cubiertos por Rpar están también cubiertos por R′par (regla parcial más específica que Rpar ). pos (respectivamente neg) es el número de ejemplos en Dgrow−pos (Dgrow−neg ) cubiertos por la regla Rpar . Y pos′ (respectivamente neg ′ ) es el número de ejemplos en Dgrow−pos (Dgrow−neg ) cubiertos por la regla R′par . Tema 9: Inducción de Reglas– p. 10/15 IREP (Incremental Reduced Error Pruning) Supongamos que la regla parcial, Rpar , cubre 90 ejemplos de los cuales 70 son positivos y 20 negativos • Rm,par especialización mala de Rpar , con la cual se van a cubrir 50 ejemplos positivos y 20 ejemplos negativos • Rb,par especialización buena de Rpar , la cual cubre 70 ejemplos positivos y 10 ejemplos negativos • v (Rpar , Rm,par , Dgrow−pos , Dgrow−neg ) 70 50 50 = 70 −log2 90 + log2 70 • v Rpar , Rb,par , Dgrow−pos , Dgrow−neg 70 70 70 = 70 −log2 90 + log2 80 • El valor del criterio para Rb,par es superior al correspondiente al Rm,par Tema 9: Inducción de Reglas– p. 11/15 IREP (Incremental Reduced Error Pruning) • El proceso de crecimiento, GrowRule, finaliza cuando no se encuentra ningún literal cuya inclusión en la regla parcial permita que la regla especializada mejore el criterio v (Rpar , R′par , Dgrow−pos , Dgrow−neg ) ) • • Entonces comienza con el proceso de podado, PruneRule, de dicha regla • PruneRule plantea el borrado, de manera secuencial, y empezando por el último literal introducido a la regla en su fase de crecimiento Se van a ir borrando (podando) literales mientras se mejore el criterio v (Rule, Dprune−pos , Dprune−neg ), siendo v (Rule, Dprune−pos , Dprune−neg ) = pos + (N eg − neg) P os + N eg donde pos (respectivamente neg) es el número de ejemplos en Dprune−pos (Dprune−neg ) cubiertos por la regla, y P os (respectivamente N eg) es el número de ejemplos en Dprune−pos (Dprune−neg ). Tema 9: Inducción de Reglas– p. 12/15 IREP (Incremental Reduced Error Pruning) Procedure IREP Begin Ruleset= ∅ whileDP os = DGrow−P os ∪ DP rune−P os 6= ∅ do /* Construir y podar una nueva regla */ Dividir D en (DGrow−P os ∪ DGrow−N eg ) ∪ (DP rune−P os ∪ DP rune−N eg ) Rule:=GrowRule(DGrow−P os ∪ DGrow−N eg ) Rule:=PruneRule(Rule, DP rune−P os , DP rune−N eg ) if la tasa de error de Rule en (DP rune−P os ∪ DP rune−N eg ) > 50 % then return RuleSet else Añadir Rule a RuleSet Borrar ejemplos cubiertos por Rule de D endif end while return RuleSet End Tema 9: Inducción de Reglas– p. 13/15 RIP P ER (Repeated Incremental Pruning Produce Error Reduction) RIP P ER (Cohen (1995)) mejora de IREP en tres aspectos: 1. Métrica alternativa para la fase de poda • R1 cubre 2000 ejemplos positivos en Dprune−pos y 1000 ejemplos negativos en Dprune−neg . R2 cubre 1000 ejemplos positivos en Dprune−pos y 1 ejemplo negativo en Dprune−neg • IREP va a preferir R1 a R2 , ya que 2000 + (N eg − 1000) 1000 + (N eg − 1) > P os + N eg P os + N eg y sin embargo es intuitivo que la R2 es preferible a R1 • RIP P ER basa su poda en el criterio siguiente: v (Rule, Dprune−pos , Dprune−neg ) = pos − neg pos + neg 2000 − 1000 1000 − 1 < 3000 1001 y R2 se seleccionaría frente a R1 Tema 9: Inducción de Reglas– p. 14/15 RIP P ER (Repeated Incremental Pruning Produce Error Reduction) 2. Incorporación de un heurístico para determinar cuándo parar el proceso de añadir reglas 3. RIP P ER –posteriormente a todo el proceso visto para IREP – efectúa una búsqueda local para optimizar el conjunto de reglas (rule set) de dos maneras diferentes: • Reemplazando una regla Ri que forma parte del rule set { R1 , . . . , Ri−1 , Ri , Ri+1 , . . . , Rk } por Ri′ , siempre y cuando el rule set correpondiente tenga un menor error en la clasificación en Dprune−pos ∪ Dprune−neg • Revisar una determinada regla Ri añadiendo literales para que así se consiga un menor error en Dprune−pos ∪ Dprune−neg Tema 9: Inducción de Reglas– p. 15/15