想请问louvain算法中参数的具体含义

想请问下图中louvain算法里三个参数的具体含义,特别是tol参数,按我的理解tol值越小的话,社区应该分的越细,单个社区内的点应该越少,可是在实际使用中tol越小,单个社区内的点越多,并且小幅度调节tol结果几乎不变,要调大几百倍才能有些不同,请大佬指教
louvain参数

maxiter 外部最大迭代次数,根据louvain原理,应该社团合并,再次迭代的次数
internaliter 内部迭代次数 看代码应该是连通图计算的迭代次数
tol 相对模块度最小增加量,就是增加不到这个数字的话就不属于同一社区
不知道理解的对不对

2 个赞

计算逻辑:
①遍历每个顶点,根据公式算出每个顶点与每个其邻居的△Q。△Q最大值对应的社区为该顶点将被合并到的社区。如果△Q最大值小于${tol},则保持原社区。迭代${internalIter}次。
②step1结束后,将一个社区合并为一个新顶点,重新构图,继续step1,直到达到${maxIter}次。

1 个赞

手动点赞 :+1:

1 个赞

还想问一下大佬louvain算法跑出来结果中点的数量会比输入的数量少嘛?我输入的数据中点的数量一共有7万的点,得出来的结果文件中数量只有不到五万个点了,包含了单独一个点构成社区的点,那其他的点没有显示是有什么理论依据嘛?还是说算法包存在问题,用的算法包是nebula-algorithm-2.5-20211202.023336-4.jar

想问一下用算法包提交louvain算法得到的结果中点的数量是会比输入的数量少嘛?我输入的数据中大概有7万个的点,得出来的结果文件中却只有不到五万个点了,包含了单独一个点构成社区的点,那其他的点没有显示是有什么理论依据嘛?还是说算法包存在问题,用的算法包是nebula-algorithm-2.5-20211202.023336-4.jar

可以试下nebula-algorithm-2.5-20211216.094746-8.jar 日期的包,你那个包可能还没fix。

1 个赞

额,试了一下,nebula-algorithm-2.5-20211216.094746-8.jar这个算法包跑出来的结果是空的,一行数据都没有

为什么用算法包跑louvain算法出来的结果点的数量会少于输入数据点的数量 - #5,来自 Wiggins43 避免两处回复造成回复资源浪费,这个帖子先行关闭了。如果你觉得上面 codelone 或者 caton-hpg 的回复解决了你这个参数含义问题,可以勾选为解决方案哈。