我正在使用hcluster模块从距离矩阵计算一个树形图。我的距离矩阵是通过以下方式生成的数组:
import hcluster
import numpy as np
mols = (..a list of molecules)
distMatrix = np.zeros((10, 10))
for i in range(0,10):
for j in range(0,10):
sim = OETanimoto(mols[i],mols[j]) # a function to calculate similarity between molecules
distMatrix[i][j] = 1 - sim
我接着使用命令
distVec = hcluster.squareform(distMatrix)
将矩阵转换为压缩向量,并使用vecLink = hcluster.linkage(distVec)
计算关联矩阵。所有这些都很好,但如果我使用距离矩阵而不是压缩向量来计算链接矩阵matLink = hcluster.linkage(distMatrix)
,我会得到一个不同的链接矩阵(节点之间的距离更大,拓扑结构略有不同)。现在我不确定这是因为hcluster只适用于压缩向量,还是我在操作过程中出了错。谢谢您的帮助!