17

Mục tiêu của tôi là cụm từ dựa trên mức độ tương tự của chúng đối với một tập hợp tài liệu văn bản. Tôi đã tính toán tương tự Jaccard giữa mỗi cặp từ. Nói cách khác, tôi có một ma trận khoảng cách thưa thớt có sẵn với tôi. Bất cứ ai có thể chỉ cho tôi bất kỳ thuật toán phân cụm (và có thể là thư viện của nó trong Python) mà mất ma trận khoảng cách như đầu vào? Tôi cũng không biết số lượng cụm trước. Tôi chỉ muốn cụm từ những từ này và có được những từ được nhóm lại với nhau.Phân cụm dựa trên ma trận khoảng cách

+0

hãy xem http://code.google.com/p/em-python/ và "http://en.wikipedia.org/wiki/Expectation–maximization_algorithm" – Moj

+0

cũng có http: // www .pymix.org/pymix/index.php? n = PyMix.Tutorial – Moj

+0

@Moj Tôi xin lỗi ... Tôi không thể tìm ra cách thông tin chứa trong các liên kết bạn đã đề cập có liên quan ở đây – user2115183

Trả lời

7

Gói phân cụm scipy có thể hữu ích (scipy.cluster). Có các hàm phân cụm theo cấp bậc trong scipy.cluster.hierarchy. Tuy nhiên, lưu ý rằng những yêu cầu đó cần một ma trận ngưng tụ làm đầu vào (hình tam giác trên của ma trận khoảng cách). Hy vọng rằng các trang tài liệu sẽ giúp bạn cùng.

9

Bạn có thể sử dụng hầu hết các thuật toán trong việc học bằng scikit với ma trận khoảng cách được tính trước. Thật không may bạn cần số lượng cụm cho nhiều thuật toán. DBSCAN là người duy nhất không cần số cụm và cũng sử dụng ma trận khoảng cách tùy ý. Bạn cũng có thể thử MeanShift, nhưng điều đó sẽ giải thích khoảng cách là tọa độ - cũng có thể hoạt động.

Ngoài ra còn có affinity propagation, nhưng tôi chưa thực sự thấy rằng hoạt động tốt. Tuy nhiên, nếu bạn muốn có nhiều cụm, điều đó có thể hữu ích.

tiết lộ: Tôi là một nhà phát triển cốt lõi về kiến ​​thức.

+4

bạn có thể cung cấp một ví dụ [reproducible example] (http://stackoverflow.com/help/mcve) của thuật toán scikit-learn sử dụng ma trận khoảng cách làm đầu vào không? – Bryan

+0

Có một ở đây: http://scikit-learn.org/dev/auto_examples/cluster/plot_segmentation_toy.html –

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