2009-05-06 52 views
9

Có ai biết thuật toán tốt để thực hiện phân cụm trên cả thuộc tính rời rạc và liên tục không? Tôi đang làm việc về vấn đề xác định nhóm khách hàng tương tự và mỗi khách hàng có cả thuộc tính riêng biệt và liên tục (Loại suy nghĩ của khách hàng, số doanh thu được tạo bởi khách hàng này, vị trí địa lý và v.v.)Thuật toán cụm với các thuộc tính rời rạc và liên tục?

Thuật toán truyền thống như K-means hoặc EM làm việc cho các thuộc tính liên tục, nếu chúng ta có một sự kết hợp các thuộc tính liên tục và rời rạc thì sao?

Trả lời

5

Nếu tôi nhớ chính xác, thuật toán COBWEB có thể hoạt động với các thuộc tính riêng biệt.

Và bạn cũng có thể thực hiện các 'thủ thuật' khác nhau cho các thuộc tính riêng biệt để tạo các chỉ số khoảng cách có ý nghĩa.

Bạn có thể google để phân cụm các thuộc tính phân loại/rời rạc, một trong các lần truy cập đầu tiên: ROCK: A Robust Clustering Algorithm for Categorical Attributes.

0

Bạn cũng có thể xem affinity propagation làm giải pháp khả thi. Nhưng để khắc phục tình trạng khó xử liên tục/rời rạc, bạn cần định nghĩa một hàm đánh giá các trạng thái rời rạc.

0

Tôi thực sự sẽ trình bày các cặp thuộc tính riêng biệt cho người dùng và yêu cầu họ xác định sự gần gũi của họ. Bạn sẽ trình bày chúng với quy mô đạt từ [từ đồng nghĩa..rất nước ngoài] hoặc tương tự. Có nhiều người làm điều này, bạn sẽ kết thúc với một hàm lân cận được chấp nhận rộng rãi cho các giá trị thuộc tính phi tuyến tính.

1

R là một công cụ tuyệt vời để phân cụm - cách tiếp cận chuẩn sẽ tính toán một ma trận không giống nhau trên dữ liệu hỗn hợp của bạn bằng cách sử dụng daisy, sau đó phân cụm với ma trận đó bằng cách sử dụng agnes.

cba module on CRAN bao gồm một hàm để nhóm trên các dự đoán nhị phân dựa trên ROCK.

0

Làm thế nào về việc chuyển đổi từng thuộc tính phân loại thành một chuỗi các thuộc tính chỉ thị nhị phân N-1 (trong đó N là số danh mục)? Bạn không nên sợ kích thước cao, như một đại diện thưa thớt (chẳng hạn như của mahout SequentialAccessSparseVector có thể được sử dụng). Khi bạn làm điều đó, bạn có thể sử dụng K-means cổ điển hoặc bất kỳ thuật toán phân cụm chỉ số chuẩn nào.

Các vấn đề liên quan