ValueError:链接'Z'在Python scipy fcluster中多次使用相同的集群

时间:2016-10-20 22:23:01

标签: python numpy scipy hierarchical-clustering

当我尝试使用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',则不会出现此类错误。

1 个答案:

答案 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')