【发布时间】: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
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:重新排序矩阵元素以反映朴素python中的列和行聚类 - Python技术站