17

Amacım, sözcükleri bir metin belgeleri kümesine göre ne kadar benzediğine göre kümelendirmektir. Her bir çift kelime arasında Jaccard Benzerliği hesapladım. Başka bir deyişle, benimle kullanılabilir bir seyrek mesafe matrisi var. Birisi bana girdi matrisini girdi olarak alan herhangi bir kümeleme algoritmasına (ve muhtemelen Python'daki kütüphanesine) işaret edebilir mi? Ayrıca önceden küme sayısını bilmiyorum. Sadece bu kelimeleri kümelemek ve hangi kelimelerin bir araya toplandığını bulmak istiyorum.Mesafe Matrisine Dayalı Kümeleme Metodu

+0

http://code.google.com/p/em-python/ ve "http://en.wikipedia.org/wiki/Expectation-maximization_algorithm" bakmak – Moj

+0

http da var .pymix.org/pymix/index.php? n = PyMix.Tutorial – Moj

+0

@Moj Üzgünüm ... Bahsettiğiniz linklerde yer alan bilgilerin burada ilgili olduğunu öğrenmek istemiyorum – user2115183

cevap

7

Scipy kümeleme paketi yararlı olabilir (scipy.cluster). scipy.cluster.hierarchy'da hiyerarşik kümeleme işlevleri vardır. Bununla birlikte, bunların giriş olarak bir yoğun matris gerektirdiğini unutmayın (mesafe matrisinin üst üçgeni). Umarım dokümantasyon sayfaları size yardımcı olacaktır.

9

Çoğu algoritmayı scikit-learn'de önceden hesaplanmış bir uzaklık matrisi ile kullanabilirsiniz. Ne yazık ki birçok algoritma için küme sayısına ihtiyacınız var. DBSCAN, küme sayısını gerektirmeyen ve aynı zamanda isteğe bağlı uzaklık matrislerini kullanan tek örnektir. MeanShift'u da deneyebilirsiniz, ancak bu mesafeleri koordinatlar olarak yorumlayacaktır - bu da işe yarayabilir.

Ayrıca affinity propagation da var, ama gerçekten iyi çalışmadığını görmedim. Çok sayıda küme istiyorsanız, bu yararlı olabilir.

Açıklama: Ben bir scikit-öğrenme çekirdek dev. : // www

+4

kümeleri, giriş olarak bir mesafe matrisi kullanarak bir scikit öğrenme algoritmasının [yeniden üretilebilir bir örneği] (http://stackoverflow.com/help/mcve) sağlayabilir misiniz? – Bryan

+0

Burada bir tane var: http://scikit-learn.org/dev/auto_examples/cluster/plot_segmentation_toy.html –