2013-08-07 51 views
0

我对Python中的Scipy隐藏有点困惑。这是我的源代码:用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”或squareform“distSquareMatrix”作为聚类的输入?因为我在其他帖子中看到了这两种方法。但是输出是不同的。现在我不确定我必须选择什么。

回答

4

您需要通过浓缩形式的距离矩阵,而不用squareform进行转换。如果想要更简单地将距离矩阵作为二维数组操作,则squareform函数很有用。 scipy.cluster.hierarchy函数使用压缩格式,目的是在内存中节省大约两倍。

我希望这会有所帮助。

+0

感谢您的回答!这意味着我必须在联动功能中使用'distMatrix'... – Joko