Ich habe eine Reihe von Kundenprofilen in einem Elasticsearch- Cluster gespeichert . Diese Profile werden jetzt zum Erstellen von Zielgruppen für unsere E-Mail-Abonnements verwendet.
Zielgruppen werden jetzt manuell mithilfe von Facetten-Suchfunktionen für Elasticsearch gebildet (z. B. alle männlichen Kunden im Alter von 23 Jahren mit einem Auto und 3 Kindern).
Wie könnte ich automatisch nach interessanten Gruppen suchen - mithilfe von Data Science, maschinellem Lernen, Clustering oder etwas anderem?
Die Programmiersprache scheint ein gutes Werkzeug für diese Aufgabe zu sein, aber ich kann keine Methodik für eine solche Gruppensuche bilden. Eine Lösung besteht darin, die größten Kundencluster zu finden und sie als Zielgruppen zu verwenden. Die Frage lautet also:
Wie kann ich automatisch die größten Cluster ähnlicher Kunden auswählen (ähnlich nach Parametern, die ich derzeit nicht kenne)?
Beispiel: Mein Programm stellt eine Verbindung zur Elasticsearch her, verlagert Kundendaten in CSV und stellt mithilfe des R-Skripts fest, dass ein großer Teil der Kunden männlich und ohne Kinder ist und ein weiterer großer Teil der Kunden ein Auto hat und ihre Augenfarbe braun ist.
quelle
Antworten:
Ein Algorithmus, der hierfür verwendet werden kann, ist der k-means-Clustering-Algorithmus .
Grundsätzlich:
"Bis zur Konvergenz":
Es wird empfohlen, diesen Algorithmus mehrmals zu wiederholen und dann das Ergebnis auszuwählen, das die Abstände zwischen den Punkten jedes Clusters i und dem Zentrum m_i minimiert.
Natürlich muss man k kennen, um hier anfangen zu können. Sie können diesen Parameter jedoch mithilfe der Kreuzvalidierung auswählen.
quelle