Scikit通过欧几里得度量的聚类聚类学习和科学得出不同的结果

时间:2018-07-12 13:12:16

标签: python machine-learning scikit-learn hierarchical-clustering

我正在尝试为不同的说话者嵌入聚类时间戳,如果在具有k个聚类的聚类聚类中使用欧几里得作为亲和性而将病房用作链接,则效果最好。我正在尝试使用scipy的hierarchy.flcusterdata匹配输出,并尝试了不同的阈值,但是我得到的是完全随机的结果。

但是,如果将余弦用作亲和力并完成链接,那么我可以匹配两种算法的输出。欧几里德度量结果偏斜的原因可能是什么?这是代码:

clt=AgglomerativeClustering(n_clusters=k, affinity='euclidean', linkage='ward')
res = clt.fit_predict(embeddings)

res=hierarchy.fclusterdata(embeddings,t=0.95,criterion='distance',method='ward',metric='euclidean')

假设嵌入是时间戳的numpy数组,我将通过这种方式将数据用于这两种聚类

1 个答案:

答案 0 :(得分:0)

尝试使用 criterion ='maxclust' 。这样,您可以指定所需的群集数量。

res = hierarchy.fclusterdata(embeddings, k, criterion='maxclust', method='ward', metric='euclidean')