Tareas de la minería de datos: reglas de asociación y ...

67
Tareas de la minería de datos: reglas de asociación y secuencias CI-2352 Intr. a la minería de datos Prof. Braulio José Solano Rojas ECCI, UCR

Transcript of Tareas de la minería de datos: reglas de asociación y ...

Page 1: Tareas de la minería de datos: reglas de asociación y ...

Tareas de la minería de datos: reglas de asociación y secuencias

CI-2352 Intr. a la minería de datosProf. Braulio José Solano Rojas

ECCI, UCR

Page 2: Tareas de la minería de datos: reglas de asociación y ...

La parábola de la cerveza y las mantillas

● La parábola de la cerveza y las mantillas.● «Hace algún tiempo, Wal-Mart decidió combinar los

datos de su sistema de tarjetas de fidelización con el de su sistema de punto de ventas. El primero proveyó datos demográficos acerca de los clientes, el último brindó la información de dónde, cuándo y qué compraron. Una vez combinados, los datos fueron minados extensivamente y muchas relaciones aparecieron. Algunas de estas fueron obvias: las personas que compran gin posiblemente también compran tonic. También compran a menudo limones. Sin embargo, una relación fue totalmente inesperada.»

2 de 67

Page 3: Tareas de la minería de datos: reglas de asociación y ...

La parábola de la cerveza y las mantillas

● «Los viernes en la tarde, los jóvenes varones estadounidenses que compran mantillas tienen también una predisposición a comprar cerveza. Nadie nunca predijo dicho resultado, de tal manera que nadie se hubiera hecho la pregunta sobre el caso en primer lugar. Esto es un excelente ejemplo de la diferencia entre minería de datos y consulta de datos.»

3 de 67

Page 4: Tareas de la minería de datos: reglas de asociación y ...

Reglas de asociación

Page 5: Tareas de la minería de datos: reglas de asociación y ...

Tareas de la minería de datos: reglas de asociación

● Las reglas de asociación se utilizan para descubrir hechos que ocurren en común dentro de un determinado conjunto de datos.

● Basándose en el concepto de “reglas fuertes”, Agrawal et al. presentaron las reglas de asociación para descubrir regularidades en transacciones registradas en grandes repositorios de datos de sistemas de punto de ventas en supermercados.

5 de 67

Page 6: Tareas de la minería de datos: reglas de asociación y ...

Tareas de la minería de datos: reglas de asociación

● Ejemplo:

{ pan, jamón } ⇒ { queso }

6 de 67

Page 7: Tareas de la minería de datos: reglas de asociación y ...

Reglas de asociación: algoritmos● Existen algunos algoritmos bien conocidos

como Apriori, Eclat y FP-Growth, sin embargo, proveen únicamente la mitad del trabajo dado que son algoritmos para minar conjuntos de elementos frecuentes. Otro paso necesita luego generar reglas a partir de los conjuntos de elementos frecuentes encontrados en la base de datos.

7 de 67

Page 8: Tareas de la minería de datos: reglas de asociación y ...

Sobre las reglas de asociación● El espacio de todas las reglas de asociación es

exponencial, O(2m), donde m es el número de elementos en I.

● La minería explota la escasez de los datos y valores de apoyo mínimo y confianza mínima altos.

● Aún así, puede producir un gran número de reglas, miles, decenas de miles, millones, ...

8 de 67

Page 9: Tareas de la minería de datos: reglas de asociación y ...

Reglas de asociación: algoritmo apriori

● Conjuntos de elementos (itemset) frecuentes: los itemset que tienen un apoyo mínimo de los datos (denotado por Li para el iésimo-itemset).

● Prioridad Apriori: Cualquier subconjunto de conjuntos de elementos frecuentes debe ser frecuente.

● Operación de unión: Para encontrar Lk, un itemset candidato de tamaño k, se genera uniendo a Lk-1 consigo mismo.

9 de 67

Page 10: Tareas de la minería de datos: reglas de asociación y ...

