Saya memiliki banyak profil pelanggan yang disimpan dalam sebuah cluster elasticsearch . Profil ini sekarang digunakan untuk membuat grup target untuk langganan email kami.
Grup target sekarang dibentuk secara manual menggunakan kemampuan pencarian faceted elasticsearch (seperti dapatkan semua pelanggan pria berusia 23 tahun dengan satu mobil dan 3 anak).
Bagaimana saya bisa mencari grup yang menarik secara otomatis - menggunakan ilmu data, pembelajaran mesin, pengelompokan atau sesuatu yang lain?
Bahasa pemrograman n tampaknya menjadi alat yang baik untuk tugas ini, tetapi saya tidak dapat membentuk metodologi pencarian grup seperti itu. Salah satu solusinya adalah entah bagaimana menemukan kelompok pelanggan terbesar dan menggunakannya sebagai kelompok sasaran, jadi pertanyaannya adalah:
Bagaimana saya bisa secara otomatis memilih cluster terbesar dari pelanggan yang serupa (mirip dengan parameter yang saya tidak tahu saat ini)?
Sebagai contoh: program saya akan terhubung ke elasticsearch, membongkar data pelanggan ke CSV dan menggunakan skrip bahasa R akan menemukan bahwa sebagian besar pelanggan adalah laki-laki tanpa anak dan sebagian besar pelanggan memiliki mobil dan warna mata mereka coklat.
sumber
Jawaban:
Salah satu algoritma yang dapat digunakan untuk ini adalah algoritma clustering k-means .
Pada dasarnya:
"Sampai konvergensi":
Merupakan praktik yang baik untuk mengulangi algoritma ini beberapa kali, lalu pilih hasil yang meminimalkan jarak antara titik-titik dari setiap kluster i dan pusat m_i.
Tentu saja, Anda harus tahu k untuk memulai di sini; Anda dapat menggunakan validasi silang untuk memilih parameter ini.
sumber