使用SciPy如何获得k =的聚类?进行分层聚类

dem*_*lem 6 hierarchical-clustering scipy

所以我使用快速集群和SciPy进行凝聚聚类.我可以做到dendrogram聚类的树形图.我可以fcluster(Z, sqrt(D.max()), 'distance')为我的数据获得一个非常好的聚类.如果我想手动检查树形图中的区域,例如k = 3(簇),然后我想检查k = 6(簇),该怎么办?如何在树形图的特定级别获得聚类?

我看到所有这些函数都有公差,但我不明白如何从容差转换为集群数.我可以通过链接(Z)手动构建聚类,并逐步拼凑聚类,但这对大型数据集来说并不实用.

dka*_*kar 13

如果要在特定级别剪切树,请使用:

fl = fcluster(cl,numclust,criterion='maxclust')
Run Code Online (Sandbox Code Playgroud)

cl您的链接方法的输出在哪里,是numclust您想要获得的群集数量.