我对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'作为群集的输入?因为我在其他帖子中看到了这两种方法。但输出是不同的。现在我不确定我要选择什么。
答案 0 :(得分:4)
您需要以压缩形式传递距离矩阵,而不使用squareform
对其进行转换。如果您想要自己更容易地操纵距离矩阵作为2D数组,squareform
函数非常有用。 scipy.cluster.hierarchy
函数使用精简形式,以便在内存中保存大约两倍。
我希望这会有所帮助。