在Python中使用关联矩阵创建集群

在Python中使用关联矩阵创建集群,python,matrix,block,correlation,Python,Matrix,Block,Correlation,总之,我有一个21个行业的关联矩阵。现在我想将这21个部门分成4或5个组,将行为相似的部门分组在一起 专家们能告诉我如何在Python中实现这一点吗?非常感谢 您可以探索Pandas和分层集群包的使用 import pandas as pd import scipy.cluster.hierarchy as spc df = pd.DataFrame(my_data) corr = df.corr().values pdist = spc.distance.pdist(corr) link

总之,我有一个21个行业的关联矩阵。现在我想将这21个部门分成4或5个组,将行为相似的部门分组在一起


专家们能告诉我如何在Python中实现这一点吗?非常感谢

您可以探索Pandas和分层集群包的使用

import pandas as pd
import scipy.cluster.hierarchy as spc


df = pd.DataFrame(my_data)
corr = df.corr().values

pdist = spc.distance.pdist(corr)
linkage = spc.linkage(pdist, method='complete')
idx = spc.fcluster(linkage, 0.5 * pdist.max(), 'distance')

你可以使用机器学习聚类方法。看看scipy.sklearn有很多,这个论坛更多的是针对特定的编码问题,而不是一般的“我该怎么做”问题Hanks much、seralouk和Hielka。你们能不能给我一个简单的例子说明如何开始?我的Python还不够好,明白了,安德森。我会看看你的链接。谢谢谢谢,韦斯。我在Python中得到了相关矩阵,现在专注于如何根据它们的相关性将它们分为4或5个块。太好了,韦斯。这很有帮助。我将从这个开始。有一个愉快的周末!下面是一个链接,指向可能感兴趣的scipy和pandas的一个示例使用:一旦我获得了idx,我该如何处理它?这是正确的吗?当然,如果相关性为0,那么成对距离为0,这与我们想要的相反?