Uno de mis algoritmos favoritos se basa en este problema, se llama Algoritmo Apriori. Nota rápida: técnicamente se trata de minería de datos y no de aprendizaje automático. El algoritmo hace exactamente lo que le pides, intenta predecir qué van a comprar los clientes.
Más formalmente, este problema se llama el problema de la cesta de la compra. Tenemos un montón de clientes, cada uno con una cesta. Llamémoslo una canasta de comestibles (el problema es de interés en supermercados y tiendas de compras porque a menudo la colocación de productos es importante y puede alentar a los clientes a comprar cosas que originalmente no tenían la intención de comprar). Por lo tanto, al supermercado le gustaría saber qué artículos se compran juntos y aún más las tendencias que dicen qué más puede comprar un cliente si compra un producto.
Entonces, ¿cómo funciona el algoritmo? Comencemos con algunos datos simulados:
- ¿Cuáles son algunas de las herramientas de procesamiento de lenguaje natural más comunes utilizadas por las grandes corporaciones minoristas?
- ¿Qué es el entorno de base de datos en una explicación simple con ejemplos?
- ¿Cuáles son las diferencias entre el enfoque basado en reglas y el enfoque de aprendizaje automático en el análisis de sentimientos?
- ¿Qué es el Tanimoto Score y cuándo se usa?
- ¿Cuál es una explicación intuitiva del algoritmo wake-sleep?
Persona 1: Huevos, Leche, Pan, Cereales, Azúcar
Persona 2: Leche, Cereal, Azúcar, Mantequilla de Maní, Gelatina, Espinacas, Champiñones
Persona 3: tocino, huevos, jugo de naranja, leche, salchicha
Persona 4: Salchicha, Salsa de Tomate, Pasta, Pan
Puede haber muchas más personas con sus propias canastas de comestibles, pero esto (con suerte) debería ser suficiente para transmitir el punto. Ahora comencemos el algoritmo. Necesitamos otra cosa, que es un umbral. El umbral es en cuántas listas debe aparecer un elemento para que se considere relevante. Para grandes conjuntos de listas, desea establecer esto lo suficientemente alto para que no obtenga cosas que no son populares pero lo suficientemente bajas como para no ignorar las cosas que podrían ser relevantes. Para este pequeño ejemplo, diré que el umbral es 2.
Primer paso, cuente cada elemento y vea en qué lista aparece cada elemento:
Huevos: {1, 3} – 2
Leche: {1, 2, 3} – 3
Pan: {1, 4} – 2
Cereal: {1, 2} – 2
Azúcar: {1, 2} – 2
Salchicha: {3, 4} – 2
Mantequilla de maní: {2} – 1
Jalea: {2} – 1
Espinacas: {2} – 1
Champiñones: {2} – 1
Tocino: {3} – 1
Jugo de Naranja: {3} – 1
Salsa de tomate: {4} – 1
Pasta: {4} – 1
Los artículos por encima del umbral son huevos, leche, pan, cereales, azúcar, salchichas y pan. Para aquellos elementos que superan el umbral, continuamos y decimos cuáles son los recuentos para los pares de elementos:
Huevos, leche: {1, 3} – 2
Huevos, pan: {1} – 1
Huevos, Cereal: {1} – 1
Huevos, Azúcar: {1} – 1
Huevos, Salchicha: {3} – 1
Leche, pan: {1} – 1
Leche, Salchicha: {3} – 1
Pan, Cereal: {1} – 1
Pan, Azúcar: {1} – 1
Pan, Salchicha: {4} – 1
Cereal, Salchicha: {} – 0
Azúcar, Salchicha: {} – 0
Ahora, los pares por encima del umbral son (Huevos, Leche), (Leche, Cereal), (Leche, Azúcar) y (Cereal, Azúcar). Echemos un vistazo a estos conjuntos en trillizos:
Huevos, Leche, Cereal: {1} – 1
Huevos, Leche, Azúcar: {1} – 1
Huevos, Cereal, Azúcar: {1} – 1
Leche, Cereal, Azúcar: {1, 2} – 2
Entonces, el único triplete por encima del umbral es (Leche, Cereal, Azúcar).
Ahora en la siguiente parte del algoritmo, las reglas de comportamiento. Dijimos que nos gustaría predecir el comportamiento de las personas en función de sus listas de compras. Lo que hemos visto son los ítems y las tuplas de ítems que comúnmente se compran juntos. ¿Cómo se relacionan estas tuplas de elementos entre sí?
Huevos, Leche, Pan, Cereales, Azúcar, Salchichas y Pan
(Huevos, Leche), (Leche, Cereal), (Leche, Azúcar) y (Cereal, Azúcar)
(Leche, Cereal, Azúcar)
Sabemos con qué frecuencia se compraron leche, cereales y azúcar. ¿Cómo se relaciona eso con la frecuencia con que se compraron (Leche, Cereal), (Leche, Azúcar), (Cereal, Azúcar) o Leche, Cereal o Azúcar individualmente?
Prob (Leche, Cereal, Azúcar) = 2/4
Prob (Leche, Cereal) = 2/4
Prob (Leche, Azúcar) = 2/4
Prob (Cereal, Azúcar) = 2/4
Prob (Leche) = 3/4
Prob (Pan) = 2/4
Prob (Cereal) = 2/4
Prob (azúcar) = 2/4
Entonces, si preguntamos la probabilidad de que una persona vaya a comprar Leche y Azúcar si vemos que están comprando Cereal, esa probabilidad estaría dada por Prob (Leche, Cereal, Azúcar) / Prob (Cereal) = (2/4) / (2/4) = 1.
Podemos escribir que la regla de asociación Cereal -> Leche, Azúcar tiene 100% de probabilidad.
¿Qué pasaría si viéramos que estaban comprando leche y quisiéramos preguntar qué tan probable es que también compren cereales y azúcar?
Prob (Leche, Cereal, Azúcar) / Prob (Leche) = (2/4) / (3/4) = (2/3).
Entonces podemos escribir que la regla de asociación Leche -> Cereal, Azúcar tiene un 66% de probabilidad.
Le animo a leer el artículo de Wikipedia sobre el algoritmo Apriori (algoritmo Apriori), así como el (Algoritmo Apriori) para obtener información adicional.