您正处在正确的轨道上,将数据转换为链接页面上的表格(冗余距离矩阵)。根据文档,您应该能够将其直接传递到scipy.cluster.hierarchy.linkage
或相关函数,例如scipy.cluster.hierarchy.single
或scipy.cluster.hierarchy.complete
。相关函数明确指定应如何计算群集之间的距离。 scipy.cluster.hierarchy.linkage
可让您指定所需的任何方法,但默认为单个链接(即两个集群之间的距离是其最近点之间的距离)。所有这些方法将返回一个表示凝聚聚类的多维数组。然后,您可以使用scipy.cluster.hierarchy
模块的其余部分对该群集执行各种操作,例如对其进行可视化或展平。
但是,有一个问题。在编写this question的时候,尽管文档说明了可以,但实际上不能使用冗余距离矩阵。基于github issue仍然开放的事实,我认为这还没有解决。正如链接问题的答案中所指出的那样,您可以通过将完整的距离矩阵传递到scipy.spatial.distance.squareform
函数来解决此问题,该函数将其转换为实际接受的格式(包含上三角部分的平面数组距离矩阵,称为浓缩距离矩阵)。然后,您可以将结果传递给scipy.cluster.hierarchy
函数之一。