Phân cụm dựa trên điểm tương tự


17

Giả sử rằng chúng ta có một tập hợp các yếu tố E và một sự tương đồng ( không khoảng cách ) chức năng sim (ei, ej) giữa hai yếu tố ei, ej ∈ E .

Làm thế nào chúng ta có thể (hiệu quả) phân cụm các yếu tố của E , sử dụng sim ?

k -means, ví dụ, yêu cầu một k cho trước , Canopy Clustering yêu cầu hai giá trị ngưỡng. Điều gì xảy ra nếu chúng ta không muốn các tham số được xác định trước như vậy?

Lưu ý, sim đó không nhất thiết là một số liệu (tức là bất đẳng thức tam giác có thể hoặc không thể giữ). Hơn nữa, không có vấn đề gì nếu các cụm bị tách rời (phân vùng của E ).


2
Tôi tự hỏi tại sao bạn nhấn mạnh rằng bạn không có khoảng cách. Tôi không phải là một chuyên gia ở đây, nhưng tự hỏi liệu không nên chuyển đổi sự tương đồng như vậy thành một khoảng cách, nếu cần, về cơ bản bằng cách xem xét nghịch đảo của nó. Bất kể điều đó, tôi nghi ngờ rằng có các thuật toán phân cụm hoàn toàn không có tham số, vì vậy một số điều chỉnh rất có thể sẽ cần thiết trong mọi trường hợp. Khi bạn xem xét các phương tiện, người ta có thể cho rằng bạn có các thuộc tính có giá trị thực (đặc biệt là bạn có thể lấy "giá trị trung bình" của một số yếu tố) không?
Marco13

4
Bạn không cần biết k để thực hiện phương tiện k. Bạn có thể phân cụm với k khác nhau và kiểm tra phương sai cụm để tìm tối ưu. Ngoài ra, bạn có thể nghĩ về việc sử dụng các mô hình hỗn hợp Gaussian hoặc quy trình phục hồi khác như những thứ để giúp bạn phân cụm.
cwharland

2
Tôi đã hỏi các câu hỏi vì một lý do cụ thể: Nếu bạn có thể áp dụng k-Means, nhưng vấn đề duy nhất là tìm "k" ban đầu, thì bạn có thể coi en.wikipedia.org/wiki/Self- tổ chức_map thay thế. Nó có một số thuộc tính đẹp và về cơ bản hoạt động "tương tự" với k-Means, nhưng không yêu cầu "k" ban đầu được đặt. Đây có lẽ không phải là một giải pháp vượt trội, bởi vì nó có các tham số điều chỉnh bổ sung (và việc đào tạo có thể tốn kém về mặt tính toán), tuy nhiên vẫn đáng để xem xét.
Marco13

2
Lựa chọn ban đầu của k không ảnh hưởng đến kết quả phân cụm nhưng bạn có thể xác định hàm mất hoặc nhiều khả năng là hàm chính xác cho bạn biết từng giá trị của k mà bạn sử dụng để phân cụm, độ tương tự tương đối của tất cả các đối tượng trong cụm đó. Bạn chọn k giảm thiểu phương sai trong độ tương tự đó. GMM và các quy trình dirichlet khác xử lý vấn đề không biết khá rõ. Một trong những tài nguyên tốt nhất tôi từng thấy về điều này là hướng dẫn của Edwin Chen .
cwharland

4
Chỉ cần một suy nghĩ: Nếu điểm tương tự của bạn được bình thường hóa thành 1 , hơn 1-sim(ei, ej) = Distance. Với số liệu khoảng cách, bạn có thể áp dụng ví dụ phân cụm theo phân cấp. Đi xuống từ gốc bạn sẽ thấy ở mức độ nào của cụm chi tiết sẽ có ý nghĩa cho vấn đề cụ thể của bạn.
Olexandr Isayev

Câu trả lời:


