Está en la página 1de 8

Reglas de Asociación con Python

Tratamiento Inteligente de Datos

Práctica 4 - Reglas de Asociación

Máster Universitario en Ingenierı́a Informática

Autor
Vı́ctor Machado Fernández

E.T.S. de Ingenierı́as Informática y de Telecomunicación



Granada, a 27 de Enero de 2023
Índice
1. Problema Planteado: Reglas de Asociación sobre Datos de la Compra 2

2. Explicación del Código y Algoritmo A Priori 2


2.1. Importaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2. Carga de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3. Frecuencia de los datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.4. Funcionamiento del Algoritmo A Priori . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.5. Implementación del Algoritmo A Priori . . . . . . . . . . . . . . . . . . . . . . . . . 4

3. Análisis de Resultados y Conclusiones 5

4. Intento con Frequent Pattern Growth 7

1
1. Problema Planteado: Reglas de Asociación sobre Datos de
la Compra
Considera el dataset en el fichero datos compras.csv, que contiene la cesta de la compra de
clientes de un supermercado. Realiza un estudio para determinar reglas de asociación que describan
correctamente las compras realizadas por los clientes. En base a los resultados obtenidos, ¿Qué estra-
tegias de marketing puede realizar el supermercado para incrementar las ventas? ¿Qué sugerencias
de compra se le pueden dar a ciertos cliente?

2. Explicación del Código y Algoritmo A Priori


2.1. Importaciones
Para poder utilizar el algoritmo A Priori y poder manejar los datos en dataframes, ası́ como
hacer su conversión a archivos csv se utilizan las siguientes importaciones:

2.2. Carga de datos


Para cargar los datos en un dataframe simplemente se debe ejecutar la siguiente sentencia:

2.3. Frecuencia de los datos


Para estudiar un poco los datos con los que estamos tratando vamos a observar qué tipos de
frecuencia tenemos para pensar qué puede significar esto una vez obtengamos las reglas de asocia-
ción, se ha implementado el siguiente fragmento para comprobar la frecuencia de los alimentos en
las compras:

Las frecuencias obtenidas de esto son las siguientes:

2
Se puede observar que el alimento más común es el agua mineral, por lo tanto, es probable que
aparezca en muchas de las reglas, ası́ como los espaguetis u otros alimentos y por contraparte, otros
como la crema, el spray de agua o los espárragos es muy poco probable que aparezcan (A no ser que
exista una relación muy directa entre ellos mismos y tengan una alta confianza).

2.4. Funcionamiento del Algoritmo A Priori


Apriori es un algoritmo de minerı́a de datos utilizado para descubrir patrones de asociación en
un conjunto de datos transaccionales que funciona de la siguiente manera:

Donde se debe calcular el soporte de cada conjunto de artı́culos individuales. El soporte es la


proporción de transacciones que contienen un conjunto de artı́culos determinado. Posteriormente
se generarán conjuntos de artı́culos frecuentes utilizando un umbral de soporte. Los conjuntos de
artı́culos que no cumplen con el umbral de soporte establecido se descartan y se generan reglas de
asociación a partir de los conjuntos de artı́culos frecuentes, las cuales indican la relación entre los
diferentes conjuntos de artı́culos.

En las reglas de asociación se utilizan tres medidas:

Confianza: es una medida de la relación entre un conjunto de artı́culos (antecedente) y otro


conjunto de artı́culos (consecuente). Se calcula como el número de transacciones en las que
ambos conjuntos de artı́culos aparecen dividido por el número de transacciones en las que
aparece el conjunto antecedente.
Lift: es una medida de la relación entre un conjunto de artı́culos (antecedente) y otro conjunto
de artı́culos (consecuente) en comparación con lo que se esperarı́a si ambos conjuntos de
artı́culos fueran independientes. Se calcula como la relación entre la confianza de la regla
y el soporte del conjunto consecuente.
Soporte: es el número de transacciones en las que aparece un conjunto de artı́culos dividido
por el número total de transacciones.

3
2.5. Implementación del Algoritmo A Priori
Inicialmente podemos observar el código de ejecución del algoritmo A Priori, el cuál produce un
conjunto de resultados que almacenaremos en una lista. Utilizamos algunos valores mı́nimos para
descartar reglas poco relevantes. El algoritmo se ha utilizado de la siguiente manera:

Esta es una función sencilla que transforma los resultados obtenidos en un conjunto de datos
para su mejor visualización:

Utilizando esta función anteriormente mencionada, podemos clasificar los datos en un dataframe
y de ese dataframe convertirlos en un archivo csv para su mejor tratamiento y estudio.

4
3. Análisis de Resultados y Conclusiones
Una vez obtenidos los datos en el archivo output.csv, se ha realizado una transformación directa
a un archivo excel adjuntado a esta documentación (ReglasAsociacionObtenidas.xlsx).

De este archivo podemos observar las reglas de asociación obtenidas y sacar algunas conclusiones,
si vemos las reglas tal cuál han sido generadas no podemos sacar ningunas conclusiones muy precisas:

Pero si las ordenamos por la confianza (Confidence), la cuál ya hemos explicado anteriormente,
podemos observar que aparecen algunas reglas de asociación muy similares, como por ejemplo mu-
chos antecedentes comunes como los spaghetti como se observa en la imagen, pero sucede también
con alimentos como la leche o la ternera picada, por lo que podemos considerar esos alimentos tan
comunes en las compras en relaciones importantes, como por ejemplo la presencia de agua o aceite
en compras con espaguetis para poner esos alimentos cerca en el supermercado y aumentar aún más
su compra.

Fijándonos en la siguiente imagen, podemos ver las reglas de mayor soporte, las cuales indican
relaciones más frecuentes de alimentos, por ejemplo, podemos observar que es muy frecuente com-
prar hierbas y pimienta cuando se compra carne picada, y otros vegetales, entonces podemos pensar

5
poner la sección de las especias cerca de la carne.

Debido a lo frecuente que es la compra del agua, y su alta aparición en las reglas (Debido a su
frecuencia), serı́a interesante ponerla de fácil acceso para aumentar su compra o ponerla junto a una
sección que tenga las ventas bajas para intentar incentivarlas.

En la siguiente imagen se observan las reglas de asociación con mayor Lift, donde podemos en-
contrar algunos incluso cercanos a 8, dándole algo de calidad a las reglas, ya que indica que existen
menos tipos de instancias donde el antecedente y el consecuente aparecen separados pudiendo ası́
establecer relaciones más fuertes como que quien compre agua mineral y leche, comprará con bas-
tante más probabilidad algunos vegetales congelados y sopa. Podemos comprobarlo en la figura:

En conclusión, se han obtenido algunas reglas de asociación con las que se pueden sacar conclu-
siones y realizar estudios sobre las compras de los clientes para obtener datos y mejorar los resultados
de las ventas. Con este tipo de algoritmos con otros conjuntos de datos se pueden estudiar muchas
asociaciones para saber más cosas y tratar las situaciones de otra manera.

6
4. Intento con Frequent Pattern Growth
He implementado el algoritmo FPGrowth (Un derivado de A Priori) en Python como se puede
ver en el siguiente fragmento de código:

Pero las reglas que se han obtenido no son nada claras y aportan valores muy extraños como lifts
superiores a 700 y cosas ası́, puede que haya habido algún error en la implementación del algoritmo.

Reglas de asociación obtenidas:

También podría gustarte