Aprendizaje de reglas de asociación: Ejemplos y Técnicas

Aprendizaje con reglas de asociación

El aprendizaje de reglas de asociación es una de las técnicas más comunes en la minería de datos, así como en el aprendizaje automático. El uso más común, que estoy seguro de que conoce, son los sistemas de recomendación utilizados por varias tiendas virtuales como Amazon, Flipkart, etc.

El aprendizaje de reglas de asociación es una técnica para descubrir la relación entre varios elementos, elementos o diversas variables en una base de datos muy grande. Construyendo una analogía con los ejemplos anteriores de e-shops, es la relación entre los diferentes elementos en el sitio web.

El aprendizaje de reglas de asociación nos dice que si un usuario compra, por ejemplo, un libro, qué tan probable es que compre otro libro, donde estos dos libros están relacionados porque otros usuarios los compraron a ambos. Déjame ser más claro al darte un ejemplo.

Supongamos que quiere aprender Scala, por lo que decide ir a Amazon y comprar el libro de Python. Cuando abres la página web y te desplazas un poco hacia abajo, ves esto:

 

Todos los libros en la imagen de arriba son recomendaciones para el usuario que actualmente está viendo el libro de python. Como puede ver claramente, la sección "Comprados juntos con frecuencia" consta del paquete, o conjunto de elementos, que muchos usuarios compraron, y la sección "Clientes que compraron este artículo también compraron" consiste en artículos que los usuarios compraron individualmente después o antes de comprar el libro.

Esto ha sido posible utilizando una base de datos muy grande y aprendizaje de reglas de asociación.

Entonces, como probablemente ya haya pensado, el aprendizaje de reglas de asociación consiste básicamente en descubrir reglas que asocian diferentes variables en una base de datos.

De Wikipedia:

El aprendizaje de reglas de asociación es un método de aprendizaje automático basado en reglas para descubrir relaciones interesantes entre variables en bases de datos grandes. Su objetivo es identificar reglas sólidas descubiertas en las bases de datos utilizando algunas medidas de interés.


Ahora la definición de aprendizaje de reglas de asociación es clara, pero ¿qué es esto "algunas medidas de interés"? Hablemos de eso ahora, usando un ejemplo.

 

Las transacciones de la foto son los artículos comprados por diferentes usuarios. Los libros son los libros que ha comprado el usuario. No confunda las transacciones aquí con el significado normal de las transacciones, donde una transacción significa una única instancia de compra por parte de un usuario. Aquí, una transacción representa un conjunto de libros comprados por diferentes personas en diferentes momentos o quizás al mismo tiempo.

Ahora, mirando los datos, podemos deducir fácilmente conjuntos de elementos como:

{Libro Python, Aprende SQL, Curso C++}

...y muchos más. Pero estos conjuntos de elementos en sí mismos no nos dicen mucho. Por ejemplo, podemos decir que libros de Python y SQL generalmente se compran juntos, y de manera similar, Curso C++ se compran juntas.

Pero en una base de datos muy grande, no estamos interesados ​​en todos los elementos que pueden extraerse de los datos, sino en los conjuntos de elementos que son de algún tipo de interés, tal vez desde una perspectiva comercial o desde otra perspectiva. Aquí viene el papel de las medidas de interés, que se analizan a continuación.

Soporte

El soporte nos dice qué tan frecuente es un elemento o un conjunto de elementos en todos los datos. Básicamente, nos dice qué tan popular es un conjunto de elementos en el conjunto de datos dado. Por ejemplo, en el conjunto de datos dado anteriormente, si miramos a Aprender Python, podemos calcular su soporte tomando la cantidad de transacciones en las que ha ocurrido y dividiéndola por el número total de transacciones.

Soporte {Aprende SQL} = 4/5
Soporte {Curso C++} = 2/5
Soporte {Curso C++, Aprende SQL} = 1/5

El soporte nos dice qué tan importante o interesante es un conjunto de elementos en función de su número de apariciones. Esta es una medida importante porque en datos reales, hay millones y miles de millones de registros, y trabajar en cada ítem no tiene sentido porque en millones de compras, si un sólo usuario compra dos libros no nos interesa.

Pero el soporte solo no es suficiente. Aunque es importante, por sí solo no nos dice las reglas que se necesitan para aprovechar esta gran cantidad de datos.

Hasta ahora, solo hemos analizado los conjuntos de elementos extraídos del conjunto de datos dado, pero una regla es algo diferente. No es solo una colección de libros comprados juntos por un usuario, sino que también nos dice cómo se relacionan esos libros.

Confianza

Una regla consta de dos partes: antecedente y consecuencia. Por ejemplo, en Apreder Python -> Aprede SQL, Aprender Python es un antecedente y Aprender SQL es consecuente. La confianza nos dice qué tan probable es un consecuente cuando ha ocurrido el antecedente. Haciéndolo de forma análoga a la regla anterior, ¿qué probabilidad hay de que alguien compre un libro de Python cuando ya ha comprado uno de SQL?

La confianza se calcula utilizando valores de soporte, de esta manera:

 

Si un elemento es frecuente en un conjunto de datos, entonces hay una alta probabilidad de que una transacción de un elemento menos frecuente contenga el elemento más frecuente, inflando así la confianza. Podemos superar esto al dividir el soporte del conjunto de elementos con el producto del soporte de todos los elementos presentes en el conjunto de elementos para evitar que haya sido sólo una coincidencia. Esto se conoce como levantamiento.

Levantamiento

Levantamiento nos dice qué tan probable es el consecuente cuando el antecedente ya ha ocurrido, teniendo en cuenta el soporte de ambos antecedentes y consecuentes.

Usando estas medidas, se han implementado varios algoritmos para encontrar las reglas de asociación desde una base de datos, como apriori y FP-growth.