Tengo muchos datos de clientes. ¿Qué algoritmos de aprendizaje automático serían mejores para predecir qué productos desea comprar cada cliente?

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:

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.

More Interesting

Karpathy mencionó durante una conferencia que es posible reemplazar la capa FC al final de una CNN con una capa de agrupación promedio. ¿Alguien lo ha intentado?

¿Qué es mejor para una implementación de juego de 20 preguntas, redes neuronales o árboles de decisión?

¿Cuándo y por qué un clasificador Bayes ingenuo es una opción mejor / peor que un clasificador forestal aleatorio?

¿Qué tan difícil es entrenar idiomas indios con CMUSphinx?

¿Cómo podemos interpretar el coeficiente para cierta variable independiente en regresión lineal simple y para el mismo en regresión lineal múltiple?

¿Cómo se puede diseñar la topología de una red neuronal artificial con una capa oculta para lograr efectivamente la reducción de la dimensionalidad?

¿Qué arquitectura / herramientas usan los gigantes tecnológicos como Facebook / Amazon / Apple / Microsoft para el análisis de big data / ML?

¿Es el cerebro humano una gran red neuronal o está formado por muchas redes neuronales más pequeñas?

Cómo ingresar a un programa de doctorado en la mejor escuela de EE. UU. En inteligencia artificial, visión artificial y aprendizaje automático

¿Qué es un núcleo universal en el contexto del aprendizaje automático?

¿Qué tipo de algoritmo de aprendizaje profundo utiliza IBM Watson para la clasificación del lenguaje natural? ¿Utiliza CNN o RNN?

Cómo construir un automóvil autónomo a partir de un automóvil normal

¿Quién ha explorado las aplicaciones del modelo Word2vec en datos que no sean lenguajes naturales?

¿Quién usa OpenNLP?

¿Cómo cambiará el aprendizaje automático la sociología?