• No se han encontrado resultados

CAPÍTULO 2. ESTADO DE LA CUESTIÓN

2.2. Técnicas de Data Mining

2.2.1. Análisis de asociaciones

El análisis de asociaciones es una aproximación descriptiva para explorar datos que puede ayudar a identificar relaciones dentro de la gran cantidad de datos que tiene una base de datos (o un conjunto de bases de datos). Las dos aproximaciones más comunes para el análisis de datos son el descubrimiento (o búsqueda) de asociaciones y el descubrimiento (o búsqueda) de secuencias. El descubrimiento de asociaciones encuentra reglas de ítems que aparecen juntos en un determinado evento, como ocurre en las transacciones de compra de determinados productos, por ejemplo la compra de un martillo asociada a la compra de clavos. El descubrimiento de secuencias es muy similar; la única diferencia es que las asociaciones son relaciones en el tiempo.

Las asociaciones se representan de la siguiente manera: A  B, donde A se llama antecedente o parte izquierda, y B se llama consecuente o parte derecha.

Es fácil determinar la proporción de transacciones que contienen un ítem particular o un conjunto de ítems: simplemente contándolos. La frecuencia con la cual una asociación particular (por ejemplo, el conjunto de ―martillos y clavos‖) aparece en el conjunto de datos se denomina soporte. Si se decide que 15 transacciones de 1000 consisten en

―martillos y clavos‖, el soporte para esta asociación sería 1.5%. Además, el soporte debe indicar qué asociaciones no son importantes.

Sin embargo, para encontrar reglas útiles también se debe considerar la frecuencia relativa de los ítems o de sus combinaciones. Si se conoce el número de veces que ocurre A (el antecedente), ¿cuántas veces ocurre B?. Usando el ejemplo anterior, se podría realizar la siguiente pregunta: cuándo la gente compra un martillo, ¿cuántas veces compran clavos? Para dar respuesta a esta pregunta se dispone de la confianza de A  B: (frecuencia de A y B)/(frecuencia de A).

A continuación se muestra un ejemplo con más detalle para poder ilustrar mejor estos conceptos. En este ejemplo las especificaciones de lo que se encuentra en la base de datos son las siguientes:

Total de transacciones hardware: 1.000 Número de transacciones con ―martillo‖: 50 Número de transacciones con ―clavos‖: 80 Número de transacciones con ―madero‖: 20

Número de transacciones con ―martillo‖ y ―clavos‖: 15 Número de transacciones con ―clavos‖ y ―madero‖: 10 Número de transacciones con ―martillo‖ y ―madero‖: 10 Número de transacciones con ―martillo‖, ―clavos‖ y ―madero: 5

Calculando el soporte y la confianza se obtiene:

Soporte para ―martillo y clavos‖ = 1.5% (15/1.000) Soporte para ―martillo, clavos y madero‖ = 0.5% (5/1.000) Confianza de ―martillo  clavos‖ = 30% (15/50)

Confianza de ―clavos  martillo‖ = 19% (15/80)

Confianza de ―martillo y clavos  madero‖ = 33% (5/15) Confianza de ―madero  martillo y clavos‖ = 25% (5/20)

De esta manera se puede ver que la probabilidad de que una persona que compra un martillo, también compre clavos (30%) es mayor que la probabilidad de que una persona que compra clavos, también compre un martillo (19%). El soporte de la asociación

martillo-clavos (1.5%) se podría considerar que es suficiente para poder tomar esta regla como útil.

Los algoritmos de asociación encuentran reglas calculando, al mismo tiempo, la confianza y el soporte. Sin embargo cuando se realiza la búsqueda de todas las posibles reglas, se produce una explosión combinatoria que da como resultado una gran cantidad de reglas. Algunos algoritmos crean una base de datos de reglas, con factores de confianza y de soporte para que pueda ser consultada. De este modo se podría realizar la consulta: ―Muéstrame todas las asociaciones que tengan como consecuente ―clavos‖ y que tenga un factor de confianza del 30% y un soporte de 1% o más‖.

Las reglas de asociación son realmente descripciones de las relaciones existentes de un conjunto de datos en particular. Por tanto cuanto menos sesgados y más precisos sean los datos a tratar más veraces serán esas relaciones en el mundo real. Los métodos gráficos son también muy útiles para ver la estructura de las asociaciones. En la [Figura 2-2] los círculos representan un atributo y las líneas que los conectan representan una relación. Las líneas más gruesas representan relaciones más frecuentes o más fuertes.

Martillo 50 Clavos 80 Madero 20 15 10 10 5

Figura 2-2. Diagrama de asociaciones

La idea de utilizar reglas de asociación en grandes bases de datos fue de [Agrawal et al. 93b], mediante el algoritmo Apriori. Este algoritmo se basa en el conocimiento previo o ―a priori‖ de los conjuntos de valores frecuentes e indica que un subconjunto no vacío extraído a partir de un conjunto de valores frecuentes también resulta ser frecuente. El algoritmo utiliza recursividad por niveles a través de una aproximación bottom-up. En un primer paso se generan los candidatos y seguidamente los pone a prueba para descartar los conjuntos de valores no frecuentes. Por ejemplo, con k = 4, se supone que hay dos conjuntos de tamaño k − 1 tal que A  B  C y A  B  D generándose dos subconjuntos candidatos tal que A  B  C  D y A  B  D  C, los cuales deben

ser validados con los datos. El algoritmo finaliza cuando no se producen más subconjuntos candidatos.

A partir del algoritmo Apriori surgieron diversos métodos para buscar reglas de asociación [Agrawal et al. 94, Klemettinen et al. 94, Keith y Wai-Ho 97, Liu et al. 00, Blanchard et al. 05].

En el dominio temporal se incluye el parámetro tiempo dentro de la dimensionalidad de las reglas asociativas. En este dominio existen dos enfoques principales: el enfoque univariante, ampliamente estudiado y referenciado [Hoppner 03, Laxman y Sastry 06, Moerchen 06, Zhao y Bhowmick 03], y el enfoque multivariante, cuya óptica se centra en las relaciones entre conjuntos o bases de datos compuestas por diferentes series temporales [Bettini et al. 98, Casas-Garriga 03, Elfeky 00, Han et al. 99, Ozden et al. 98, Yang et al. 00]. En esta óptica destacan por un lado las relaciones intra-transaccionales (con ausencia de lapsos temporales) y por otro lado las relaciones inter-transaccionales (con restricciones temporales y presencia del parámetro tiempo en la definición de las reglas asociativas. Estas últimas representan en sí los nuevos retos y novedades dentro del campo de la minería de reglas asociativas aplicadas a series temporales y datos secuenciales.