SIFT / KNOWLEDGE BASE

知识 Wiki 总览 / 复杂网络

复杂网络:社区发现

更新于 2026-11-07条目链接

社区发现尝试识别网络中连接模式相近的节点群。常见的凝聚型社区表现为组内连接较密、组间连接较疏,但二部结构、核心—边缘结构并不一定符合这种定义。

模块度衡量什么

无向网络的模块度可写为 Q=(1/2M)Σᵢⱼ[Aᵢⱼ−kᵢkⱼ/(2M)]δ(cᵢ,cⱼ)。它比较同一社区内部的实际连边与保持度信息的基准预期;δ 在两节点属于同一社区时取 1,否则取 0。较大的 Q 表示相对该基准有更多组内连接,但不能单独证明社区对应真实群体。

Louvain 的基本过程

Louvain 是模块度优化的启发式方法:先局部移动节点以提高模块度,再把社区聚合成新网络,重复优化。它适合快速探索,但结果可能受节点处理顺序、随机种子和分辨率参数影响,并不保证得到全局最优解。

三个必须检查的问题

  • 分辨率:不同参数下,群体可能被合并或拆分;标准模块度存在分辨率限制。
  • 稳定性:改变随机种子或轻微扰动边,划分是否保持?不要只报告一次最漂亮的结果。
  • 解释性:社区与已知属性的关系需要额外验证,不能仅凭可视化给群体赋予含义。

建议分析流程

  1. 明确方向、权重、孤立节点及自环的处理。
  2. 记录算法实现、分辨率和随机种子。
  3. 比较多次运行和多种参数的社区数量、规模与一致性。
  4. 结合外部属性解释,并保留不确定性。

参考

NetworkX:Louvain 算法及参数;Fortunato & Hric:Community detection in networks: A user guide。