You are on page 1of 66

Anlisis de Asociaciones

Asociaciones

Establecer vnculos entre los registros Asociaciones (productos que se compran juntos) Patrones secuenciales (si se compra algo en una fecha en x meses se adquiere otro producto) Secuencias similares. Detecta fenmenos con comportamientos similares

Algoritmos de Asociacin

Algoritmo Apriori [Agrawal 93] Objetivo:

Obtener itemsets (conjuntos de valores que se repiten) de un determinado tamao, para combinarlos en reglas.

Algoritmos de Asociacin

Algoritmo

Apriori [Agrawal 93]

Ventajas:

Apriori y sus variantes son los ms usados dentro de este tipo de anlisis. Eficiencia para grandes volmenes de datos muy elevada. Ciertos SGBD son capaces de ejecutar este algoritmo dentro del ncleo del gestor.

Deficiencias:

Para ciertos datos de entrada, los resultados intermedios consumen gran cantidad de recursos (memoria).

Uso de taxonomas y valores virtuales

A veces es muy til disponer de generalizaciones o agrupaciones de los productos que se estn considerando Eligiendo de manera inteligente el nivel al que generalizar se pueden mejorar los resultados Para establecer hbitos de los clientes (productos bajos en caloras,...) se pueden insertar productos virtuales y analizar las asociaciones que los contengan.

Generacin de reglas

A veces las combinaciones obtenidas pueden ser de utilidad y se pueden obtener reglas que pueden ser interesantes. Las reglas de asociacin toman la forma:

Si condicin entonces resultado

donde tanto la condicin como el resultado son combinaciones disjuntas de productos Hay que establecer parmetros para medir la bondad de las reglas

Data Mining

Reglas de asociacin Dado un conjunto de registros, encontrar reglas que predicen la ocurrencia de un tem, basndose en las ocurrencias de otros tems en el registro

Algoritmos de Asociacin: Apriori

I1={a

,a2 ,a3 ,...} conjunto de todos los atributos. i=1 1) Se recorre la tabla de entrada y se actualiza el conjunto
1

Li={l1 ,l2 ,l3 ,...} donde cada li es el par formado por un elemento de Ii y por el nmero de veces que dicho elemento ocurre en los datos de entrada.

Algoritmos de Asociacin

2) Se eliminan de Li los elementos cuyo contador no supere el umbral mnimo. 3) Se genera un nuevo conjunto Li+1 como el de grupos de atributos de tamao i+1 a partir de los conjuntos de atributos de Li 4) Si Li no est vaco e i <MAX regresar a 1)

Data Mining

Market-Basket transaction

TID 1 2 3 4 5

Items Bread, Milk Bread, Diaper, Beer, Eggs Milk, Diaper, Beer, Coke Bread, Milk, Diaper, Beer Bread, Milk, Diaper, Coke

Data Mining

Market-Basket analysis

Reglas de asociacin

Importancia Conocer la relacin entre un conjunto de datos, por ejemplo, la temperatura, el clima y la aparicin de una enfermedad Tomar decisiones estratgicas en un negocio; ubicacin de productos en un supermercado

Reglas de asociacin

Estructura de las reglas P1 P2 P3 Pm C1 C2 ... Cn donde cada Pi es el antecedente de la regla y cada Cj es el consecuente

Reglas de asociacin

Estructura de las reglas: ejemplos

computer financial_management_software temperature =high humidity = normal age(x,3039) income(x,42K48K) buys(x, high resolution TV)

Reglas de asociacin

Medidas
Personal_computer Printer Laptop_computer Digital_camera Cul de las reglas es ms significativa? Con qu certeza se puede asegurar la regla en un conjunto de datos?

Reglas de asociacin

Medidas
Soporte(AB)= P(AB) Confianza(AB)= P(B|A)

Calidad de las reglas (I)

Soporte: es el porcentaje de transacciones que contienen tanto la condicin como el resultado. Esto es, porcentaje de transacciones donde la regla es cierta Confianza: es el porcentaje de transacciones que conteniendo la condicin tambin contienen el resultado. Es decir es la probabilidad de que se encuentre el resultado dada la condicin

17

Reglas de Asociacin

Reglas de Asociacin

Reglas de asociacin

Medidas
Soporte(XY)=P(XY) Confianza(XY)=P(Y|X)

X X X X X X W W

Y Y Y Z Z Z X Y

Reglas de asociacin

Conversin de datos Cada tem se representa por medio de un identificador Tambin se utiliza una tabla de valores booleanos para representar cada transaccin

TID List of Item T100 milk, eggs, bread T200 T300 T400 T500 T600 T700 T800 T900 eggs, beer eggs, coke milk, eggs, beer milk, coke egs, coke milk, coke milk, eggs, coke, bread milk, eggs, coke

Milk=I1 Eggs=I2 Coke=I3 Beer=I4 Bread=I5


Se asignan identificadores a cada tem

TID T100 T200 T300 T400 T500 T600 T700 T800 T900

List of Item I1, I2, I5 I2, I4 I2, I3 I1, I2, I4 I1, I3 I2, I3 I1, I3 I1, I2, I3, I5 I1, I2, I3