Algoritmo Apriori: resumido● Encontrar los itemset frecuentes: los conjuntos

de elementos que tienen apoyo mínimo● Un subconjunto de un itemset frecuente también

debe ser un itemset frecuente– i.e., si {AB} es un itemset frecuente, ambos {A} y {B}

deben ser itemset frecuentes● Iterativamente encontrar itemset frecuentes con

cardinalidad 1 a k (k-itemset)

● Utilizar los itemset frecuentes para generar reglas de asociación.

10 de 67

Page 11: Tareas de la minería de datos: reglas de asociación y ...

Algoritmo Apriori: pseudo-código● Unión: Ck es generado uniendo Lk-1 consigo mismo● Poda: Cualquier (k-1)-itemset que no es frecuente no puede ser un

subconjunto de un k-itemset frecuente● Pseudo-code:

Ck: Itemset candidato de tamaño kLk: Itemset frecuente de tamaño k

L1= {elementos frecuentes};para (k= 1; Lk!= ; ∅ k++) haga Ck+1= candidates generated from Lk; para cada transacción t en database haga incremente la cuenta de candidatos en Ck+1 que están en t Lk+1= candidatos en Ck+1 con min_supportendreturn ∪kLk;

11 de 67

Page 12: Tareas de la minería de datos: reglas de asociación y ...

Algoritmo Apriori: un ejemplo

12 de 67

TID Lista de elementos100 I1, I2, I5101 I2, I4102 I2, I3103 I1, I2, I4104 I1, I3105 I2, I3106 I1, I3108 I1, I2, I3, I5109 I1, I2, I3

● Considérese una base de datos D que consiste de 9 transacciones.

● Suponga que el apoyo mínimo es de 2 (i.e. min_sup = 2/9 = 22 % )

● Sea la confianza mínima requerida de 70%.

● Debemos primero encontrar los conjuntos de elementos frecuentes utilizando Apriori.

● Luego se generan las reglas de asociación utilizando el apoyo mínimo y la confianza mínima.

Page 13: Tareas de la minería de datos: reglas de asociación y ...

Apriori: paso 1

● El conjunto de 1-itemset frecuentes, L1, consiste de los 1-itemset candidatos que satisfacen el apoyo mínimo.

● En la primera iteración del algoritmo cada elemento es un miembro del conjunto candidato.

13 de 67

Page 14: Tareas de la minería de datos: reglas de asociación y ...

Apriori: paso 2

14 de 67

Page 15: Tareas de la minería de datos: reglas de asociación y ...

Apriori: paso 2● Para descubrir el conjunto de 2-itemset frecuentes, L2, el

algoritmo usa L1 Unión L1 para generar un conjunto candidato de 2-itemsets, C2.

● Luego, las transacciones en D son rastreadas y se cuenta el apoyo de cada itemset en C2 (tal como se muestra en la tabla intermedia).

● El conjunto de 2-itemset frecuentes, L2, es determinado, consistiendo de aquellos candidatos 2-itemset en C2 que tienen un apoyo mínimo.

● Nota: Aún no se ha utilizado la propiedad Apriori.15 de 67

Page 16: Tareas de la minería de datos: reglas de asociación y ...

Apriori: paso 3

● La generación del conjunto de 3-itemset candidatos, C3, implica el uso de la propiedad Apriori.

● Para encontrar C3, computamos L2 Unión L2.● C3 = L2 Unión L2 = {{I1, I2, I3}, {I1, I2, I5}, {I1, I3, I5}, {I2, I3, I4},

{I2, I3, I5}, {I2, I4, I5}}.● Una vez que la unión está completa se usa la poda para reducir

el tamaño de C3. La poda ayuda a evitar computación pesada debido a un Ck grande.

16 de 67

Page 17: Tareas de la minería de datos: reglas de asociación y ...

Apriori: paso 3● Basándose en la propiedad Apriori se puede determinar que 4

