Tengo un montón de perfiles de clientes almacenados en un clúster de Elasticsearch . Estos perfiles ahora se utilizan para la creación de grupos objetivo para nuestras suscripciones de correo electrónico.
Los grupos objetivo ahora se forman manualmente usando las capacidades de búsqueda facetada de búsqueda elástica (como obtener todos los clientes masculinos de 23 años con un automóvil y 3 niños).
¿Cómo podría buscar grupos interesantes automáticamente , usando ciencia de datos, aprendizaje automático, agrupación u otra cosa?
r El lenguaje de programación parece ser una buena herramienta para esta tarea, pero no puedo formar una metodología de búsqueda grupal. Una solución es encontrar de alguna manera los grupos más grandes de clientes y usarlos como grupos objetivo, por lo que la pregunta es:
¿Cómo puedo elegir automáticamente los grupos más grandes de clientes similares (similares por parámetros que no conozco en este momento)?
Por ejemplo: mi programa se conectará a Elasticsearch, descargará los datos de los clientes a CSV y utilizará el script de lenguaje R para descubrir que una gran parte de los clientes son hombres sin hijos y otra gran parte de los clientes tiene un automóvil y su color de ojos es marrón.
fuente
Respuestas:
Un algoritmo que se puede usar para esto es el algoritmo de agrupación k-means .
Básicamente:
"Hasta la convergencia":
Es una buena práctica repetir este algoritmo varias veces, luego elegir el resultado que minimice las distancias entre los puntos de cada grupo i y el centro m_i.
Por supuesto, debes saber k para comenzar aquí; Sin embargo, puede utilizar la validación cruzada para elegir este parámetro.
fuente