Saltar al contenido
Aprendizaje Automático No Supervisado

Aprendizaje de reglas de asociación

Introducción

El aprendizaje de reglas de asociación es una técnica utilizada en el aprendizaje automático no supervisado que tiene como objetivo descubrir patrones interesantes en conjuntos de datos. A menudo se utiliza en la minería de datos, ciencias sociales y comercio electrónico para encontrar relaciones entre diferentes elementos.

En términos simples, el aprendizaje de reglas de asociación consiste en encontrar asociaciones entre diferentes elementos en un conjunto de datos. Por ejemplo, si un usuario compra un determinado producto en un sitio web, ¿qué otros productos son propensos a comprar en consecuencia? En este caso, el aprendizaje de reglas de asociación podría identificar patrones entre los productos comprados por el usuario y generar recomendaciones de compras adicionales. El algoritmo más común utilizado para la minería de reglas de asociación es el algoritmo Apriori. Este algoritmo analiza conjuntos de datos de transacciones y encuentra patrones de compra comunes que pueden ser utilizados para generar recomendaciones o para ayudar a los analistas a identificar patrones y tendencias en los datos.

Resumen

El aprendizaje de reglas de asociación es una técnica de aprendizaje automático no supervisado utilizada para descubrir patrones o relaciones entre los diferentes elementos o atributos en un conjunto de datos transaccionales. Esta técnica se utiliza ampliamente en el análisis de cesta de la compra y en el marketing para descubrir patrones de compra y preferencias de los clientes. El aprendizaje de reglas de asociación se basa en la identificación de elementos que aparecen con frecuencia juntos en un conjunto de transacciones.

A partir de esta información, se pueden identificar patrones y establecer reglas. Por ejemplo, se puede determinar que si un cliente compra un producto A, es probable que también compre el producto B. Estas reglas se construyen a partir de estadísticas como la frecuencia y la probabilidad. La medida más común para evaluar estas reglas es la medida de confianza, que indica qué tan probable es que un elemento aparezca junto con otro. Existen diferentes algoritmos para el aprendizaje de reglas de asociación, pero el más comúnmente utilizado es el algoritmo Apriori. Este algoritmo funciona detectando y eliminando rápidamente los elementos que no tienen suficiente soporte o frecuencia en el conjunto de datos. En resumen, el aprendizaje de reglas de asociación es una técnica poderosa para descubrir patrones y relaciones entre elementos en conjuntos de datos transaccionales.

Esto puede ser útil en una amplia gama de aplicaciones, como la gestión de inventario, el análisis de ventas y marketing y la identificación de patrones de comportamiento del consumidor.

Aplicación teórica

Un ejemplo práctico de aprendizaje de reglas de asociación podría ser en un supermercado. Imagina que tienes una gran cantidad de datos de las transacciones de los clientes, donde se registran los productos que compran. Con el aprendizaje de reglas de asociación, podrías descubrir patrones y relaciones en los productos que se compran juntos con frecuencia. Por ejemplo, podrías descubrir que hay una alta probabilidad de que los clientes que compran pan también compren mantequilla. De esta manera, puedes utilizar esta información para colocar los productos en la tienda de manera que aumentes las compras cruzadas y, por lo tanto, las ventas.

Otro ejemplo podrías ser en una plataforma de comercio electrónico, donde se recopilan datos de los productos que los usuarios han visto y comprado. Con el aprendizaje de reglas de asociación, puedes encontrar patrones de los productos que a los usuarios les gustan y que están relacionados, lo que puede ayudarte a recomendar productos relevantes a los usuarios en función de sus preferencias de compra.

Aplicación práctica

Ejemplo Práctico de Aprendizaje de Reglas de Asociación en Python

Un ejemplo práctico de aprendizaje de reglas de asociación en Python se puede realizar utilizando la biblioteca de Python mlxtend. Supongamos que tenemos una tabla con transacciones de una tienda donde cada fila representa una transacción y cada columna representa un producto. Para este ejemplo utilizaremos el siguiente conjunto de datos de compras de una tienda.

  Apples Beer Bread Butter Cheese
1 1 1 1 0 1
2 1 1 1 0 0
3 1 1 0 0 0
4 1 0 0 1 0
5 0 0 0 1 1

Para encontrar las reglas de asociación entre los productos, podemos utilizar la función apriori de la biblioteca mlxtend. Esta función devuelve un objeto DataFrame con las reglas de asociación, incluyendo la frecuencia absoluta (support), la confianza (confidence) y la medida de interés (por ejemplo, la elevación (lift)).


from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules
import pandas as pd

data = pd.read_csv('ejemplo_compras.csv')
te = TransactionEncoder()
te_ary = te.fit(data).transform(data)
df = pd.DataFrame(te_ary, columns=te.columns_)
frequent_itemsets = apriori(df, min_support=0.6, use_colnames=True)
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1)
print(rules)

Para este ejemplo, estamos estableciendo un mínimo de soporte del 60% (min_support=0.6) y un mínimo de elevación de 1 (min_threshold=1). Los resultados para este conjunto de datos son:

lhs rhs support confidence lift
Cheese Beer 0.6 0.75 1.5
Beer Cheese 0.6 1 1.5

Esto indica que hay una alta confianza de que si alguien compra queso, también comprará cerveza, y viceversa, con una elevación moderada de 1.5.