在Python中使用Scipy进行聚类? (层次聚类)

时间:2013-08-07 08:07:53

标签: python python-2.7 scipy hierarchical-clustering

我对Python中的Scipy的使用感到有些困惑。这是我的源代码:

import scipy.spatial.distance as dist
import numpy, scipy

dataMatrix = numpy.array(matrix)
distMatrix = dist.pdist(dataMatrix, 'euclidean')
distSquareMatrix = dist.squareform(distMatrix)

Y = scipy.cluster.hierarchy.linkage(distSquareMatrix, method='complete')

我是否必须使用'distMatrix'或方形'distSquareMatrix'作为群集的输入?因为我在其他帖子中看到了这两种方法。但输出是不同的。现在我不确定我要选择什么。

1 个答案:

答案 0 :(得分:4)

您需要以压缩形式传递距离矩阵,而不使用squareform对其进行转换。如果您想要自己更容易地操纵距离矩阵作为2D数组,squareform函数非常有用。 scipy.cluster.hierarchy函数使用精简形式,以便在内存中保存大约两倍。

我希望这会有所帮助。