8
  1. Tôi nghĩ rằng một số thuật toán phân cụm thường sử dụng một số liệu, không thực sự dựa vào các thuộc tính số liệu (ngoài giao hoán, nhưng tôi nghĩ rằng bạn có điều đó ở đây). Ví dụ, DBSCAN sử dụng các vùng lân cận epsilon quanh một điểm; không có gì trong đó nói cụ thể về bất đẳng thức tam giác. Vì vậy, bạn có thể có thể sử dụng DBSCAN, mặc dù bạn có thể phải thực hiện một số loại chỉ số không gian không chuẩn để thực hiện tra cứu hiệu quả trong trường hợp của bạn. Phiên bản epsilon-lân cận của bạn có thể sẽ là sim> 1 / epsilon chứ không phải là cách khác. Câu chuyện tương tự với phương tiện k và các thuật toán liên quan.

  2. Bạn có thể xây dựng một số liệu từ sự giống nhau của bạn? Một khả năng: dist (ei, ej) = min (sim (ei, ek) + sim (ek, ej)) cho tất cả k ... Thay vào đó, bạn có thể cung cấp giới hạn trên sao cho sim (ei, ej) <sim (ei, ek) + sim (ek, ej) + d, với mọi k và một số hằng số dương d? Theo trực giác, giá trị sim lớn có nghĩa là gần nhau hơn: là 1 / sim giống như số liệu? Còn 1 / (sim + hằng số) thì sao? Điều gì về min (1 / sim (ei, ek) + 1 / sim (ek, ej)) cho tất cả k? (cuối cùng được đảm bảo là một số liệu, btw)

  3. Một cấu trúc thay thế của một số liệu là thực hiện nhúng. Bước đầu tiên, bạn có thể thử ánh xạ các điểm của mình ei -> xi, sao cho xi thu nhỏ tổng (abs (sim (ei, ej) - f (dist (xi, xj))), cho một số hàm f và số liệu phù hợp dist. Hàm f chuyển đổi khoảng cách khi nhúng thành giá trị tương tự, bạn sẽ phải thử nghiệm một chút, nhưng 1 / dist hoặc exp ^ -dist là điểm khởi đầu tốt. Bạn cũng phải thử nghiệm tốt nhất kích thước cho xi. Từ đó, bạn có thể sử dụng phân cụm thông thường trên xi. Ý tưởng ở đây là bạn gần như có thể (theo nghĩa phù hợp nhất) chuyển đổi khoảng cách của bạn trong việc nhúng thành các giá trị tương tự, vì vậy chúng sẽ phân cụm chính xác.

  4. Về việc sử dụng các tham số được xác định trước, tất cả các thuật toán có một số điều chỉnh. DBSCAN có thể tìm thấy số lượng cụm, nhưng bạn vẫn cần cung cấp cho nó một số tham số. Nói chung, điều chỉnh yêu cầu nhiều lần chạy thuật toán với các giá trị khác nhau cho các tham số có thể điều chỉnh, cùng với một số chức năng đánh giá mức độ tốt của phân cụm (được tính riêng, được cung cấp bởi chính thuật toán phân cụm hoặc chỉ là nhãn cầu :) Nếu là ký tự của dữ liệu của bạn không thay đổi, bạn có thể điều chỉnh một lần và sau đó sử dụng các tham số cố định đó; nếu nó thay đổi thì bạn phải điều chỉnh cho mỗi lần chạy. Bạn có thể tìm thấy điều đó bằng cách điều chỉnh cho mỗi lần chạy và sau đó so sánh các tham số từ một lần chạy này hoạt động tốt như thế nào, so với các tham số được điều chỉnh cụ thể cho điều đó.


7

Alex đã đưa ra một số điểm tốt, mặc dù tôi có thể phải đẩy lùi một chút về hàm ý của anh ta rằng DBSCAN là thuật toán phân cụm tốt nhất để sử dụng ở đây. Tùy thuộc vào việc triển khai của bạn và việc bạn có sử dụng các chỉ số được tăng tốc hay không (nhiều triển khai không), cả hai độ phức tạp về không gian và thời gian của bạn sẽ không O(n2)còn lý tưởng.

Cá nhân, các thuật toán phân cụm đi tới của tôi là OpenOrd cho phân cụm toàn thắng và FLAME cho phân cụm mờ. Cả hai phương pháp đều khác nhau về việc liệu các số liệu được sử dụng là tương tự hay khoảng cách (đặc biệt là FLAME gần như giống hệt nhau trong cả hai công trình). Việc triển khai OpenOrd trong Gephi O(nlogn)và được biết là có khả năng mở rộng hơn bất kỳ thuật toán phân cụm nào khác có trong gói Gephi.

Mặt khác, FLAME là tuyệt vời nếu bạn đang tìm kiếm một phương pháp phân cụm mờ. Mặc dù độ phức tạp của FLAME khó xác định hơn một chút vì đây là một quá trình lặp lại, nhưng nó đã được chứng minh là bậc hai và tương tự về tốc độ khi chạy.


4

Phân tích dữ liệu tô pô là một phương pháp được thiết kế rõ ràng cho cài đặt bạn mô tả. Thay vì chỉ số khoảng cách toàn cầu, nó chỉ dựa vào số liệu địa phương hoặc vùng lân cận. Xem: Cấu trúc liên kết và dữ liệuTrích xuất thông tin chi tiết từ hình dạng của dữ liệu phức tạp bằng cấu trúc liên kết . Bạn có thể tìm thêm tài nguyên tại trang web cho Ayasdi.


4

DBSCAN (xem thêm: DBSCAN tổng quát) không yêu cầu khoảng cách. Tất cả những gì nó cần là một quyết định nhị phân . Thông thường, người ta sẽ sử dụng "khoảng cách <epsilon" nhưng không có gì nói rằng bạn không thể sử dụng "độ tương tự> epsilon" thay thế. Bất đẳng thức tam giác, vv không được yêu cầu.

Tuyên truyền mối quan hệ, như tên gọi, sử dụng sự tương đồng.

Phân cụm theo phân cấp, ngoại trừ có thể liên kết Ward, không đưa ra bất kỳ giả định nào. Trong nhiều triển khai, bạn chỉ có thể sử dụng khoảng cách âm khi bạn có điểm tương đồng, và nó sẽ hoạt động tốt. Bởi vì tất cả những gì cần thiết là tối thiểu, tối đa và <.

Kernel k-mean có thể hoạt động NẾU sự giống nhau của bạn là một hàm kernel tốt. Hãy nghĩ về nó như là tính toán k-nghĩa trong một không gian vectơ khác, trong đó khoảng cách Euclide tương ứng với hàm tương tự của bạn. Nhưng sau đó bạn cần biết k.

PAM (K-medoid) nên hoạt động. Gán từng đối tượng cho medoid mô phỏng nhất, sau đó chọn đối tượng có độ tương tự trung bình cao nhất là medoid mới ... không cần bất đẳng thức tam giác.

... và có lẽ nhiều nhiều nữa. Có hàng trăm thuật toán phân cụm. Hầu hết nên làm việc IMHO. Rất ít dường như thực sự yêu cầu thuộc tính số liệu. K-mean có thể có các yêu cầu mạnh nhất: nó giảm thiểu phương sai (không phải khoảng cách hoặc độ tương tự) và bạn phải có khả năng tính toán phương tiện.

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.