基于图划分的方法
Kernighan-Lin 算法:这是一种经典的图划分算法,通过不断交换节点在不同簇之间的归属,以最小化割边的权重来将图划分为两个或多个子图。它采用贪心策略,在每次迭代中选择能最大程度减少割边权重的节点交换操作,直到达到一定的停止条件。
谱聚类算法:利用图的拉普拉斯矩阵的特征值和特征向量来进行聚类。它将图的顶点集划分为多个子集,使得不同子集之间的边权之和尽可能小,而子集中的边权之和尽可能大。谱聚类算法具有较好的理论基础和聚类效果,尤其在处理复杂网络结构时表现出色。
基于凝聚式层次聚类的方法
单链接聚类:也称为最近邻聚类,它从每个节点作为一个单独的类开始,然后不断合并距离最近的两个类。这里的距离通常定义为两个类中节点之间的最短距离。在社会网络中,这意味着将具有最短路径或最强直接联系的节点集合合并在一起,逐步形成更大的簇。
全链接聚类:与单链接聚类相反,全链接聚类是基于最远邻原则,即合并类时选择使得类间距离最大的两个类进行合并。这里的类间距离是指两个类中节点之间的最长距离。在社会网络分析中,它倾向于形成相对紧凑、内部节点联系紧密的簇。
基于模块度优化的方法
GN 算法:是一种经典的基于模块度优化的层次聚类算法。它通过不断计算移除网络中的边对模块度的影响,每次选择移除能使模块度增加最大的边,从而将网络逐步划分成不同的社区。模块度是衡量网络社区结构质量的一个指标,GN 算法的目标是找到一种划分方式,使得网络的模块度最大化。
Louvain 算法:这是一种高效的基于模块度优化的聚类算法,它采用层次聚类的思想,通过不断合并节点来构建社区结构。算法首先将每个节点作为一个单独的社区,然后迭代地将节点移动到能使模块度增加最大的邻居社区中,直到模块度不再增加。Louvain 算法具有计算速度快、可扩展性好等优点,在大规模社会网络分析中得到了广泛应用。
基于标签传播的方法
标签传播算法(LPA):这是一种基于局部信息传播的聚类方法。算法首先为每个节点分配一个唯一的标签,然后在网络中进行迭代传播。在每次迭代中,节点根据其邻居节点的标签来更新自己的标签,通常选择邻居节点中出现次数最多的标签作为自己的新标签。经过多次迭代后,网络中的节点会逐渐形成不同的标签簇,这些标签簇就对应着不同的社区。
基于模型的方法
随机块模型(SBM):假设网络中的节点可以分为不同的社区,并且节点之间的连接概率取决于它们所属的社区。通过估计模型的参数,如社区内和社区间的连接概率,来推断网络的社区结构。SBM 可以通过最大似然估计或贝叶斯推断等方法进行求解,它能够很好地处理具有复杂结构的社会网络,并对网络的生成机制进行建模。
混合成员随机块模型(MMSB):是 SBM 的扩展,它允许节点属于多个社区,即每个节点具有多个社区成员身份的概率分布。MMSB 能够更灵活地描述社会网络中节点的多元属性和复杂的社区结构,例如在社交网络中,一个人可能同时属于多个兴趣小组或社交圈子。