【问题标题】:Adjacency matrix clustering using spectral (cluster) network in Python在 Python 中使用谱(簇)网络进行邻接矩阵聚类
【发布时间】:2014-05-31 19:32:19
【问题描述】:

我有以下数据集:

firm_id firm_id_
1         2
1         4
1         5
2         1
2         3
3         2
3         6
4         1
4         5
4         6
5         4
5         7
6         3
...

例如,此数据表明 firm_id = 1 直接连接到 firm_id = 2、4 和 5,并且间接连接(在两条路径内)到 firm_id = 3、6 和 7。我可以使用诸如networkx 之类的Python 包来构建公司连接的网络。现在,我想使用光谱聚类(我猜这是正确的方法)根据距离(分隔每个公司的边数)形成集群,并查看这些集群如何相互连接。

我将首先定义上述数据的邻接矩阵 W。然后我使用 其中 dist 是公司 i 和公司 j 之间的距离,c 是 W 中每个元素的尺度参数,然后计算拉普拉斯矩阵(例如,参见 here)。

现在我的问题是 Spectral Clustering 能否为我提供每个集群之间的链接以及集群之间的距离(多少条边将集群分开)?我正在考虑使用this,Python 中的scikit 包,但我不知道如何使用sklearn.cluster 生成集群之间的链接。

【问题讨论】:

    标签: python network-programming cluster-analysis spectral


    【解决方案1】:

    要使谱聚类和这些方法正常工作,您需要具有相似性

    您的数据似乎只是一个图表,即连接实例的边。您应该研究图划分,也许还应该研究仅适用于图结构的社区检测算法,并且不要假设您有连续的相似性度量。

    【讨论】:

    • 感谢您的回复。你说的对。我没有相似之处。我只有链接(连接的节点之间的权重始终为 1)。我决定在 python 中使用这个算法perso.crans.org/aynaud/communities,我可以形成社区,但我不知道社区是如何连接的。您有什么建议可以弄清楚社区之间的联系方式吗?
    • 我对这类数据没有经验。我在社交网络分析中看到的所有内容都非常随机、明显或无趣。
    【解决方案2】:

    社区检测网络正是我所需要的:

    http://perso.crans.org/aynaud/communities/

    【讨论】:

      猜你喜欢
      • 2010-12-13
      • 2014-01-12
      • 2012-01-13
      • 2020-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 2022-11-15
      相关资源
      最近更新 更多