candidatos no pueden ser frecuentes. ¿Cómo?● Por ejemplo, tomése {I1, I2, I3}. Los subconjuntos suyos de tamaño 2

son {I1, I2}, {I1, I3} y {I2, I3}. Dado que todos los subconjuntos de tamaño 2 son miembros de L2 se mantiene {I1, I2, I3} en C3.

● Tómese el ejemplo de {I2, I3, I5} que muestra cómo se efectúa la poda. Los subconjuntos de elementos tamaño 2 son {I2, I3}, {I2, I5} y {I3,I5}.

● {I3, I5} no es un miembro de L2 y por lo tanto no es frecuente violando la propiedad Apriori. Así se elimina {I2, I3, I5} de C3.

● Finalmente, C3= {{I1, I2, I3}, {I1, I2, I5}} después de revisar todos los miembros resultado de la unión durante la poda.

● Ahora las transacciones en D son rastreadas para determinar L3, que consiste de aquellos 3-itemset candidatos en C3 que tienen apoyo mínimo.

17 de 67

Page 18: Tareas de la minería de datos: reglas de asociación y ...

Apriori: paso 4

● El algoritmo usa L3 Unión L3 para generar un conjunto candidato de 4-itemset, C4. El resultado es {{I1, I2, I3, I5}}, este itemset es podado dado que su subconjunto {{I2, I3, I5}} no es frecuente.

● Así C4 = ∅ y el algoritmo termina habiendo encontrado todos los elementos frecuentes.

● ¿Qué sigue?● Estos itemset frecuentes serán usado para generar

reglas de asociación fuertes (donde dichas reglas satisfacen ambos apoyo y confianza mínimos).

18 de 67

Page 19: Tareas de la minería de datos: reglas de asociación y ...

Generación de reglas: paso 5● Procedimiento:

● Para cada itemset l frecuente se generan todos los subconjuntos vacíos.

● Para cada subconjunto s no vacío de I se imprime la regla “s → (l-s)” si support_count(l) / support_count(s) >= min_conf donde min_conf es el umbral de confianza mínima.

● Volviendo al ejemplo:● Se tenía L = {{I1}, {I2}, {I3}, {I4}, {I5}, {I1,I2}, {I1,I3},

{I1,I5}, {I2,I3}, {I2,I4}, {I2,I5}, {I1,I2,I3}, {I1,I2,I5}}.● Tómese l = {I1,I2,I5}.● Sus subconjuntos no vacíos son {I1,I2}, {I1,I5}, {I2,I5},

{I1}, {I2}, {I5}.

19 de 67

Page 20: Tareas de la minería de datos: reglas de asociación y ...

Generación de reglas: paso 5● Sea el umbral de confianza mínima 70%.● Las reglas de asociación resultantes se

muestran acá con su confianza.● R1: I1 ^ I2 →I5

– confianza = sc{I1,I2,I5}/sc{I1,I2} = 2/4 = 50%– R1 es rechazada.

● R2: I1 ^ I5 →I2– confianza = sc{I1,I2,I5}/sc{I1,I5} = 2/2 = 100%– R2 es seleccionada.

● R3: I2 ^ I5 →I1– confianza = sc{I1,I2,I5}/sc{I2,I5} = 2/2 = 100%– R3 es seleccionada.

20 de 67

Page 21: Tareas de la minería de datos: reglas de asociación y ...

Generación de reglas: paso 5● R4: I1 →I2 ^ I5

– confianza = sc{I1,I2,I5}/sc{I1} = 2/6 = 33%– R4 es rechazada.

● R5: I2 →I1 ^ I5– confianza = sc{I1,I2,I5}/{I2} = 2/7 = 29%– R5 es rechazada.

● R6: I5 →I1 ^ I2– confianza = sc{I1,I2,I5}/ {I5} = 2/2 = 100%– R6 es seleccionada.

● De esta manera se han encontrado 3 reglas fuertes de asociación.

21 de 67

Page 22: Tareas de la minería de datos: reglas de asociación y ...

