1 REGLAS DE ASOCIACIÓN Bases de Datos Masivas 29 de Octubre de 2015 2 Reglas de Asociación 3 Reglas de Asociación Dado un conjunto de transacciones encontrar reglas que puedan predecir la ocurrencia de un ítem basado en la presencia de otros. Análisis Market-Basket transactions Ejemplo de Reglas de Asociación {Diaper} → {Beer}, {Milk, Bread} → {Eggs,Coke}, {Beer, Bread} → {Milk}, La implicancia indica “co-ocurrencia” no causalidad 4 Definiciones ● Itemset – Una colección de 1 ó más items – Ejemplo: {Milk, Bread, Diaper} k-itemset ● Un itemset que contiene k items Support count (σ) ● ● – – Cantidad de ocurrencias de un itemset Customer buys both Ej σ({Milk, Bread, Diaper}) = 2 Customer buys beer Customer buys diaper 5 Definiciones ● Support (s) – Fracción de transacciones que contiene a un itemset – Ejemplo: σ({Milk, Bread,Diaper}) / |T| = 2/5 ● Itemset frecuente – σ (x) s (x )= |T| Un itemset cuyo support es mayor o igual al umbral establecido en minsup . 6 Definiciones ● Regla de Asociación – Una expresión de la forma X → Y, donde X e Y son itemsets – Ejemplo: {Milk, Diaper} ⇒ {Beer} 7 Definiciones Métricas de Evaluación de Reglas ● Support (s): – ● Fracción de transacciones que contiene a X e Y Confidence (c): – Mide con que frecuencia Y aparece en transacciones en las que también aparece X 8 Ejemplos de Reglas de Asociación {Milk,Diaper} → {Beer} (s=0.4, c=0.67) {Milk,Beer} → {Diaper} (s=0.4, c=1.0) {Diaper,Beer} → {Milk} (s=0.4, c=0.67) {Beer} → {Milk,Diaper} (s=0.4, c=0.67) {Diaper} → {Milk,Beer} (s=0.4, c=0.5) {Milk} → {Diaper,Beer} (s=0.4, c=0.5) Observaciones: • Todas las reglas se originaron en el itemset: {Milk, Diaper, Beer} • Las reglas que se originan en el mismo itemset tienen el mismo soporte pero pueden tener distinta confianza ¿Por qué? 9 Otras aplicaciones 1) Encontrar conceptos relacionados: Supongamos que las palabras son los ítems y los “documentos” las canastas. 2) Plagio: En este caso los ítems son las documentos y las canastas las oraciones. ● ● Donde un “item/documento” esta en una “canasta/oración” si la oración pertenece al documento. Una o dos oraciones en común en distintos documentos son un buen indicador de plagio. 10 Otras aplicaciones Biomarkers ( indicadores biológicos) Supongamos que los items son de 2 tipos: genes /proteínas en sangre o enfermedades. Cada canasta es el conjunto de estos datos referidos a un paciente: el genoma, los análisis de sangre y su historia clínica. Un itemset que muestra la relación entre uno o más “indicadores biológicos” y una enfermedad daría una pista sobre un posible análisis para detectar esa enfermedad. 11 Descubrimiento de reglas Dado un conjunto de transacciones T, el objetivo del descubrimiento de reglas de asociación es encontrar todas las reglas que cumplen: – support ≥ minsup threshold – confidence ≥ minconf threshold Aproximación de fuerza bruta: ● Listar todas las posibles reglas de asociación ● Calcular el soporte y la confianza para cada una ● Eliminar las que no satisfacen los umbrales predefinidos ⇒ Computacionalmente Prohibitivo! 12 Descubrimiento de reglas ¿Por qué es prohibitivo? Supongamos que tenemos frecuent itemset de 100 items: {a 1 , a 2 , . . . , a 100 } Vamos a tener los 100 =100 1-itemset frecuentes (1) Vamos a tener los 100 =4950 2-itemset frecuentes (2) 13 Descubrimiento de reglas Association Rule Mining puede ser visto como un problema de 2 pasos: 1) Generación de los itemsets frecuentes Generar todos los itemsets con support ≥ minsup 2) Generación de reglas – Generar a partir de la división de los itemsets frecuentes en subconjuntos las reglas que satisfacen la confianza El primer paso es computacionalmente muy caro 14 Generación de Itemsets Frecuentes 15 Generación de Itemsets Frecuentes Aproximación de fuerza bruta: ● Cada itemset en el lattice es un candidato ● Contar el soporte de cada itemset barriendo las transacciones ● Comparar cada transacción contra cada itemset ● Complejidad ~ O(NMw) => Caro porque M = 2d !!! 16 Complejidad Computacional Dados d items: ● Número total de itemsets = 2d ● Número total de reglas: 17 Estrategias para la generación de itemsets Reducir el número de candidatos (M) ● Búsqueda completa: M = 2d ● Utilice técnicas de poda para reducir M Reducir el número de transacciones (N) ● Reducir el tamaño de N como el incremento del tamaño de los itemsets ● Esto es utilizado algoritmos como Direct Hashing and Pruning (DHP) Reducir el número de comparaciones (NM) ● Utilice las estructuras de datos eficientes para almacenar los candidatos o transacciones ● No hay necesidad de comparar cada candidato contra cada transacción 18 Reduciendo el número de candidatos Principio Apriori Si un itemset es frecuente, entonces todos sus subsets deben además ser frecuentes. El Principio Apriori se sostiene debido a las siguiente propiedades de la medida de support: ∀X,Y:(X⊆Y)⇒s(X)≥s(Y) ● ● El support de un itemset nunca excede el support de sus subsets Esto es conocido como la propiedad de anti-monotonía del support 19 Anti-Monotonía Si un itemset X no satisface el umbral de min_support entonces X no es frecuente. Es decir: S(X) < min_support Si agrego X2 al itemset X (X U X2) entonces el resultado del itemset no puede ser más frecuente que X X U X2 es no frecuente, por lo tanto: S(X U X2) < min_support ¡¡Volvamos al lattice!! 20 El algoritmo Apriori El algoritmo Apriori fue propuesto por R. Agrawal and R. Srikant en 1994 para mining frecuent itemsets de reglas de asociación binarias (como los ejemplos de la canasta). El algoritmo maneja 2 conjuntos de itemsets: – Candidatos ( Ck ) – Frecuentes ( Lk ) 21 El algoritmo Apriori Join Step: Ck es generando uniendo Lk-1 con sigo mismo. Prune Step: Un (k-1)-itemset que no es frecuente no puede ser un subset de un k-itemset frecuente. Pseudo-code: Ck: Candidate itemset of size k Lk: frequent itemset of size k L1 = {frequent items}; for( k = 1; L k !=∅; k ++) do begin Ck+1 = candidates generated from Lk for each transaction t in database do increment the count of all candidates in Ck+1that are contained in t Lk+1 = candidates in Ck+1 with min_support end return ∪k Lk 22 Ejemplo de Generación de Candidatos ● L3 = { abc, abd, acd, ace, bcd } ● Unir: L3 * L3 ● – abcd de abc y abd – acde de acd y ace Pruning: – Como ade no está en L3 se elimina acde – C4 ={ abcd } 23 Ejemplo de Generación de Candidatos 24 Obtención de las reglas A partir de los itemsets frecuentes vamos a generar las reglas de asociación. For each frequent itemset X , For each proper nonempty subset A of X, Let B = X - A A ⇒B is an association rule if Confidence (A ⇒ B) ≥ minConf, where support (A ⇒ B) = support (AB), and confidence (A ⇒ B) = support (AB) / support (A) Como las reglas se construyen a partir de los itemsets frecuentes, todas satisfacen el min_support 25 Factores que afectan la complejidad Elegir el umbral de min_support ● ● Bajar el umbral de support resulta en mas itemsets frecuentes Esto puede incrementar el número de candidatos y la longitud maxima de itemsets frecuentes Dimensionalidad del dataset (cantidad de items) ● ● Se necesita más espacio para almacenar el count support de cada uno de los items Si el nro de items frecuentes aumenta, tanto el costo computacional como las operaciones de I/O se incrementan Tamaño de la base de datos ● Dado que Apriori hace varias pasadas, el tiempo de ejecución del algoritmo puede aumentar con el número de transacciones 26 Tipos “especiales” de itemsets ● ● Maximal Frecuent Itemset: Un itemset es maximal si ninguno de su superset es frecuente Closed Frecuent Itemset: Un itemset es closed si ninguno de sus inmediatos superset tiene el mismo support que el itemset. 27 Medidas de Interestingnes ● Dada una regla X → Y la información necesaria para computar medidas de Interestingness se obtiene desde una tabla de contingencia: 28 Drawback of Confidence 29 Independencia Estadística Population of 1000 students - 600 students know how to swim (S) - 700 students know how to bike (B) - 420 students know how to swim and bike (S,B) P(S∧B) = 420/1000 = 0.42 (Observados juntos) P(S) × P(B) = 0.6 × 0.7 = 0.42 (Indep.) - P(S∧B) = P(S) × P(B) => Statistical independence - P(S∧B) > P(S) × P(B) => Positively correlated - P(S∧B) < P(S) × P(B) => Negatively correlated 30 Lift El Lift de una regla es X → Y es la confianza de la regla dividido la confianza esperada, asumiendo que los items son independientes. P (X ,Y ) Lift =P( X →Y )= P ( X ) . P (Y ) Confidence = P(Coffee|Tea) = 0.75 but P(Coffee) = 0.9 ⇒ Lift = 0.75/0.9= 0.8333 (< 1, están asociados negativamente) 31 Referencias ● Jiawei Han,Micheline Kamber.Data Mining,Concepts and Techniques- 2 da edición- The Morgan Kaufmann Series in Data Management Systems