【问题标题】:Reordering matrix elements to reflect column and row clustering in naiive python重新排序矩阵元素以反映朴素python中的列和行聚类
【发布时间】:2023-04-06 07:11:01
【问题描述】:

我正在寻找一种在矩阵行和列上分别执行聚类的方法,重新排序矩阵中的数据以反映聚类并将它们放在一起。聚类问题很容易解决,树状图的创建也很容易解决(例如在this blog"Programming collective intelligence" 中)。但是,我仍然不清楚如何重新排序数据。

最终,我正在寻找一种使用朴素 Python(使用任何“标准”库,如 numpy、matplotlib 等,但没有 using R 或其他外部工具)创建类似于以下图形的方法。


(来源:warwick.ac.uk

澄清

有人问我重新排序是什么意思。当您首先按矩阵行,然后按其列对矩阵中的数据进行聚类时,可以通过两个树状图中的位置来识别每个矩阵单元。如果对原始矩阵的行和列重新排序,使树状图中彼此接近的元素在矩阵中彼此接近,然后生成热图,则数据的聚类对查看者可能会变得明显(如上图)

【问题讨论】:

  • 重新排序是什么意思?用另一个 n 交换 n 个相邻行/列?
  • 在处理矩阵时,您肯定想使用 numpy / scipy。 Matplotlib 也很好地模仿了 Matlab。这是一个交易:如果你可以在 Matlab 中做到这一点,你也可以在 scipy 中做到这一点(如果有的话,语法差异很小)。
  • 哦,为漂亮的照片 +1 ;-)
  • 我刚把这个放到github上:github.com/WarrenWeckesser/heatmapcluster

标签:
python
statistics
numpy
cluster-analysis
scipy