Sobre el algoritmo● Parece ser muy caro

● Búsqueda por nivel.● K = el tamaño del itemset más grande.● Hace al menos K pasadas sobre los datos.● En la práctica, K es acotada (10). ● El algoritmo es muy rápido. Bajo algunas

condiciones, todas las reglas pueden ser encontradas en tiempo lineal.

● Escala en grandes conjuntos de datos.

22 de 67

Page 23: Tareas de la minería de datos: reglas de asociación y ...

Posibles métodos para mejorar la eficiencia de Apriori

● Conteo de elementos basado en tablas de dispersión (Hash): Un k-itemset cuya cuenta en su cubeta está por debajo de un umbral no puede ser frecuente.

● Reducción de transacciones: Una transacción que no contiene ningún k-itemset frecuente es inútil en rastreos subsiguientes.

● Particionamiento: Cualquier itemset que es potencialmente frecuente en una base de datos debe ser frecuente en al menos una partición de la base de datos.

23 de 67

Page 24: Tareas de la minería de datos: reglas de asociación y ...

Posibles métodos para mejorar la eficiencia de Apriori

● Muestreo: minar un subconjunto de los datos, menor umbral de apoyo y un método para determinar completitud.

● Conteo de itemset dinámico: agregar nuevos itemset candidatos solamente cuando todos sus subconjuntos son estimados frecuentes.

24 de 67

Page 25: Tareas de la minería de datos: reglas de asociación y ...

Implementación eficiente de Apriori● Recursion Pruning for the Apriori Algorithm

● Christian Borgelt.● 2nd Workshop of Frequent Item Set Mining

Implementations (FIMI 2004, Brighton, UK).● Efficient Implementations of Apriori and Eclat

● Christian Borgelt.● Workshop of Frequent Item Set Mining Implementations

(FIMI 2003, Melbourne, FL, USA).● Induction of Association Rules: Apriori Implementation

● Christian Borgelt and Rudolf Kruse● 15th Conference on Computational Statistics (Compstat

2002, Berlin, Germany), 395-400● Physica Verlag, Heidelberg, Germany 2002

25 de 67

Page 26: Tareas de la minería de datos: reglas de asociación y ...

Implementación eficiente de Apriori

26 de 67

● Árbol de prefijos:● Organiza los conteos de itemset.● Utiliza poca memoria.● Permite procesar las transacciones.● Permite generar las reglas.● Cada nodo nS denota un contador para un itemset

S.

Page 27: Tareas de la minería de datos: reglas de asociación y ...

Implementación eficiente de Apriori

27 de 67

Page 28: Tareas de la minería de datos: reglas de asociación y ...

Implementación eficiente Apriori● Organización de los nodos:

● Posibilidades:– Vector de enteros:

● Eficiente en espacio (elementos implícitos en el índice).● Eficiente para encontrar el contador de un elemento.● Desventaja en que requiere tener espacio para elementos que

tal vez sea infrecuentes pues el vector no puede tener vacíos o espacios. Esto se puede mitigar parcialmente guardando el índice del elemento inicial y un desplazamiento (con lo cual se eliminan elementos infrecuentes en el margen).

– Vector de estructuras:● Identificador del elemento y contador.● Es ventajoso porque sólo se representan los elementos que se

requieren.● Es desventajoso porque requiere de memoria extra y requiere

de búsqueda binaria.

28 de 67

Page 29: Tareas de la minería de datos: reglas de asociación y ...

Implementación eficiente Apriori● Organización de los nodos:

● Posibilidades:– Tabla de dispersión por nodo:

● Reduce el tiempo de acceso.● Sin embargo, aumenta la memoria requerida (una tabla para que

sea óptima no puede estar demasiado llena).● No permite explotar el orden de los elementos.

● Obviamente, para optimizar velocidad se debe utilizar vectores simples a pesar de los “huecos”.

● Para optimizar espacio se puede escoger otra.

29 de 67

