10

Tôi có tập dữ liệu lớn mà tôi muốn nhóm. Kích thước thiết lập chạy thử của tôi là 2.500 đối tượng; khi tôi chạy nó trên 'thỏa thuận thực', tôi sẽ cần phải xử lý ít nhất 20k đối tượng.phân cụm với độ tương tự cosin

Các đối tượng này có sự giống nhau về cosin giữa chúng. Tính tương tự cosin này không đáp ứng các yêu cầu của một số liệu khoảng cách toán học; nó không thỏa mãn sự bất bình đẳng tam giác.

Tôi muốn nhóm chúng theo một số cách "tự nhiên" để đặt các đối tượng tương tự với nhau mà không cần phải xác định trước số cụm mà tôi mong đợi.

Có ai biết thuật toán có thể làm điều đó không? Thực sự, tôi chỉ đang tìm bất kỳ thuật toán nào không yêu cầu a) chỉ số khoảng cách và b) số cụm được chỉ định trước.

Rất cám ơn!

Câu hỏi này đã được hỏi trước đây: Clustering from the cosine similarity values (nhưng giải pháp này chỉ cung cấp K-means clustering), và ở đây: Effective clustering of a similarity matrix (nhưng giải pháp này là khá mơ hồ)

+4

Từ http://en.wikipedia.org/wiki/Cosine_similarity: "Mặc dù thuật ngữ" tương tự cosin "đã được sử dụng cho khoảng cách góc này, thuật ngữ được sử dụng kỳ lạ vì cosin của góc được sử dụng chỉ như một cơ chế thuận lợi để tính góc và không phải là một phần của ý nghĩa.Lợi thế của hệ số tương tự góc là, khi được sử dụng như một hệ số khác biệt (bằng cách trừ nó từ 1) * hàm kết quả là một chỉ số khoảng cách thích hợp *, không phải là trường hợp cho ý nghĩa đầu tiên. " – phs

+0

Cảm ơn! nên đã được cụ thể hơn, tôi đang sử dụng một sự giống nhau giống như cô sin mà tôi đã xác định bản thân mình.Nó không đáp ứng sự bất bình đẳng tam giác. – user1473883

Trả lời

3

Apache quản tượng có một số các thuật toán phân cụm, bao gồm một số thuật toán không yêu cầu bạn chỉ định N và cho phép bạn chỉ định số liệu khoảng cách.

Cụm chuyển dịch trung bình tương tự như phương tiện k nhưng không có số cụm được chỉ định trước https://cwiki.apache.org/confluence/display/MAHOUT/Mean+Shift+Clustering. Sau đó, nói chung, nếu bạn muốn thử nhiều thuật toán, có một sự giàu có tuyệt đối của các gói tinh vi có sẵn cho R (bao gồm một vài triển khai thực hiện biến đổi Bayes của EM sẽ chọn số cụm tốt nhất) tỏ ra rất hữu ích cho một số nghiên cứu của tôi trong quá khứ: http://cran.r-project.org/web/views/Cluster.html.

2

Trên thực tế, hầu hết các thuật toán yêu cầu "hàm khoảng cách" không có yêu cầu để trở thành chỉ số.

DBSCAN có thể được khái quát hóa (xem Wikipedia) thành một phiên bản mà nó thậm chí còn trừu tượng từ xa, nó chỉ cần có một loại khái niệm "dày đặc" nào đó. (DBSCAN cũng không cần phải biết số cụm trước)

Nhưng ngay cả đối với k-means - có yêu cầu khá nghiêm ngặt về khoảng cách, thậm chí vượt quá số liệu - có một biến thể được gọi là hình cầu k-means.

Dù sao, trong bối cảnh cơ sở dữ liệu, yêu cầu đầy đủ của "chỉ số" là không sử dụng. Trong bất kỳ dữ liệu thực tế nào, có thể có hai bản ghi với cùng tọa độ, vì vậy, hầu hết bạn sẽ có chỉ số giả. Bất đẳng thức tam giác chủ yếu đóng vai trò tối ưu hóa (ví dụ: bằng cách sử dụng chỉ mục M-tree, có yêu cầu bất bình đẳng tam giác nghiêm ngặt) hoặc k-means tăng tốc khai thác thuộc tính này.

2

Bạn cũng có thể thử Tuyên bố Affinity (http://www.psi.toronto.edu/index.php?q=affinity%20propagation). Thuật toán có một ma trận tương tự như đầu vào, và tôi cũng có thể, tôi tin rằng, tự động điều chỉnh số lượng các centroid cluster.

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