图论-图论算法之HANP和BMLPA以及DCLP
图论经典算法简介之HANP算法与BMLPA算法以及DCLP算法
在图论介绍的文章里,关于标签传播的算法我们在上一次的文章里已经介绍过了,在本次文章里我们将会介绍效果更好的社区发现类算法,也就是HANP算法、BMLPA算法,以及借鉴了HANP算法的DCLP算法。
HANP算法是在2009年被提出的,它的核心思想是在标签传播算法LPA算法的基础上,考虑了各个标签其他的特征,比如度的信息,距离信息等。因为标签传播本质上就是看当前点的周围neighbor邻居点谁的标签更多,本质上没有考虑附近点的结构特征信息,所以在实际场景的效果经常会无法稳定或是得到过大的社区。而HANP则考虑了各种图上的结构信息和边信息,在传播的时候,引入了衰减因子,防止两个距离较远的社团互相影响,而通过综合考虑度信息、距离信息、权重信息(有权图)来构造一个综合得分score进行传播,周围点的score值最大的那个标签是设定为当前点的标签,当分数衰减小于等于0的时候停止传播,这样可以防止过度传播导致的不平衡问题发生。
而BMLPA算法则是在2012年被提出的,该算法的核心在于balance平衡,它将各个点的标签进行概率化处理,而不是直接设定为某个标签,可以认为这个算法是广义的标签传播,但是它更注重周围点的标签的概率组合,是一种更为合理的投票思路。BMLPA算法的步骤是先设置一个过滤阈值,防止概率较低的标签影响最终结果,在这个基础上,对于周围的直接相连的点进行概率加和,取最大的概率值作为第一次归一化的分母,进行归一化后使用阈值进行过滤,然后再进行一次归一化操作即可,按照这个步骤进