Phân cụm dữ liệu khách hàng được lưu trữ trong ElasticSearch


10

Tôi có một loạt các hồ sơ khách hàng được lưu trữ trong một cụm . Những hồ sơ này hiện được sử dụng để tạo các nhóm mục tiêu cho đăng ký email của chúng tôi.

Các nhóm mục tiêu hiện được hình thành thủ công bằng cách sử dụng các khả năng tìm kiếm theo khía cạnh của elaticsearch (như có được tất cả các khách hàng nam ở độ tuổi 23 với một xe và 3 trẻ em).

Làm cách nào tôi có thể tự động tìm kiếm các nhóm thú vị - sử dụng khoa học dữ liệu, học máy, phân cụm hoặc một cái gì khác?

Ngôn ngữ lập trình dường như là một công cụ tốt cho nhiệm vụ này, nhưng tôi không thể hình thành một phương pháp tìm kiếm nhóm như vậy. Một giải pháp là bằng cách nào đó tìm các cụm khách hàng lớn nhất và sử dụng chúng làm nhóm mục tiêu, vì vậy câu hỏi là:

Làm cách nào tôi có thể tự động chọn các cụm lớn nhất của các khách hàng tương tự (tương tự theo các tham số mà tôi không biết tại thời điểm này)?

Ví dụ: chương trình của tôi sẽ kết nối với elaticsearch, giảm dữ liệu khách hàng sang CSV và sử dụng tập lệnh ngôn ngữ R sẽ thấy rằng phần lớn khách hàng là nam không có con và một phần lớn khách hàng khác có xe và màu mắt của họ là màu nâu.


1
Bạn có ý nghĩa gì trong "nhóm thú vị"? Bạn có một số danh sách tính năng quan trọng được xác định trước?
yatul

Các nhóm thú vị là bất kỳ nhóm nào có kích thước lớn hơn một số ngưỡng lớn hơn nhiều so với các cụm có thể khác.
Konstantin V. Salikhov

1
Không rõ bạn sẽ thực hiện các bước chuẩn bị dữ liệu của mình như thế nào. Nhưng bạn nên xem các thuật toán được mô tả tại en.wikipedia.org/wiki/Anomaly_detection . Nếu tôi là bạn, tôi đã kiểm tra phương pháp SVM trước
yatul

Tôi đã đọc về SVM và tôi nghĩ nhiều hơn về việc phân loại dữ liệu mới được tạo sau khi đào tạo thủ công về tập dữ liệu hiện có - không phải về việc phân cụm dữ liệu hiện có và tìm các cụm lớn bất thường. Tôi có đúng không Nếu tôi là phương pháp này không phải là những gì tôi muốn.
Konstantin V. Salikhov

Câu trả lời:


6

Một thuật toán có thể được sử dụng cho điều này là thuật toán phân cụm k-nghĩa .

Về cơ bản:

  1. Chọn ngẫu nhiên k datapoint từ bộ của bạn, m_1, ..., m_k.
  2. "Cho đến khi hội tụ":

    1. Gán các điểm dữ liệu của bạn cho k cụm, trong đó cụm i là tập hợp các điểm mà m_i gần nhất với phương tiện hiện tại của bạn
    2. Thay thế mỗi m_i bằng giá trị trung bình của tất cả các điểm được gán cho cụm i.

Đó là một thực hành tốt để lặp lại thuật toán này nhiều lần, sau đó chọn kết quả giảm thiểu khoảng cách giữa các điểm của mỗi cụm i và trung tâm m_i.

Tất nhiên, bạn phải biết k để bắt đầu ở đây; bạn có thể sử dụng xác nhận chéo để chọn tham số này, mặc dù.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.