我的目标是根据单词与文本文档集相似的方式对单词进行聚类。我计算了每对单词之间的Jaccard相似度。换句话说,我有一个稀疏的距离矩阵。任何人都可以指向任何以距离矩阵为输入的聚类算法(可能还有Python中的库)?我也事先不知道簇的数量。我只想对这些单词进行聚类,并获得哪些单词聚集在一起。
答案 0 :(得分:14)
您可以使用预先计算的距离矩阵在scikit-learn中使用大多数算法。不幸的是,您需要许多算法的簇数。 DBSCAN是唯一不需要群集数量且也使用任意距离矩阵的人。 您也可以尝试MeanShift,但这会将距离解释为坐标 - 这也可能有效。
还有affinity propagation,但我还没有真正看到它运作良好。如果你想要很多集群,那可能会有所帮助。
披露:我是一个scikit-learn核心开发者。
答案 1 :(得分:8)
scipy群集包可能很有用(scipy.cluster)。 scipy.cluster.hierarchy中有层次聚类功能。但是请注意,那些需要压缩矩阵作为输入(距离矩阵的上三角形)。希望文档页面可以帮助您。
答案 2 :(得分:-3)
建议看一下聚集聚类。