Page 30: Tareas de la minería de datos: reglas de asociación y ...

Implementación eficiente de Apriori● Organización de los nodos:

● Se necesita un conjunto de punteros a nodos hijos.– No se deben crear antes de que se necesiten.

● Para estos punteros se tienen las mismas opciones que para organizar los contadores.

● Si los contadores tienen identificadores asociados es posible utilizar el mismo orden de los elementos y dejar los punteros en nulo si no se necesitan. Puede ahorrar memoria pero pueden haber muchos nulos.

30 de 67

Page 31: Tareas de la minería de datos: reglas de asociación y ...

Implementación eficiente de Apriori● Codificación de los elementos:

● Es claro que la manera en que se codifican los elementos (enteros) puede tener un impacto en el problema de los “huecos” o espacios.

● Una heurística interesante puede ser ordenar los elementos por frecuencia. Así, si se utiliza la representación desplazamiento/tamaño, los “huecos” podrían encontrarse en los márgenes del vector.

31 de 67

Page 32: Tareas de la minería de datos: reglas de asociación y ...

Implementación eficiente de Apriori● Conteo recursivo:

● Si se ordenan los elementos en la transacción con respecto a sus identificadores, entonces procesar una transacción es un procedimiento doblemente recursivo:1.Se va al hijo correspondiente al primer elemento en la

transacción y se procesa el restante de la transacción para ese hijo.

2.Se descarta el primer elemento en la transacción y se procesa recursivamente para ese nodo.

● En un nodo del nivel que se está construyendo no se va a un nodo hijo, sino que se incrementan los contadores.

32 de 67

Page 33: Tareas de la minería de datos: reglas de asociación y ...

Implementación eficiente de Apriori● Representación de las transacciones:

● También es posible representar las transacciones por medio de un árbol de prefijos y hacer operaciones en bloques (prefijos).

● Hay una ganancia de rendimiento en el hecho de que sólo se hace una vez la operación el prefijo.

● Por supuesto, la ganancia debe ser mayor al costo de construir un árbol de prefijos para las transacciones.

33 de 67

Page 34: Tareas de la minería de datos: reglas de asociación y ...

Representación de las transacciones

34 de 67

Page 35: Tareas de la minería de datos: reglas de asociación y ...

Patrones secuenciales

Page 36: Tareas de la minería de datos: reglas de asociación y ...

Patrones secuenciales

● La minería de patrones secuenciales es la minería de patrones que ocurren frecuentemente relacionados al tiempo u a otras secuencias. Un ejemplo de patrón secuencial es “Un cliente que compra una computadora personal Pentium nueve meses antes probablemente comprará un chip de CPU nuevo en un mes”.

36 de 67

Page 37: Tareas de la minería de datos: reglas de asociación y ...

Patrones secuenciales: aplicaciones● Aplicaciones de la minería de patrones

secuenciales● Secuencias de compra del cliente:

– Primero compra computador, luego CD-ROM y por último una cámara digital, en 3 meses.

● Tratamientos médicos, desastres naturales (e.g., terremotos), procesos de la ingeniería y las ciencias, mercados y valores, etc.

● Patrones de llamadas telefónicas, flujos de navegación en el Web

● Estructuras de ADN y genes

37 de 67

Page 38: Tareas de la minería de datos: reglas de asociación y ...

Patrones secuenciales

● Es similar a la minería de itemset frecuentes, pero con una consideración de orden.

38 de 67

Page 39: Tareas de la minería de datos: reglas de asociación y ...

39

Algoritmos para minería de patrones secuenciales

● Enfoques basados en Apriori● GSP (Generalized Sequential Patterns)● SPADE

● Enfoques basados en crecimiento de patrones● FreeSpan● PrefixSpan

39 de 67

Page 40: Tareas de la minería de datos: reglas de asociación y ...

40

El algoritmo GSP● Tomar las secuencias de la forma <x> como

candidatos tamaño-1● Rastrear la base de datos una vez, encontrar F1, el

