指定凝聚聚类中的最大距离(scikit 学习)

Specify max distance in agglomerative clustering (scikit learn)

使用聚类算法时,您始终必须指定关闭参数。

我目前正在将凝聚聚类与 scikit learn 结合使用,我能看到的唯一关闭参数是聚类数。

agg_clust = AgglomerativeClustering(n_clusters=N)
y_pred = agg_clust.fit_predict(matrix)

但我想找到一种算法,您可以在其中指定集群元素内的最大距离,而不是集群的数量。 因此,该算法将简单地聚集集群,直到达到最大距离。

有什么建议吗?

您要查找的内容已在 scipy.cluster.hierarchy 中实现,请参阅 here

所以这是你可以做到的:

from scipy.cluster.hierarchy import linkage, fcluster
y_pred = fcluster(linkage(matrix), t, criterion='distance')  

# or more direct way
from scipy.cluster.hierarchy import fclusterdata
y_pred = fclusterdata(matrix, t, criterion='distance')