sábado, 15 de enero de 2011

1.3 Encontrando relaciones ocultas en los datos


Aplicación de reglas de asociación.
DCC. Dafne Rosso Pelayo
La inteligencia de negocio en la empresa, sólo puede lograrse mediante la adopción de medidas para alcanzarla.


Cuando buscamos información sobre inteligencia de negocios o minería de datos, solemos encontrarnos el ejemplo clásico de la cerveza y los pañales, el cuál comenta como una cadena de supermercado a través de la aplicación de minería de datos pudo encontrar ese patrón en su información de consumo, particular al género masculino y a esa cadena de supermercados.  
Es posible encontrar este tipo  de correlaciones o dependencias en los datos, empleando más de una técnica de minería de datos. En este artículo vamos a trabajar con una técnica  conocida como reglas de asociación.  Las reglas de asociación permiten descubrir patrones de comportamiento, indicando qué tipo de dependencias o  “reglas”  existen en nuestro caso  particular.  
Las reglas de asociación como decíamos, indican patrones de comportamiento, y son aplicables a cualquier tipo de dato de preferencia nominal (datos textuales). Para el tratamiento de datos numéricos es preferible otro tipo de algoritmos. Las reglas tanto del lado izquierdo o derecho pueden contener cualquier número de atributos o elementos. La siguiente tabla, muestra la estructura que presentan estas reglas.

Regla
Interpretación
Atributo 1  -> Atibuto 2

Cuando pasa el atributo 1 ocurre el atributo 2
Atributo 1  &  Atributo 2 - > Atributo 3
Cuando pasa el atributo 1 junto con el atributo 2  ocurre el atributo 3 (ej. cerveza & masculino -> pañales)

Atributo 3  & atributo x  &  Atributo z - > Atributo g
Cuando pasa el atributo 3 junto con el atributo x,  y junto con el atributo z  ocurre el atributo g


Tabla 1. Estructura de las reglas de asociación

Para determinar que tan exactas son las reglas generadas con algoritmos de minería de datos es necesario calcular una medida de cobertura y precisión. Estas medidas indican el grado con el que las reglas  soportan o representan a los datos. La cobertura se refiere al número de instancias del conjunto total de datos para los cuales la regla predice correctamente y la precisión o confianza es expresada como una proporción de las instancias a las que aplica. Por ejemplo para la regla (tipo 1 & tipo 2 -> tipo 3) tenemos 10 registros o instancias de un total de 25, que incluyen el producto Tipo 1 y el producto Tipo 2 y solo se encuentran 3 instancias en estas 10, que incluyen el producto Tipo 3 (además del Tipo 1 y Tipo 2). Entonces su cobertura es de 3 o bien (12 % = 3 / 25) y la precisión o confianza es de 3 / 10.
Para que podamos afirmar que la regla es válida debe de contar con una precisión y cobertura alta. Esto es, si y solo si la regla tiene una precisión y cobertura alta es una regla valida y puede ser aplicada al conjunto de datos.
Veamos cómo podemos obtener este tipo de reglas.  
Por dónde empezar
Para aplicar los algoritmos de minería de datos, es recomendable que el volumen de datos sobre el que se aplique sea grande. En proporción al giro y tamaño de la empresa deberá escoger un volumen de información que considere represente de manera adecuada el caso que va a analizar con la minería de datos. Debido a que los volúmenes de información tienden a ser muy grandes (imagínese el volumen de operación anual de cualquier cadena de supermercados, gasolineras, franquicia de hamburguesas  u otro comercio “global”),  se emplean herramientas de minería de datos que facilitan el proceso ya que sin ellas, sería prácticamente imposible realizarlo.
Pero no estamos hablando en este blog de esos casos, recordemos que en este blog en primer lugar estamos orientando las técnicas de sistemas inteligentes a las pymes y en segundo lugar hablamos de que no contamos con los recursos para pagar un licenciamiento de una suite de inteligencia de negocio. Procedamos con nuestro primer ejemplo paso a paso, posteriormente, en los siguientes artículos, trataremos el mismo caso y otros más complejos con herramientas de uso libre que podemos encontrar en la WEB.