Milk=I1 Eggs=I2 Coke=I3 Beer=I4 Bread=I5

Reglas de asociacin

Generalidades de los algoritmos para identificar reglas de asociacin


Encontrar los itemsets frecuentes, esto es, aquellos conjuntos de items que se dan ms de una cantidad dada de veces, conocida como minimum support count Generar reglas de asociacin a partir de los itemsets frecuentes

Reglas de asociacin

Es el itemset {milk, coke} frecuente?. Considere un support count de 2

TID List of Item T100 milk, eggs, bread T200 T300 T400 T500 T600 T700 eggs, beer eggs, coke milk, eggs, beer milk, coke egs, coke milk, eggs, coke

Reglas de asociacin

Algoritmo Apriori: Propiedad Apriori


Sea {milk, beer, bread} un itemset frecuente, entonces {milk, beer}, {milk, bread} y {beer, bread} deben ser tambin itemsets frecuentes

Reglas de asociacin

Algoritmo Apriori
Calcula itemsets frecuentes usando generacin de candidatos Solo se generan aquellos itemsets candidatos que cumplan la propiedad Entrada: minimum support count + transacciones Salida: itemsets frecuentes del tamao ms grande posible + frecuencia para cada itemset

TID T100 T200 T300 T400 T500 T600 T700 T800 T900

List of Item I1, I2, I5 I2, I4 I2, I3 I1, I2, I4 I1, I3 I2, I3 I1, I3 I1, I2, I3, I5 I1, I2, I3

Minimum support count=2

C1

Scan DB for count of each candidate

Itemset {I1} {I2} {I3} {I4} {I5}

Sup count
Compare support

C1

Scan DB for count of each candidate

Itemset {I1} {I2} {I3} {I4} {I5}

Sup count 6 7 6 2 2

Compare support

C1

Scan DB for count of each candidate

Itemset {I1} {I2} {I3} {I4} {I5}

Sup count 6 7 6 2 2

Compare support

C1: candidatos de tamao 1

C1

Scan DB for count of each candidate

Itemset {I1} {I2} {I3} {I4} {I5}

Sup count 6 7 6 2 2

Compare support

C1: candidatos de tamao 1

Los itemset que no cumplan con el soporte mnimo se eliminan

L1

Compare support

Itemset {I1} {I2} {I3} {I4} {I5}

Sup count 6 7 6 2 2

Generate C2

C2

Itemset

Generate C2

Scan DB for count of each candidate

Para generar C2 se hace el join de L1 con L1

C2

Itemset {I1,I2}
Generate C2

{I1.I3} {I1,I4} {I1,I5} {I2,I3} {I2,I4} {I2,I5} {I3,I4} {I3,I5} {I4,I5}

Scan DB for count of each candidate

Para generar C2 se hace el join de L1 con L1

TID T100 T200 T300 T400 T500 T600 T700 T800 T900

List of Item I1, I2, I5 I2, I4 I2, I3 I1, I2, I4 I1, I3 I2, I3 I1, I3 I1, I2, I3, I5 I1, I2, I3

C2

Itemset {I1,I2}
Scan DB for count of each candidate

Sup count 4 4 1 2 4 2 2 0 1 0
Compare support

{I1,I3} {I1,I4} {I1,I5} {I2,I3} {I2,I4} {I2,I5} {I3,I4} {I3,I5} {I4,I5}

L2

Compare support

Itemset {I1,I2} {I1,I3} {I1,I5} {I2,I3} {I2,I4} {I2,I5}

Sup count 4 4 2 4 2 2
Generate C3

C3

Generate C3

Itemset {I1,I2, I3} {I1.I2, I5}

Scan DB for count of each candidate

TID T100 T200 T300 T400 T500 T600 T700 T800 T900

List of Item I1, I2, I5 I2, I4 I2, I3 I1, I2, I4 I1, I3 I2, I3 I1, I3 I1, I2, I3, I5 I1, I2, I3

C3 Scan DB for count of each candidate

Itemset Sup count {I1,I2, I3} 2 {I1.I2, I5} 2

Compare support

L3

Compare support

Itemset Sup count {I1,I2, I3} 2 {I1.I2, I5} 2

Generate C4

Itemset {I1,I2, I3, I5}


El itemset {I2,I3,I5} no es frecuente

Reglas de asociacin

Algoritmo Apriori
Una vez determinadas las frecuencias para los itemsets frecuentes, establezca la regla sobre el conjunto y calcule el soporte y la confianza
support_count(AB)=# de transacciones que contienen A y B

confidence(AB)=support_count(AB) support_count(A)

Reglas de asociacin

Algoritmo Apriori
Considere el itemset frecuente {I1,I2,I5}, Cules son las reglas que se pueden generar? I1 I2I5 I1 I5I2 I2 I5I1 I1 I2 I5 I2 I1 I5 I5 I1 I2

Itemset Sup count {I1,I2, I3} 2 {I1.I2, I5} 2

Itemset {I1,I2} {I1,I3} {I1,I5} {I2,I3} {I2,I4} {I2,I5}

