基于距离矩阵的聚类

时间:2013-04-26 22:19:10

标签: python cluster-computing scikit-learn hierarchical-clustering

我的目标是根据单词与文本文档集相似的方式对单词进行聚类。我计算了每对单词之间的Jaccard相似度。换句话说,我有一个稀疏的距离矩阵。任何人都可以指向任何以距离矩阵为输入的聚类算法(可能还有Python中的库)?我也事先不知道簇的数量。我只想对这些单词进行聚类,并获得哪些单词聚集在一起。

3 个答案:

答案 0 :(得分:14)

您可以使用预先计算的距离矩阵在scikit-learn中使用大多数算法。不幸的是,您需要许多算法的簇数。 DBSCAN是唯一不需要群集数量且也使用任意距离矩阵的人。 您也可以尝试MeanShift,但这会将距离解释为坐标 - 这也可能有效。

还有affinity propagation,但我还没有真正看到它运作良好。如果你想要很多集群,那可能会有所帮助。

披露:我是一个scikit-learn核心开发者。

答案 1 :(得分:8)

scipy群集包可能很有用(scipy.cluster)。 scipy.cluster.hierarchy中有层次聚类功能。但是请注意,那些需要压缩矩阵作为输入(距离矩阵的上三角形)。希望文档页面可以帮助您。

答案 2 :(得分:-3)

建议看一下聚集聚类。