Python社区划分

在该txt文本数据中,第一列表示节点i;第二列表示节点j;第三列表示节点i,j之间的相似度值(大于0且小于1)。共有2400个数据。
问题:怎么依据txt文本中的所有节点间相似度值,进行聚类或者社区划分?有什么推荐的算法吗?
使用工具:python

img

在分析图的社区划分问题中,比較常用的算法有以下几种:

图论算法:比如 Louvain 算法
模型算法:比如 Stochastic Block Model (SBM)
基于深度学习的算法:比如 DeepWalk

根据你的数据,我推荐使用 Louvain 算法,它是一种快速的社区发现算法,
能够在大规模图中效率高且精确地对社区进行划分。Python中有对应的库可以使用,
比如 NetworkX 库提供了 Louvain 算法的实现。

可以使用基于密度的聚类算法(DBSCAN)来进行聚类或者社区划分。DBSCAN算法可以根据节点间的相似度值来聚类,并且可以自动检测簇的数量。可以使用python中的sklearn库来实现DBSCAN算法,具体实现步骤如下:

  1. 将txt文本中的数据读取到python中,并将其转换为numpy数组。

  2. 使用sklearn中的DBSCAN算法,将节点间的相似度值作为输入,设置参数eps和min_samples,运行DBSCAN算法,得到聚类结果。

  3. 将聚类结果可视化,以便更好地理解

提供下面的实例思路:基于networkx分析Louvain算法的社团网络划分,
参考链接:https://blog.csdn.net/wjplearning/article/details/81747958?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-81747958-blog-104888579.pc_relevant_3mothn_strategy_and_data_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-81747958-blog-104888579.pc_relevant_3mothn_strategy_and_data_recovery&utm_relevant_index=6
链接2:https://blog.csdn.net/qq_34356768/article/details/104888579?spm=1001.2101.3001.6650.11&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-11-104888579-blog-111825268.pc_relevant_3mothn_strategy_and_data_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-11-104888579-blog-111825268.pc_relevant_3mothn_strategy_and_data_recovery&utm_relevant_index=21

可以把前两列看成点,第三列看成两个点的距离(1-这个值), 然后聚类, 可参考:
https://blog.csdn.net/weixin_41168304/article/details/122747347
https://mp.weixin.qq.com/s?__biz=MzAxMjUyNDQ5OA==&mid=2653563600&idx=1&sn=9687348d24746bf5006f099b701933bc&chksm=806e046db7198d7b7654f4754254f453d03e1a0812f668f2dd3a0c1024ae1cc1af24503cd898&scene=27
https://zhuanlan.zhihu.com/p/548472852