J'ai un tas de profils clients stockés dans un cluster elasticsearch . Ces profils sont désormais utilisés pour la création de groupes cibles pour nos abonnements par e-mail.
Les groupes cibles sont désormais formés manuellement à l'aide des capacités de recherche à facettes d'elasticsearch (comme obtenir tous les hommes de 23 ans avec une voiture et 3 enfants).
Comment puis-je rechercher automatiquement des groupes intéressants - en utilisant la science des données, l'apprentissage automatique, le clustering ou autre chose?
Le langage de programmation semble être un bon outil pour cette tâche, mais je ne peux pas former une méthodologie d'une telle recherche de groupe. Une solution consiste à trouver en quelque sorte les plus grands clusters de clients et à les utiliser comme groupes cibles, la question est donc:
Comment puis-je choisir automatiquement les plus grands clusters de clients similaires (similaires par des paramètres que je ne connais pas en ce moment)?
Par exemple: mon programme se connectera à elasticsearch, déchargera les données client au format CSV et en utilisant le script de langage R, une grande partie des clients sont des hommes sans enfants et une autre grande partie des clients ont une voiture et la couleur de leurs yeux est brune.
la source
Réponses:
Un algorithme qui peut être utilisé pour cela est l' algorithme de clustering k-means .
Fondamentalement:
"Jusqu'à la convergence":
Il est recommandé de répéter cet algorithme plusieurs fois, puis de choisir le résultat qui minimise les distances entre les points de chaque cluster i et le centre m_i.
Bien sûr, vous devez connaître k pour commencer ici; vous pouvez cependant utiliser la validation croisée pour choisir ce paramètre.
la source