Ejemplo de reglas de asociación.
Paso número uno
·         Prepare los datos que vamos a analizar.
Es sumamente importante antes de realizar un análisis de minería de datos, tener claras las siguientes preguntas ¿Qué tipo de datos tiene su empresa? y ¿Qué tipo de resultados quiere encontrar con la minería de datos? .  Ambas preguntas son muy importantes porque de eso depende el tipo de técnica,  algoritmo o método que deba de ser empleado en sus datos. Más adelante publicare un artículo con un compendio de tipos de datos vs.  tipos de análisis que se pueden realizar.
En este caso de ejemplo sobre reglas de asociación estamos buscando un patrón de consumo en una empresa que se dedica a la venta de artículos. Ud. puede fácilmente sustituir los campos por los que considere adecuados a su giro.
La siguiente tabla contiene un ejemplo de los productos vendidos en un periodo de tiempo y sus características.
Origen
Sexo
Precio
Tela
Producto
Importado
Hombre
 1000 - 3000
Algodón
Tipo 1
Nacional
Hombre
> 3000
Piel
Tipo 1
Importado
Hombre
> 3000
Piel
Tipo 1
Importado
Mujer
 1000 - 3000
Algodón
Tipo 1
Importado
Mujer
> 3000
Lino
Tipo 1
Nacional
Hombre
 1000 - 3000
Algodón
Tipo 2
Nacional
Mujer
> 3000
Lino
Tipo 2
Nacional
Mujer
 1000 - 3000
Piel
Tipo 2
                                                                Tabla 2. Ejemplo de conjunto de datos.
Paso número dos
·         Efectuamos el conteo de cada una de las instancias en donde aparece cada atributo.
Esto es un conteo simple de los elementos que tenemos en la base de datos que contienen al atributo en cuestión.
Conjunto de atributos
Origen
Sexo
Precio
Nacional
4
Hombre
4
> 3000
4
Importado
4
Mujer
4
1000 - 3000
4
Tela
Producto
Algodón
3
Tipo 1
5
Lino
2
Tipo 2
3
Piel
3

Paso número tres
·         Empezamos a combinar los atributos y verificar el número de instancias para las que son validas, se combinan los atributos de dos en dos, de tres en tres, hasta n-1 en n-1 atributos, donde n es el número de atributos, para este ejemplo n = 5, así que generaremos 4 conjuntos y verificaremos para cuantas instancias es válida la regla generada. Aquellas reglas que tengan una cobertura menor a 2 (< 2)  se eliminan.
Combinamos en pares los atributos del primer conjunto y verificamos  su cobertura, se muestra en rojo los menores de 2.

Conjunto de datos
Cobertura
Cobertura
Nacional
Hombre
2
Importado
Hombre
2
Nacional
Mujer
2
Importado
Mujer
2
Nacional
> 3000
2
Importado
> 3000
2
Nacional
1000 - 3000
2
Importado
1000 - 3000
2
Nacional
Algodón
1
Importado
Algodón
2
Nacional
Lino
1
Importado
Lino
1
Nacional
Piel
2
Importado
Piel
1
Nacional
Tipo 1
1
Importado
Tipo 1
4
Nacional
Tipo 2
3
Importado
Tipo 2
0
Hombre
> 3000
2
Mujer
> 3000
2
Hombre
1000 - 3000
2
Mujer
1000 - 3000
2
Hombre
Algodón
2
Mujer
Algodón
1
Hombre
Lino
0
Mujer
Lino
2
Hombre
Piel
2
Mujer
Piel
1
Hombre
Tipo 1
3
Mujer
Tipo 1
2
Hombre
Tipo 2
1
Mujer
Tipo 2
2
> 3000
Algodón
0
1000 - 3000
Algodón
3
> 3000
Lino
2
1000 - 3000
Lino
0
> 3000
Piel
2
1000 - 3000
Piel
1
> 3000
Tipo 1
3
1000 - 3000
Tipo 1
2
> 3000
Tipo 2
1
1000 - 3000
Tipo 2
2
Algodón
Tipo 1
2
Lino
Tipo 1
1
Algodón
Tipo 2
1
Lino
Tipo 2
1
Piel
Tipo 1
2
Piel
Tipo 2
1




