【发布时间】:2018-08-17 05:36:02
【问题描述】:
在对我的数据集进行层次聚类并使用 dendrogram 函数对其进行绘制之后,它似乎是正确的聚类,但是当我调用函数 fcluster 来提取集群 id 时,我只会得到一个集群 id。 为什么会这样?
我的代码:
for key, values in use_case_idx.items():
vectors = []
labels = []
for value in values:
labels.append(value[0])
vectors.append(value[1])
try:
distance_matrix = pdist(vectors, metric='cosine')
Z = linkage(distance_matrix, 'ward')
plt.title("Ward")
dendrogram(Z, labels=labels)
except:
continue
plt.show()
clusters = fcluster(Z, 10, criterion='distance')
print(clusters)
因此,输出:
更多示例:https://imgur.com/a/kEfub
这段代码有什么问题?
注意:每个向量有 50 个维度
【问题讨论】:
-
不要只使用像
10这样的值。你需要选择这个参数。 -
我没有。我只是错了它的意图。我认为这是最大集群的限制。
-
查看fcluster文档,含义取决于你选择的
criterion!
标签: numpy machine-learning scipy cluster-analysis hierarchical-clustering