Datamining y aprendizaje automatizado Departamento de Cs. e Ing. De la Computación, UNS 2do Cuat. 2009 Datamining y Aprendizaje Automatizado 05 – Aprendizaje de Conjuntos de Reglas Prof. Carlos I. Chesñevar Inducción de Reglas & Reglas de Asociación Representación de teorías con reglas de decisión Inducción de reglas predictivas • Acercamientos de cubrimiento secuencial (sequential covering) Prof. Carlos Iván Chesñevar Departamento de Cs. e Ing. de la Computación Universidad Nacional del Sur Email: cic@cs.uns.edu.ar / Http:\\cs.uns.edu.ar\~cic Representación de Teorías con Reglas de Decisión Representaciones previas: • árboles de decisión • representaciones numéricas Una representación popular para definición de conceptos: reglas ifif-then-else then else • IF <instancia cumple condiciones> THEN <instancia pertenece a Clase> ¿Cómo pueden aprenderse estas reglas? • Arboles de Decisión => pasados a reglas. • Usar algoritmos genéticos • Métodos específicos de aprendizaje de reglas. “Simplicity first”. Algoritmo OneRule Algoritmos simples a veces funcionan muy bien... Hay muchos tipos de algoritmos con estructura sencilla, ej.: • Hay un atributo que sirve de referencia para la clasificación • Hay una combinación linear con pesos que resuelve el problema • Hay prototipos (instance-based learning) para usar de referencia El éxito depende en muchos casos del dominio… Reglas de asociación Cap. 10 Mitchell (parcialmente) Cap. 4 Witten (parcialmente) Reglas: representación potente Reglas proposicionales: • No poseen variables, son más sencillas de computar. Ej: IF Weather=Sunny THEN PlayTennis=yes. Reglas de primer orden: • Mayor expresividad, pero más complejas de obtener automáticamente IF parent(x,y) THEN ancestor(x,y) IF parent(x,z), ancestor(z,y) THEN ancestor(x,y) • Reglas como estas pueden procesarse automáticamente en lenguajes como Prolog. Inferencia de reglas via OneRule OneRule (1R): aprende un árbol de decisión de un nivel • (ie., reglas que miran solamente un atributo) Version básica: • Una rama por cada valor • Cada rama asigna la clase más frecuente • Tasa de error: proporción de instancias que no pertenecen a la clase mayoritaría de la rama correspondiente • Idea: elegir el atributo con menor tasa de error (se asumen atributos nominales) 1 Datamining y aprendizaje automatizado Departamento de Cs. e Ing. De la Computación, UNS 2do Cuat. 2009 Prof. Carlos I. Chesñevar Algoritmo OneRule (1R) Para cada atributo A • Para cada valor del atributo, hacer una regla como sigue: • Contar cuán frecuentemente aparece cada clase • Encontrar la clase más frecuente • Hacer que la regla asigne esa clase a este atributo • Calcular la tasa de error de las reglas Elegir las reglas que tengan menor tasa de error Obs: si hay valores faltantes (“missing”), se los trata como un nuevo valor. *=empate ¿Y ...con atributos numéricos? Idea: discretizar atributos • Dividir el rango de cada atributo en intervalos • Ordenar instancias según valor, y poner “breakpoints” donde hay cambio de clase • Esto minimiza el error total 64 65 68 69 70 71 72 72 75 75 80 81 83 85 y n y y 64.5 66.5 y n n 70.5 y y y n y y 77.5 80.5 72 n 84 Problema con 1R Problema con 1R El procedimiento tiende a formar un gran número de categorías. El acercamiento prefiere aquellos atributos que particionen al dataset en muchas clases. Pero imaginemos un atributo como NroDNI, asociado unívocamente a cada instancia instancia. Este atributo dará un error cero con los datos de entrenamiento, pues cada partición contiene justamente una instancia!! …pero el poder predictivo será muy pobre para nuevos ejemplos (fenómeno de “overfitting”) Problema con 1R Para 1R, el overfitting aparece cuando un atributo tiene un gran número de valores posibles. Solución: discretizar la clase, asumiendo que debe haber un número mínimo de instancias de la clase de la mayoría en cada partición. Ej: si mínimo=3, entonces tendriamos Aplicando el mismo procedimiento para Humidity, se obtiene: Humidity: <=82.5 -> yes >82.5 and <= 95.5 -> no > 95.5 -> yes Errores: 3/14 64 65 68 69 70 71 72 72 75 75 80 81 83 85 y n y y y n n y y y n mayoría=y 70.5 mayoría=y 77.5 y y n mayoría=? Temperature:<=77.5 -> yes > 77.5 -> no Errores: 5/14 Probar en Weka el comportamiento de OneRule para los datasets WeatherNominal y Weather. Obs: Clasificador super naïve en Weka: ZeroR 2 Datamining y aprendizaje automatizado Departamento de Cs. e Ing. De la Computación, UNS 2do Cuat. 2009 Sobre 1R Fue descrito por primera vez en un paper por Holte en 1993 • Contiene una evaluación experimental sobre 16 datasets (usando cross-validation, para asegurar que los resultados fueran representativos sobre la performance con otros datos) • Mínimo nro de instancias = 6 (en base a experimentación) • Reglas simples de 1R no fueron mucho peores que árboles de decisión muy complejos!! Prof. Carlos I. Chesñevar Acercamientos de Cubrimiento Secuencial Son acercamientos de “dividir y conquistar” Principio general: aprender reglas de a una por vez. • Algoritmo LearnOneRule • Aprender una regla R que tenga • Alta exactitud – Cuando prediga algo, debería ser correcto. • ...pero con cualquier cubrimiento – No tiene que predecir todos los ejemplos, sólo algunos de ellos. • Marcar los ejemplos “cubiertos” por R • Estos ya han sido tomados en cuenta; ahora nos enfocamos en el resto. • Repetir esto hasta que se hayan cubierto todos los ejemplos. Acercamientos de Cubrimiento Secuencial Idea del algoritmo SequentialCovering • Invocar LearnOneRule para todos los ejemplos, obteniendo una regla R • Remover todos los ejemplos positivos cubiertos por la regla R • Repetir R ti ell proceso para aprender d una segunda d regla, l y asi siguiendo. Este algoritmo se denomina de cubrimiento secuencial (sequential covering) porque aprende secuencialmente un conjunto de reglas que cubren a todos los ejemplos positivos. Las reglas pueden ordenarse para aplicar las reglas más exactas primero al clasificar una nueva instancia. BD de lentes de contacto Método PRISM: un algoritmo de cubrimiento sencillo Supongamos una regla R que cubre t instancias, de las cuales p son ejemplos positivos, y t-p son las demás clases (ie. los errores de clasificación de la regla). Entonces buscaremos busca e os elegir e eg u un nuevo ue o té término o que maximice el cociente p/t. Analicemos el ejemplo del dataset asociado a lentes de contacto, donde había tres clases (hard, soft y none). Buscamos una regla para hard If ? Then recommendation=hard Método PRISM: un algoritmo de cubrimiento sencillo Para el término desconocido ? tenemos las siguientes posibilidades: If astigmatism=yes Then recommendation=hard Esta regla aún es inexacta…¿podemos refinarla? 3 Datamining y aprendizaje automatizado Departamento de Cs. e Ing. De la Computación, UNS 2do Cuat. 2009 Método PRISM: un algoritmo de cubrimiento sencillo If astigmatism=yes and ? Then recommendation=hard Parte de la BD para la cual astigmatism=yes Prof. Carlos I. Chesñevar Método PRISM: un algoritmo de cubrimiento sencillo If astigmatism=yes and tear production rate=normal and ? Then recommendation=hard Parte de la BD para la cual astigmatism=yes and tpr = normal ¿Qué condición elegir en este caso? Método PRISM: un algoritmo de cubrimiento sencillo If astigmatism=yes and tear production rate=normal and spectacle prescription = myope Then recommendation=hard If astigmatism=yes and tear production rate=normal and spectacle prescription = myope Then recommendation=hard Pero esta regla cubre solo tres de los cuatro casos donde recommendation=hard. Idea: eliminar las instancias ya cubiertas, y repetir el proceso Método PRISM: un algoritmo de cubrimiento sencillo If astigmatism=yes and tear production rate=normal and spectacle prescription = myope Then recommendation=hard Idea: eliminar las instancias ya cubiertas, y repetir el proceso. Obtendremos la regla: If age=young and astigmatism = yes and tear production rate=normal Then recommendation=hard Se cubren así las cuatro instancias de recommendation=hard (una de las clases). Repetimos el mismo proceso para recommendation=soft y recommendation=none. Método Prism: algoritmo Para cada clase C • E := conjunto de instancias • Mientras E contenga instancias en clase C • Crear regla R con LHS vacío, que prediga la clase C • Hasta que R sea perfecta (ie no hay mas atributos que usar) hacer: – Para cada atributo A que no aparece en R, y cada valor posible v » Considerar añadir la condición A=v al LHS de la regla R » Seleccionar A y v para maximizar la exactitud de p/t (en caso de empate, elegir la condición con mayor p) – Añadir A=v a la regla R • Remover de E las instancias cubiertas por R 4 Datamining y aprendizaje automatizado Departamento de Cs. e Ing. De la Computación, UNS 2do Cuat. 2009 Cubrimiento Secuencial Algoritmo general SequentialCovering para aprender conjuntos de reglas • Basado en el algoritmo CN2 (Clark & Niblett) function AprenderCjtoReglas (Meta, Atributos, Ejemplos, Umbral): ReglasAprendidas:= ∅ Regla:= AprenderUnaRegla(Meta, Atributos, Ejemplos) while performance(Regla,Ejemplos) > Umbral do ReglasAprendidas:= ReglasAprendidas ∪ {Regla} Ejemplos:= Ejemplos \ {ejemplos clasif. correctam. por Regla} Regla := AprenderUnaRegla(Meta, Atributos, Ejemplos) sort ReglasAprendidas según performance return ReglasAprendidas Prof. Carlos I. Chesñevar Aprendiendo Reglas: estrategias Para aprender una regla: • Llevar a cabo “greedy search” • Puede hacerse top-down o bottom-up • Top-down: – Comenzar con la regla máximamente general – Añadir literales uno a uno • Bottom-up: – Comenzar con regla máximamente específica – Remover literales uno por uno Ejemplo + - - + Ejemplo - - + + + + - - - - - - - + + + + + + + - - + + + + + + - + + + + - - - - - + - - IF A & B THEN pos IF A true THEN & THEN B THEN pospospos IF C true THEN & THEN D THEN pos pospos Algunas Opciones Ejemplo:Bottom-up vs. Top-down Opciones para aprender una regla: • ¿Top-down ó Bottom-up? • ¿Guiada por ejemplos? • ¿Hill-climbing, beam search, ... ? Bottom-up: típicamente reglas más específicas ¿Aprender reglas de una clase por vez, o para múltiples p p clases? + • Ordenado: 1ra regla que se aplica será usada • Se permite fácil incorporación de “excepciones” - - + + • Ej. primero aprender cjtos. de reglas para pos, luego un cjto. de reglas para neg; vs. aprender 1 cjto. con reglas pos y neg. ¿Aprender conjunto ordenado o desordenado de reglas? - - + + + + + + + + + - - - - - Top-down: típicamente reglas más generales 5 Datamining y aprendizaje automatizado Departamento de Cs. e Ing. De la Computación, UNS 2do Cuat. 2009 Prof. Carlos I. Chesñevar Cómo hacer AprenderUnaRegla Forma efectiva de AprenderUnaRegla: organizar el espacio de hipótesis como en ID3, pero siguiendo solo las ramas más prometedoras del árbol. Comenzar la búsqueda por la regla con la precondición más general posible (=test vacío) que cubra el mayor número de ejemplos. Ir añadiendo aquel nuevo test de atributo que mejore lo más posible la performance de la regla medida respecto a los ejemplos de entrenamiento. Repetir este proceso iterativamente, hasta alcanzar un nivel aceptable de performance. A diferencia de ID3, seguimos un único descendiente en cada paso de búsqueda en lugar de explorar un subárbol para cada par (atributo,valor). Criterio posible elección: elegir descendiente cuya entropía sea lo más baja posible! If THEN PlayTennis=yes If Wind=weak THEN PlayTennis=yes … If Humidity=high THEN PlayTennis=no If Wind=strong THEN PlayTennis=no If Humidity=normal H idit l THEN PlayTennis=yes If Humidity=normal Wind=weak THEN PlayTennis=yes If Humidity=normal Wind=strong THEN PlayTennis=yes … If Humidity=normal Outlook=rain If Humidity=normal THEN PlayTennis=yes Outlook=sunny THEN PlayTennis=yes Problemas & variantes El algoritmo AprenderUnaRegla hace una búsqueda depth-first de tipo “codiciosa” y sin backtracking. Como en cualquier búsqueda codiciosa, está el peligro de elegir una opción suboptimal. Alternativa: realizar “beam search” Se mantiene una lista de los k mejores candidatos en cada paso, paso en lugar de un único mejor candidato. candidato En cada paso de búsqueda, se generan descendientes para los k candidatos, y se reduce nuevamente el conjunto a los k mejores miembros que queden. De esta forma, en cada paso mantenemos siempre las k mejores alternativas presentes para considerar sus posibles sucesores. Idea usada en el sistema CN2 (Clark&Niblett, 1989). Variaciones Se exploraron muchas variaciones del algoritmo AprenderUnaRegla. Ejemplo: puede ser deseable que el programa que aprende solo cubra ejemplos positivos, e incluya un “default” para asignar clasificación negativa a ejemplos no cubiertos por ninguna regla. Puede ser útil para conceptos meta como “mujeres mujeres embarazadas que tienen chances de tener mellizos”. En este caso, la fracción de ejemplos positivos en la población es muy pequeña; la regla será mejor si identifica los ejemplos positivos, y clasifica automáticamente todos los demás ejemplos como negativos. Puede modificarse Performance para evitar considerar entropía negativa. Algoritmo Ripper Algoritmo RIPPER = Repeated Incremental Pruning to Produce Error Reduction (RIPPER): es un aprendiz de reglas proposicionales implementado en Weka “F “Fastt Effective Eff ti Rule R l Induction” I d ti ” (1995) William W. Cohen – Proc. of the 12th Intl. Conf. on Machine Learning. http://www.cs.cmu.edu/~wcohen/ Probar en Weka el comportamiento de Ripper para la base de datos de semillas de soja. 6 Datamining y aprendizaje automatizado Departamento de Cs. e Ing. De la Computación, UNS 2do Cuat. 2009 Prof. Carlos I. Chesñevar Reglas de asociación Responden a un enfoque totalmente distinto dentro de aprendizaje automatizado. El aprendizaje automatizado apunta a la clasificación cuando se intentar predecir una clase meta (target)… En el caso de las reglas de asociación, el aprendizaje automatizado apunta a relacionar atributos entre sí (asociación) dentro de grandes bases de datos. No requieren para su aplicación una base de datos relacional, sino que son extensibles a bases de datos transaccionales. Association rule mining Propuesto por Agrawal et al en 1993. Es un importante modelo de datamining, estudiado especialmente por la comunidad de datamining vinculada a BDs. Se asume que todos los datos son categóricos ( (nominales); i l ) no h hay b buenos algoritmos l it para d datos t numéricos. Inicialmente usado para el denominado Market Basket Analysis para encontrar cómo se vinculaban items comprados por clientes. Reglas de asociación Problema: “minar” una colección grande de transacciones de datos “tipo canasta” (basket data type), buscando asociaciones entre conjuntos de ítems con algún factor de confianza (a especificar). Ejemplo: “90% de las transacciones que involucran comprar pan y manteca también involucran comprar leche leche” Idea: potenciar a las BDs tradicionales con funcionalidades adicionales para calcular reglas de asociación. Ej: datos de supermercado Transacciones supermercado: t1: {pan, queso, leche} t2: {manzana, huevos, sal, yogurt} … … tn: {bizcochos, huevos, leche} Conceptos: • Item: un item/articulo en la canasta • I: cjto de todos los items vendidos en el super • Transacción: items comprados en una canasta; usualmente poseen TID (transaction ID) • BD transaccional: un cjto de transacciones El modelo: datos I = {i1, i2, …, im}: un conjunto de items. Transacción t : j de items,, y t ⊆ I. • t es un cjto. BD transaccional T: un conjunto de transacciones T = {t1, t2, …, tn}. BD transaccional: conjunto de documentos Un dataset formado por documentos de texto. Cada documento = “bolsa” de palabras clave doc1: doc2: doc3: doc4: doc5: doc6: doc7: Student, Teach, School Student, School Teach, School, City, Game Baseball, Basketball Basketball, Player, Spectator Baseball, Coach, Game, Team Basketball, Team, City, Game 7 Datamining y aprendizaje automatizado Departamento de Cs. e Ing. De la Computación, UNS 2do Cuat. 2009 Prof. Carlos I. Chesñevar El modelo: reglas Medidas para reglas Transacción t contiene X, un cjto de items (itemset) en I, si X ⊆ t. Una regla de asociación es una implicación de la forma: X → Y, Y donde X, X Y ⊂ I, I y X ∩Y = ∅ Soporte: Una regla es válida con un soporte sup en T (la BD transaccional) si sup% de las transacciones contienen X ∪ Y. • sup = Pr(X ∪ Y). Confianza: Una regla es válida en T con una confianza conf si conf% de las transacciones que contienen X también contienen Y. • conf = Pr(Y | X) Una regla de asociación es un patrón que afirma que cuando ocurre X, entonces Y ocurre con cierta probabilidad. Un itemset es un cjto de items. • Ej., X = {leche, pan, cereal} es un itemset. Un k-itemset es un itemset con k items. • Ej., {leche, pan, cereal} es un 3-itemset Confianza vs. Soporte Soporte y Confianza Valor de soporte (support count): El valor de soporte de un itemset X, denotado X.count, en un dataset T es el número de transacciones en T que contienen X. Si T tiene n transacciones, entonces: support = ( X ∪ Y ).count n confidence = ( X ∪ Y ).count X .count Meta. Características Meta: Encontrar todas las reglas que satisfagan un mínimo soporte (minsup) y una mínima confianza (minconf), especificadas por el usuario. Características • Completitud: encontrar todas las reglas. • No hay targets en el lado derecho de la regla (no es clasificación, sino asociación!) • La minería de datos se hace en el disco (no en memoria principal) Cliente Compra cerveza TID 2000 1000 4000 5000 Cliente Compra pañales Hallar todas las reglas X & Y ⇒ Z con un umbral mínimo de confianza y soporte. – soporte s: probabidad de que una transacción contenga {X U Y U Z} – Confianza c: probabilidad condicional de que una transacción tenga {X U Y} también contenga Z Items A,B,C A,C A,D B,E,F Ejemplo BD transaccional Asumimos: minsup = 30% minconf = 80% Un U itemset it t frecuente: f t {Pollo, Ropa, leche} Con soporte mínimo 50%, y confianza mínima 50%, se tiene • A ⇒ C (50%, 66.6%) • C ⇒ A (50%, 100%) t1: t2: t3: t4: t5: t6: t7: Carne, Pollo, Leche Carne, Queso Queso, Botas Carne, Pollo, Queso Carne,Pollo, Ropa, Queso, Leche Pollo, Ropa, Leche Pollo, Leche, Ropa [sup = 3/7] Algunas reglas de asociación para este itemset: Ropa→ Leche, Pollo [sup = 3/7, conf = 3/3] … … Ropa, Pollo→ Leche, [sup = 3/7, conf = 3/3] 8 Datamining y aprendizaje automatizado Departamento de Cs. e Ing. De la Computación, UNS 2do Cuat. 2009 Prof. Carlos I. Chesñevar Ejemplos y Aplicaciones Encontrar: todas las reglas que corelacionen la presencia de un conjunto de items con otro conjunto de items. • E.g., 98% de la gente que compra estampillas también compra sobres. Aplicaciones / Ejemplos • Detectar patrones en compras de supermercados • Attached mailing (en marketing) • Spamming • Detección de fraudes en sistemas complejos (ejemplo: anomalías en sistema médico de la OSUNS, trabajo de Grandinetti & Filocamo, 2002) Algoritmos para R.Asociación Hay varios…. Usan diferentes estrategias y estructuras de datos. Los conjuntos de reglas resultantes son los mismos. • Dado un conjunto de datos transaccionales T, y un soporte y confianza mínimos, el conjunto de reglas de asociación existentes en T está determinado unívocamente. Cualquier algoritmo debería encontrar el mismo conjunto de reglas, aunque su eficiencia computacional y requerimiento de memoria puede ser diferente. Algoritmo tradicional: Apriori (está en Weka/Orange) Algoritmos más avanzados: FP-Growth (Han,2001) Presentación de Reglas de Asociación (Forma tabular) ARTool ARTool / ARMiner ARMiner : aplicación cliente-servidor para encontrar reglas de asociación (implementado en Java) http://www.cs.umb.edu/~laur/ARtool/ http://www.cs.umb.edu/~laur/ARMiner/ Visualización de Reglas de Asociación usando Plane Graph Medidas de performance Hemos visto: Support(AÆC) = (A U C).Count Confidence(AÆC) = (A U C).Count / A.Count Hay otras medidas adicionales (denominadas interestingness measures), entre las que se tienen lift y leverage. lift(A->C) = confidence(A->C) / support(C) Valores de lift mayor a 1.0 indican que las transacciones que contienen A tienden a contener C más a menudo que las transacciones que *no* contienen A. leverage(A->C) = support(A->C) - support(A)*support(C) Leverage es la diferencia entre la frecuencia observada de A+C y la frecuencia que sería esperable si A y C fueran independientes. 9 Datamining y aprendizaje automatizado Departamento de Cs. e Ing. De la Computación, UNS 2do Cuat. 2009 Prof. Carlos I. Chesñevar Medidas de performance Notemos que conf(AÆB) = conf(BÆA) (lo mismo vale para lift). Conviction está inspirada en la noción de implicación lógica, e intenta medir el grado de implicación de una regla. Conviction es infinita para implicaciones lógicas, y es 1 para el que A y B son independientes. p caso en q Weka permite adoptar conf, lift, leverage o conviction para ordenar reglas de asociación 10