我正在寻找一种在矩阵行和列上分别执行聚类的方法,重新排序矩阵中的数据以反映聚类并将它们放在一起。聚类问题很容易解决,树状图的创建也很容易解决(例如在这个博客或“编程集体智能”中)。但是,我仍然不清楚如何重新排序数据。
最终,我正在寻找一种使用朴素 Python(使用任何“标准”库,如 numpy、matplotlib 等,但不使用 R或其他外部工具)创建类似于以下图形的方法。
(来源:warwick.ac.uk)
澄清
有人问我重新排序是什么意思。当您首先按矩阵行,然后按其列对矩阵中的数据进行聚类时,可以通过两个树状图中的位置来识别每个矩阵单元。如果您对原始矩阵的行和列重新排序,使得树状图中彼此接近的元素在矩阵中彼此接近,然后生成热图,则数据的聚类可能对查看者来说变得明显(如上图)