Agrupación de datos de clientes almacenados en ElasticSearch


10

Tengo un montón de perfiles de clientes almacenados en un clúster de . 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?

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.


1
¿Qué quieres decir con "grupos interesantes"? ¿Tiene alguna lista de características importantes predefinidas?
Yatul

Los grupos interesantes son cualquier grupo de tamaño mayor que algún umbral y que sea mucho más grande que otros grupos posibles.
Konstantin V. Salikhov

1
No está claro cómo realizará los pasos de preparación de sus datos. Pero debe mirar los algoritmos descritos en en.wikipedia.org/wiki/Anomaly_detection . Si yo fuera usted, primero verifiqué el método SVM
yatul

He leído sobre SVM y creo que se trata más de la clasificación de datos recién creados después del entrenamiento manual sobre el conjunto de datos existente, no de agrupar datos existentes y encontrar grupos anormalmente grandes. Estoy en lo cierto? Si lo soy, este método no es lo que quiero.
Konstantin V. Salikhov

Respuestas:


6

Un algoritmo que se puede usar para esto es el algoritmo de agrupación k-means .

Básicamente:

  1. Elija aleatoriamente k puntos de datos de su conjunto, m_1, ..., m_k.
  2. "Hasta la convergencia":

    1. Asigne sus puntos de datos a k grupos, donde el grupo i es el conjunto de puntos para los cuales m_i es el más cercano de sus medios actuales
    2. Reemplace cada m_i por la media de todos los puntos asignados al grupo i.

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.