基于距离矩阵的聚类

use*_*183 22 python hierarchical-clustering cluster-computing scikit-learn

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

And*_*ler 14

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

还有亲和力传播,但我还没有真正看到它运作良好.如果你想要很多集群,那可能会有所帮助.

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

  • 你能提供一个使用距离矩阵作为输入的scikit-learn算法的[可重现的例子](http://stackoverflow.com/help/mcve)吗? (4认同)
  • sklearn中是否存在可以采用预先计算的距离矩阵的算法列表?我发现,例如,虽然DBSCAN接受它,一个非常相似的算法,OPTICS没有.在AgglomerativeClustering'病房'联系不,而其他联系. (2认同)

Bas*_*erg 8

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