Sup count 4 4 2 4 2 2

Reglas de asociacin

Algoritmo Apriori
Considere el itemset frecuente {I1,I2,I5}, Cules son las reglas que se pueden generar? I1I2I5, confidence=2/4=50% I1I5I2 I2I5I1 I1I2I5 I2I1I5 I5I1I2

Reglas de asociacin

Algoritmo Apriori
Considere el itemset frecuente {I1,I2,I5}, Cules son las reglas que se pueden generar? I1I2I5, confidence=2/4=50% I1I5I2, confidence=2/2=100% I2I5I1, confidence=2/2=100% I1I2I5, confidence=2/6=33% I2I1I5, confidence=2/7=29% I5I1I2, confidence=2/2=100%

TID T100 T200 T300 T400 T500 T600 T700 T800

List of Item A, B, C C, D A, C A, B, D B, D B, C, D E, F D, E

Minimum support count=2

Reglas de asociacin

Mtodo FP-Growth
Frequent Parent Growth: Encuentra los itemsets frecuentes sin generar candidatos El resultado debe ser el mismo que con el algoritmo Apriori

Reglas de asociacin

Mtodo FP-Growth
Construccin del rbol FP-Tree Algoritmo FP-Growth

Reglas de asociacin

Construccin del rbol FP-Tree Calcular las frecuencias para los itemsets de tamao 1 Ordenar los items descendentemente, de acuerdo las frecuencias, en una lista llamada L

TID T100 T200 T300 T400 T500 T600 T700 T800 T900

List of Item I1, I2, I5 I2, I4 I2, I3 I1, I2, I4 I1, I3 I2, I3 I1, I3 I1, I2, I3, I5 I1, I2, I3

Item I2 I1 I3 I5 I4

Frequency 7 6 6 2 2

L=[I2:7 I1:6 I3=6 I4:2 I5:2 ]

Reglas de asociacin

Construccin del rbol FP-Tree Ordenar los items en cada transaccin en el orden dado por L

TID T100 T200 T300 T400 T500 T600 T700 T800 T900

List of Item I1, I2, I5 I2, I4 I2, I3 I1, I2, I4 I1, I3 I2, I3 I1, I3 I1, I2, I3, I5 I1, I2, I3

TID T100 T200 T300 T400 T500 T600 T700 T800 T900

List of Item I2, I1, I5 I2, I4 I2, I3 I2, I1, I4 I1, I3 I2, I3 I1, I3 I2, I1, I3, I5 I2, I1, I3

L=[I2:7 I1:6 I3=6 I4:2 I5:2 ]

Reglas de asociacin

Construccin del rbol FP-Tree Crear el nodo raz del rbol con la etiqueta null o {} Construya el rbol con base en la lista de items ordenados

TID T100 T200 T300 T400 T500 T600 T700 T800 T900

List of Item I1, I2, I5 I2, I4 I2, I3 I1, I2, I4 I1, I3 I2, I3 I1, I3 I1, I2, I3, I5 I1, I2, I3

TID T100 T200 T300 T400 T500 T600 T700 T800 T900

List of Item I2, I1, I5 I2, I4 I2, I3 I2, I1, I4 I1, I3 I2, I3 I1, I3 I2, I1, I3, I5 I2, I1, I3

L=[I2:7 I1:6 I3=6 I4:2 I5:2 ]

null{} I2:7 I1:2

I1:4 I4:1 I3:2 I5:1 I4:1 I5:1 I3:2

I3:2

TID T100 T200 T300 T400 T500 T600 T700 T800 T900

List of Item I1, I2, I5 I2, I4 I2, I3 I1, I2, I4 I1, I3 I2, I3 I1, I3 I1, I2, I3, I5 I1, I2, I3

Itemset {I1,I2} {I1,I3} {I1,I5} {I2,I3} {I2,I4} {I2,I5}

Sup count 4 4 2 4 2 2

Reglas de asociacin

Algoritmo FP-Growth Para cada item se determina su conditional pattern base Se crea un rbol FP con los elementos de cada base que cumplan con el minimum support count

Conditional pattern bases

Item I2 I1 I3 I5 I4

Condition Pattern Base I2:4 I2 I1:2, I2:2, I1:2 I2 I1 I3:1, I2 I1:1 I2 I1:1, I2:1

Conditional pattern bases

Item I2 I1 I3 I5 I4
null{}

Condition Pattern Base I2:4 I2 I1:2, I2:2, I1:2 I2 I1 I3:1, I2 I1:1 I2 I1:1, I2:1
Como I2:4 pasa el soporte mnimo, se asigna la frecuencia 4 al itemset I2 I1, esto es, I2 I1:4

I2:4

Conditional pattern bases

Item I2 I1 I3 I5 I4
null{} I2:4 I1:2 I1:2

Condition Pattern Base I2:4 I2 I1:2, I2:2, I1:2 I2 I1 I3:1, I2.I1:1 I2 I1:1, I2:1
Genera los itemsets: I2 I3: 4 I2 I1 I3:2 I1 I3: 2

You might also like