Representación de Teorías con Reglas de Decisión. Reglas: representación potente. Inferencia de reglas via OneRule. Prof. Carlos I.



Documentos relacionados
Ingeniería en Informática

Programación Genética

ESTIMACIÓN. puntual y por intervalo

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Parte I: Introducción

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Tecnologías en la Educación Matemática. Expresiones. Datos. Expresiones Aritméticas. Expresiones Aritméticas 19/08/2014

Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE

Centro de Capacitación en Informática

Fundamentos y Aplicaciones Prácticas del Descubrimiento de Conocimiento en Bases de Datos. - Sesión 9 -

1.1. Introducción y conceptos básicos

DE VIDA PARA EL DESARROLLO DE SISTEMAS

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Diseño de bases de datos Diapositiva 1

CLASE # 5 TÉCNICAS DE CAJA BLANCA

ETSIINGENIO 2009 DIBUJO DE GRAFOS MEDIANTE ALGORITMOS GENÉTICOS

Administración de proyectos. Organizar, planificar y programar los proyectos de software

Manual para la utilización de PrestaShop

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Capítulo 12: Indexación y asociación

Medias Móviles: Señales para invertir en la Bolsa

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

Haciendolo realidad ENTRENAMIENTO DE PADRES EN EL MANEJO

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Análisis de los datos

Las reglas de asociación tienen diversas aplicaciones como:

Capítulo 2. Técnicas de procesamiento digital de imágenes y reconocimiento de patrones.

Informes de activos fijos Versión 1.1. Tabla de contenidos. Informes de activos fijos

Elementos requeridos para crearlos (ejemplo: el compilador)

Administración de Empresas. 11 Métodos dinámicos de evaluación de inversiones 11.1

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Capítulo 1 Documentos HTML5

Mineria de datos y su aplicación en web mining data Redes de computadores I ELO 322

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

Resumen de técnicas para resolver problemas de programación entera Martes, 9 de abril. Enumeración. Un árbol de enumeración

Funciones, x, y, gráficos

Bases de datos en Excel

Data Mining Técnicas y herramientas

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009

LÍMITES Y CONTINUIDAD DE FUNCIONES

Apuntes de Matemática Discreta 1. Conjuntos y Subconjuntos

Su éxito se mide por la pertinencia y la oportunidad de la solución, su eficacia y eficiencia.

Trabajo final de Ingeniería

Reglas de Asociación. Carlos Alonso González Grupo de Sistemas Inteligentes Departamento de Informática Universidad de Valladolid

Generalización como búsqueda. El problema de aprendizaje por generalización puede verse como un problema de búsqueda:

5.4. Manual de usuario

DOMINIO Y RANGO página 89. Cuando se grafica una función existen las siguientes posibilidades:

Fundamentos de Investigación de Operaciones Investigación de Operaciones 1

Análisis y gestión de riesgo

DATA MINING EN LA BASE DE DATOS DE LA OMS KNOWLEDGE DETECTION (DETECCIÓN DEL CONOCIMIENTO) Q.F.B. JUANA LETICIA RODRÍGUEZ Y BETANCOURT

Estructuras de Datos y Algoritmos Tecnólogo en Informática

Figure 7-1: Phase A: Architecture Vision

MODELOS DE RECUPERACION

Testing. Tipos, Planificación y Ejecución de Pruebas

Estructuras de Control - Diagrama de Flujo

Métodos Heurísticos en Inteligencia Artificial

El nivel de Satisfacción Laboral tomado con puntaje de mayor de 3 es lo que denota mayor satisfacción.

Fórmulas. Objetivos y Definición. Definir fórmulas nos brinda una forma clave de compartir conocimiento y obtener código generado optimizado

SISTEMAS INTELIGENTES

Ejemplos de conversión de reales a enteros

Ecuaciones de primer grado con dos incógnitas

Capitulo V Administración de memoria

ANÁLISIS DE DATOS NO NUMERICOS

Liderazgo se genera en el lenguaje

Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso Aritmética binaria

Estadística y Método Científico Hugo S. Salinas. Fuente:

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Análisis de Datos. Práctica de métodos predicción de en WEKA

CAPITULO 6 SISTEMA DE DETECCION DE INTRUSOS

activuspaper Text Mining and BI Abstract

SÍNTESIS Y PERSPECTIVAS

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

Aprendizaje Automático y Data Mining. Bloque IV DATA MINING

Recuperación de información Bases de Datos Documentales Licenciatura en Documentación Curso 2011/2012

5.- ANÁLISIS DE RIESGO

Determinación de primas de acuerdo al Apetito de riesgo de la Compañía por medio de simulaciones

MANUAL ECOMMERCE 2.0

Diseño orientado al flujo de datos

Colegio Alexander von Humboldt - Lima. Tema: La enseñanza de la matemática está en un proceso de cambio

4. METODOLOGÍA. 4.1 Materiales Equipo

Nota 2. Luis Sierra. Marzo del 2010

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

CAPÍTULO 4: ALGORITMOS DE APRENDIZAJE

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

Anexo 11. Manual de Administración

Resumen del trabajo sobre DNSSEC

Módulo 9 Sistema matemático y operaciones binarias

4. Estadística Descriptiva

- Bases de Datos - - Diseño Físico - Luis D. García

