【问题标题】:Specify max distance in agglomerative clustering (scikit learn)在凝聚聚类中指定最大距离(scikit learn)
【发布时间】:2017-06-09 01:29:05
【问题描述】:
使用聚类算法时,您始终必须指定关闭参数。
我目前正在使用 scikit learn 的凝聚聚类,我能看到的唯一关闭参数是聚类的数量。
agg_clust = AgglomerativeClustering(n_clusters=N)
y_pred = agg_clust.fit_predict(matrix)
但我想找到一种算法,您可以在其中指定集群元素内的最大距离,而不是集群的数量。
因此,该算法将简单地聚集集群,直到达到最大距离。
有什么建议吗?
【问题讨论】:
标签:
python
algorithm
scikit-learn
hierarchical-clustering
【解决方案1】:
您要查找的内容在 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')
【讨论】:
-
-
t 在此示例中,是一个标量,用于指定同一簇的两个元素之间允许的最大距离。更多信息here.