当我尝试使用scipy.cluster.hierarchy.fcluster在Python中获取平面群集时,我得到ValueError: Linkage 'Z' uses the same cluster more than once.
。这种错误有时只会发生,通常只有非常大的矩阵,即10000x10000。
import scipy.cluster.hierarchy as sch
Z = sch.linkage(d, method="ward")
# some computation here, returning n (usually between 5-30)
clusters = sch.fcluster(Z, t=n, criterion='maxclust')
为什么会这样?我怎么能避免呢?不幸的是我通过谷歌搜索找不到任何有用的信息......
编辑尝试获取树形图时也会发生错误。
如果使用method='average'
,则不会出现此类错误。
答案 0 :(得分:0)
似乎使用fastcluster代替scipy.cluster.hierarchy
来解决问题。此外,fastcluster
实施速度略快于scipy
有关详细信息,请查看the paper。
import fastcluster
Z = fastcluster.linkage(d, method="ward")
# some computation here, returning n (usually between 5-30)
clusters = fastcluster.fcluster(Z, t=n, criterion='maxclust')