【问题标题】:Create clusters using correlation matrix in Python在 Python 中使用相关矩阵创建集群
【发布时间】:2019-12-05 18:39:49
【问题描述】:

所有,我有一个包含 21 个行业部门的相关矩阵。现在我想将这 21 个部门分成 4 或 5 个组,将具有相似行为的部门组合在一起。

请专家们告诉我如何在 Python 中做到这一点?非常感谢!

【问题讨论】:

  • 可以使用机器学习聚类方法。
  • 看看 scipy。
  • sklearn 有很多clustering algorithms,这个论坛更针对具体的编码问题,而不是一般的“我该怎么做”问题
  • 非常感谢,seralouk 和 Hielka。你们中的任何一个都可以给我一个关于如何开始的简单例子吗?我的 Python 还不够好。
  • 知道了,安德森。我会看看你的链接。谢谢!

标签: python matrix block correlation


【解决方案1】:

您可以探索使用 Pandas DataFrame.corrscipy.cluster 层次聚类包

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')

【讨论】:

  • 谢谢,韦斯。我得到了 Python 中的相关矩阵,现在停留在如何根据它们的相关性将它们聚类成 4 或 5 个块。
  • 太好了,韦斯。这很有帮助。我将从这个开始。周末愉快!
  • 这里是 scipy 和 pandas 使用示例的链接,您可能会感兴趣:github.com/TheLoneNut/CorrelationMatrixClustering/blob/master/…
  • 获得idx 后该怎么办?
  • 是这样吗?当然,如果相关性为 0,那么成对距离为 0,这与我们想要的相反?
猜你喜欢
  • 2016-08-14
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
相关资源
最近更新 更多