Propiedad Colectiva del Código y Estándares de Codificación.

Procesos Críticos en el Desarrollo de Software

El modelo de ciclo de vida cascada, captura algunos principios básicos:

CMMI (Capability Maturity Model Integrated)

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

ANÁLISIS DE RIESGOS EN LA GESTIÓN DE PROYECTOS. Los riesgos son eventos o condiciones inciertas que, si se producen, tienen un

DISEÑO DE FUNCIONES (TRATAMIENTOS)

Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final

- MANUAL DE USUARIO -

Transcripción:

Datamining y Aprendizaje Automatizado 05 Aprendizaje de Conjuntos de Reglas 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 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) Reglas de asociación Cap. 10 Mitchell (parcialmente) Cap. 4 Witten (parcialmente) 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 ifthenelse 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. 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. 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 (instancebased learning) para usar de referencia El éxito depende en muchos casos del dominio 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

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 y n n y y y n y y n 64.5 66.5 70.5 72 77.5 80.5 84 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. 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 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 y y n Problema con 1R Aplicando el mismo procedimiento para Humidity, se obtiene: Humidity: <=82.5 > yes >82.5 and <= 95.5 > no > 95.5 > yes Errores: 3/14 mayoría=y 70.5 mayoría=y 77.5 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

Sobre 1R Fue descrito por primera vez en un paper por Holte en 1993 Contiene una evaluación experimental sobre 16 datasets (usando crossvalidation, 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!! 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 el proceso para aprender una segunda regla, 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. Supongamos una regla R que cubre t instancias, de las cuales p son ejemplos positivos, y tp son las demás clases (ie. los errores de clasificación de la regla). Entonces buscaremos elegir eg un nuevo término 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 BD de lentes de contacto Para el término desconocido? tenemos las siguientes posibilidades: If astigmatism=yes Then recommendation=hard Esta regla aún es inexacta podemos refinarla? 3

If astigmatism=yes and? Then recommendation=hard Parte de la BD para la cual astigmatism=yes 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? 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 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

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 Aprendiendo Reglas: estrategias Para aprender una regla: Llevar a cabo greedy search Puede hacerse topdown o bottomup Topdown: Comenzar con la regla máximamente general Añadir literales uno a uno Bottomup: Comenzar con regla máximamente específica Remover literales uno por uno Ejemplo Ejemplo IF A true THEN & B THEN pos pos pos IF A & B THEN pos IF C true THEN & D THEN pos pos pos Algunas Opciones Opciones para aprender una regla: Topdown ó Bottomup? Guiada por ejemplos? Hillclimbing, beam search,...? Aprender reglas de una clase por vez, o para múltiples clases? 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? Ordenado: 1ra regla que se aplica será usada Se permite fácil incorporación de excepciones Ejemplo:Bottomup vs. Topdown Bottomup: típicamente reglas más específicas Topdown: típicamente reglas más generales 5

Cómo hacer AprenderUnaRegla If THEN PlayTennis=yes 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 Wind=weak THEN PlayTennis=yes If Wind=strong THEN PlayTennis=no If Humidity=normal Wind=weak THEN PlayTennis=yes If Humidity=normal Wind=strong THEN PlayTennis=yes If Humidity=normal THEN PlayTennis=yes If Humidity=high THEN PlayTennis=no 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 depthfirst 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, en lugar de un único mejor 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 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 Fast Effective Rule Induction (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

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); no hay buenos algoritmos para datos 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 Idea: potenciar a las BDs tradicionales con funcionalidades adicionales para calcular reglas de asociación. El modelo: datos I = {i 1, i 2,, i m }: un conjunto de items. Transacción t : t es un cjto. de items, y t I. BD transaccional T: un conjunto de transacciones T = {t 1, t 2,, t 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 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

El modelo: 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, donde X, Y I, y X Y = Un itemset es un cjto de items. Ej., X = {leche, pan, cereal} es un itemset. Un kitemset es un itemset con k items. Ej., {leche, pan, cereal} es un 3itemset Medidas para reglas 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. 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: ( X Y ). count support = n ( X Y). count confidence= X. count Cliente Compra cerveza Confianza vs. Soporte Cliente Compra pañales TID Items 2000 A,B,C 1000 A,C 4000 A,D 5000 B,E,F 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 Con soporte mínimo 50%, y confianza mínima 50%, se tiene A C (50%, 66.6%) C A (50%, 100%) 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) Ejemplo BD transaccional Asumimos: minsup = 30% minconf = 80% Un itemset t frecuente: {Pollo, Ropa, leche} [sup = 3/7] t1: Carne, Pollo, Leche t2: Carne, Queso t3: Queso, Botas t4: Carne, Pollo, Queso t5: Carne,Pollo, Ropa, Queso, Leche t6: Pollo, Ropa, Leche t7: Pollo, Leche, Ropa 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

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: FPGrowth (Han,2001) ARTool Presentación de Reglas de Asociación (Forma tabular) ARTool / ARMiner ARMiner : aplicación clienteservidor 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 AC y la frecuencia que sería esperable si A y C fueran independientes. 9

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 caso en que A y B son independientes. Weka permite adoptar conf, lift, leverage o conviction para ordenar reglas de asociación 10