Conjunto de atributos (eliminando los que tienen cobertura <2)
Nacional
Hombre
2
Importado
Hombre
2
Nacional
Mujer
2
Importado
Mujer
2
Nacional
> 3000
2
Importado
> 3000
2
Nacional
1000 - 3000
2
Importado
1000 - 3000
2
Nacional
Piel
2
Importado
Algodón
2
Nacional
Tipo 2
3
Importado
Tipo 1
4
Hombre
> 3000
2
Mujer
> 3000
2
Hombre
1000 - 3000
2
Mujer
1000 - 3000
2
Hombre
Algodón
2
Mujer
Lino
2
Hombre
Piel
2
Mujer
Tipo 1
2
Hombre
Tipo 1
3
Mujer
Tipo 2
2
> 3000
Lino
2
1000 - 3000
Algodón
3
> 3000
Piel
2
1000 - 3000
Tipo 1
2
> 3000
Tipo 1
3
1000 - 3000
Tipo 2
2
Algodón
Tipo 1
2
Piel
Tipo 1
2


Para combinar los siguientes conjuntos, se toma cada conjunto de atributos anterior y se combina con los atributos restantes que no son del mismo tipo. Por ejemplo, para el siguiente conjunto de tres atributos:  Nacional- Hombre no se combina con Mujer porque Hombre y Mujer pertenecen al mismo atributo sexo.

Conjunto de atributos
Nacional-Hombre
> 3000
1
Importado-Hombre
> 3000
1
Nacional-Hombre
1000 - 3000
1
Importado-Hombre
1000 - 3000
1
Nacional-Hombre
Piel
1
Importado-Hombre
Algodón
1
Nacional-Hombre
Tipo 2
1
Importado-Hombre
Tipo 1
2
Nacional-Mujer
> 3000
1
Importado-Mujer
> 3000
1
Nacional-Mujer
1000 - 3000
1
Importado-Mujer
1000 - 3000
1
Nacional-Mujer
Piel
1
Importado-Mujer
Algodón
1
Nacional-Mujer
Tipo 2
0
Importado-Mujer
Tipo 1
2
Nacional-> 3000
Piel
1
Importado-> 3000
Algodón
0
Nacional-> 3000
Tipo 2
1
Importado-> 3000
Tipo 1
2
Nacional-1000 - 3000
Piel
1
Importado-1000 - 3000
Algodón
2
Nacional-1000 - 3000
Tipo 2
2
Importado-1000 - 3000
Tipo 1
2
Nacional-Piel
Tipo 2
1
Importado-Algodón
Tipo 1
2
Hombre-> 3000
Algodón
0
Mujer-> 3000
Lino
2
Hombre-> 3000
Piel
2
Mujer-> 3000
Tipo 1
1
Hombre-> 3000
Tipo 1
2
Mujer-> 3000
Tipo 2
1
Hombre-1000 - 3000
Algodón
2
Mujer-1000 - 3000
Lino
0
Hombre-1000 - 3000
Piel
0
Mujer-1000 - 3000
Tipo 1
1
Hombre-1000 - 3000
Tipo 1
1
Mujer-1000 - 3000
Tipo 2
1
Hombre-Algodón
Tipo 1
1
Mujer-Lino
Tipo 1
1
Hombre-Piel
Tipo 1
2
Mujer-Lino
Tipo 2
1
> 3000-Lino
Tipo 1
1
1000 - 3000-Algodón
Tipo 1
2
> 3000-Piel
Tipo 1
2
1000 - 3000-Algodón
Tipo 2
1

Conjunto de atributos (eliminando los que tienen cobertura < 2)
Nacional- 1000 - 3000-Tipo 2
2
Importado-Hombre-Tipo 1
2
Hombre-> 3000-Piel
2
Importado-Mujer-Tipo 1
2
Hombre-> 3000-Tipo 1
2
Importado-> 3000-Tipo 1
2
Hombre- 1000 - 3000-Algodón
2
Importado- 1000 - 3000-Algodón
2
Hombre-Piel-Tipo 1
2
Importado- 1000 - 3000-Tipo 1
2
> 3000-Piel-Tipo 1
2
Importado-Algodón-Tipo 1
2
Mujer-> 3000-Lino
2
 1000 - 3000-Algodón-Tipo 1
2

Conjunto de atributos
Hombre-> 3000-Piel
Tipo 1
2
Importado- 1000 - 3000-Algodón
Tipo 1
2

Este es el último conjunto posible y se obtiene de combinar las reglas marcadas en verde en el conjunto 3, ya que los otros atributos no se pueden combinar ya que sus conjuntos solo son de un elemento.
Paso número cuatro.