conjunto de patrones secuenciales tamaño-1● Sea k=1; mientras Fk no esté vacío haga

● Forme Ck+1, el conjunto de candidatos tamaño-(k+1) de Fk;● Si Ck+1 no está vacío, rastree la base de datos una vez,

encuentre Fk+1, el conjunto de patrones secuenciales tamaño-(k+1);

● Sea k=k+1;

40 de 67

Page 41: Tareas de la minería de datos: reglas de asociación y ...

GSP

41 de 67

Page 42: Tareas de la minería de datos: reglas de asociación y ...

GSP

42 de 67

Page 43: Tareas de la minería de datos: reglas de asociación y ...

GSP

43 de 6743 de 67

Page 44: Tareas de la minería de datos: reglas de asociación y ...

GSP

44 de 6744 de 67

Page 45: Tareas de la minería de datos: reglas de asociación y ...

GSP

45 de 67

Page 46: Tareas de la minería de datos: reglas de asociación y ...

GSP: Ejemplo

46 de 67

Page 47: Tareas de la minería de datos: reglas de asociación y ...

GSP: Ejemplo

47 de 67

Page 48: Tareas de la minería de datos: reglas de asociación y ...

GSP: Ejemplo

48 de 67

Page 49: Tareas de la minería de datos: reglas de asociación y ...

GSP: Ejemplo

49 de 67

Page 50: Tareas de la minería de datos: reglas de asociación y ...

GSP: Ejemplo

50 de 67

Page 51: Tareas de la minería de datos: reglas de asociación y ...

Patrones secuenciales en lógica temporal

Page 52: Tareas de la minería de datos: reglas de asociación y ...

Patrones secuenciales en lógica temporal

● Transacciones de compra:● Los artículos en s

i son comprados en el tiempo ti,

donde t1 < t2 < … < tn.● pj

k (k = 1, …, n) son las variables proposicionales que representan los artículos en el conjunto sj.

● Un patrón será una fórmula: s1 ˄ <F> (s2 ˄ <F> (s3 ˄ <F> (… ˄ <F> sn)...)), donde sj es la fórmula (pj

1 ˄ pj2 ˄ … pj

nj )

● Otros dominios:● Cambiar artículos por síntomas, eventos u otros.

52 de 67

Page 53: Tareas de la minería de datos: reglas de asociación y ...

Programación lógica temporal

53 de 67

Page 54: Tareas de la minería de datos: reglas de asociación y ...

Programación lógica temporal

54 de 67

Page 55: Tareas de la minería de datos: reglas de asociación y ...

Programación lógica temporal

55 de 67

Page 56: Tareas de la minería de datos: reglas de asociación y ...

Algoritmo de detección de patrones usando lógica temporal

56 de 67

Page 57: Tareas de la minería de datos: reglas de asociación y ...

Algoritmo de detección de patrones usando lógica temporal

57 de 67

Page 58: Tareas de la minería de datos: reglas de asociación y ...

Algoritmo de detección de patrones usando lógica temporal

58 de 67

Page 59: Tareas de la minería de datos: reglas de asociación y ...

Ejemplo: datos

59 de 67

Page 60: Tareas de la minería de datos: reglas de asociación y ...

Ejemplo: paso 1

Page 61: Tareas de la minería de datos: reglas de asociación y ...

Ejemplo: paso 2

Page 62: Tareas de la minería de datos: reglas de asociación y ...

Ejemplo: paso 3

Page 63: Tareas de la minería de datos: reglas de asociación y ...

Ejemplo: paso 3

Page 64: Tareas de la minería de datos: reglas de asociación y ...

Ejemplo: paso 3

Page 65: Tareas de la minería de datos: reglas de asociación y ...

Ejemplo: paso 4

Page 66: Tareas de la minería de datos: reglas de asociación y ...

Implementación

66 de 67

Page 67: Tareas de la minería de datos: reglas de asociación y ...

¡Gracias por su atención!

¿Preguntas?