17

我的目標是基於它們與文本文檔的語料庫的相似程度對詞進行聚類。我計算了每一對單詞之間的Jaccard相似度。換句話說,我有一個可用的稀疏距離矩陣。任何人都可以指定我使用距離矩陣作爲輸入的任何聚類算法(也可能是它的Python庫)?事先我也不知道集羣的數量。我只想將這些單詞聚類在一起,並獲得哪些單詞聚集在一起。基於距離矩陣的聚類

+0

看看http://code.google.com/p/em-python/和「http://en.wikipedia.org/wiki/Expectation-maximization_algorithm」 – Moj 2013-04-26 22:21:45

+0

還有http:// www .pymix.org/pymix/index.php?n = PyMix.Tutorial – Moj 2013-04-26 22:25:29

+0

@Moj對不起......我似乎無法弄清楚你提到的鏈接中包含的信息在這裏是如何相關的 – user2115183 2013-04-26 22:26:03

回答

7

scipy集羣包可能是有用的(scipy.cluster)。 scipy.cluster.hierarchy有層次聚類功能。但請注意,那些需要一個濃縮矩陣作爲輸入(距離矩陣的上三角)。希望文檔頁面可以幫助你。

9

您可以使用預計算距離矩陣在scikit-learn中使用大多數算法。不幸的是,你需要許多算法的羣集數量。 DBSCAN是唯一不需要羣集數量並且也使用任意距離矩陣的羣組。 你也可以嘗試MeanShift,但那會將距離解釋爲座標 - 這也可能起作用。

還有affinity propagation,但我還沒有真正看到那個效果。如果你想要很多集羣,那可能會有所幫助。

披露:我是一個scikit學習的核心開發。

+4

您能提供一個使用距離矩陣作爲輸入的scikit-learn算法的[可重現示例](http://stackoverflow.com/help/mcve)嗎? – Bryan 2014-11-13 14:56:42

+0

這裏有一個:http://scikit-learn.org/dev/auto_examples/cluster/plot_segmentation_toy.html – 2014-11-13 20:36:55