Se generan las reglas posibles del último conjunto de atributos obtenido.
REGLAS DE:   Hombre-> 3000-Piel
Tipo 1
cobertura
1
Sexo = Hombre & Precio = > 3000 & Tela = Piel -> Producto = Tipo 1
2/2
2
Sexo = Hombre & Precio = > 3000 & Producto = Tipo 1 -> Tela = Piel
2/2
3
Sexo = Hombre & Tela = Piel & Producto = Tipo 1 -> Precio = > 3000
2/2
4
Precio = > 3000  & Tela = Piel & Producto = Tipo 1 -> Sexo = Hombre
2/2
5
Sexo = Hombre & Precio = > 3000  -> Producto = Tipo 1 ,Tela = Piel
2/2
6
Sexo = Hombre & Tela = Piel  -> Producto = Tipo 1 , Precio = > 3000
2/2
7
Precio = > 3000 & Tela = Piel  -> Producto = Tipo 1 ,  Sexo = Hombre
2/2
8
Precio = > 3000 & Producto = Tipo 1  -> Tela = Piel ,  Sexo = Hombre
2/3
9
Sexo = Hombre &  Producto = Tipo 1  ->Tela = Piel, Precio = > 3000
2/3
10
Tela = Piel & Producto = Tipo 1  -> Precio = > 3000  ,  Sexo = Hombre
2/2
11
Sexo = Hombre   -> Producto = Tipo 1 ,Tela = Piel, Precio = > 3000
2/4
12
 Precio = > 3000  -> Producto = Tipo 1 ,Tela = Piel, Precio = > 3000,Sexo = Hombre
2/4
13
Tela = Piel  -> Producto = Tipo 1 ,Tela = Piel, Precio = > 3000.Sexo = Hombre 
2/3
14
 Producto = Tipo 1   -> Sexo = Hombre,Tela = Piel, Precio = > 3000
2/5
15
 -> Producto = Tipo 1 ,Tela = Piel, Precio = > 3000,Sexo = Hombre 
2/8

Interpretando un par de las reglas, tenemos que para esta empresa:
1.      Los hombres tienden a gastar más de 3000 en productos de piel y prefieren el producto tipo 1.
2.      Los hombres buscan el producto tipo 1 de piel y con un costo mayor a 3000 pesos.
Conclusiones
En este artículo, vimos como es posible generar patrones de consumo a partir de un conjunto de datos definido. El algoritmo en cuestión es extremadamente sencillo y fácil de implementar, sin embargo existen otros algoritmos para generar reglas de asociación.
Es factible implementar este algoritmo empleando hojas de cálculo, tablas pivote y macros que armen las combinaciones por nosotros, o si se cuenta con una base de datos con algunas consultas predefinidas también es factible su implementación.

El conjunto de reglas detectado, permite tomar decisiones sobre el número de artículos que fabricar, adquirir, tendencias de tipo , gustos del cliente, etc. Este tipo de análisis es útil tanto al fabricante y  al distribuidor, como al vendedor.
En el próximo articulo platicaremos sobre la preparación del conjunto de datos la cuál es completamente independiente de la herramienta que emplee, así cuente con la más poderosa suite de inteligencia de negocios, el paso de preparar la información es indispensable. Presentaremos también herramientas de uso libre con las cuales podemos obtener las reglas de asociación mucho más rápido.
Copyright © 2011 Dafne Rosso Pelayo. Todos los derechos reservados

2 comentarios:

Roberto Perez dijo...

Digamos que tenemos datos de n meses, y obtenemos las reglas que cumplen. Sin embargo, alguna puede ser productor del azar, o bien puede dejar de aplicar en el futuro. ¿Como actualizamos nuestras reglas? y ¿cómo podemos darle más énfasis a lo reciente que a lo antiguo de manera gradual?.

Rosso Pelayo Dafne, PhD dijo...

Gracias por colaborar en nuestro blog.
La precisión y cobertura de las reglas, permite identificar y descartar aquellas que no se aplican para la mayoría de los elementos en el conjunto de datos, un elemento ocurrido al azar es fácilmente descartable, sin embargo, si es posible que las reglas obtenidas el día de hoy dejen de ser validas en algunos casos, por ejemplo: Las crisis generan cambios en el patrón de consumo de los clientes ya que estos buscan productos substituto y eliminan ciertos gastos. Es importante tomar en cuenta que los análisis no deben de ser estáticos y generar estrategias apegadas al giro de la empresa para actualizarlos.